# Apple II Email and Usenet News Suite
[Back to Main emai//er Docs](README.md#detailed-documentation-for-email-functions) ## `ATTACHER.SYSTEM` *Automatically invoked when exiting `EDIT.SYSTEM` when using the `W` (write email), `F` (forward email) or `R` (reply) commands in `EMAIL.SYSTEM`* `ATTACHER.SYSTEM` is used for attaching files to outgoing email messages. This program is started automatically by `EDIT.SYSTEM` and is not normally invoked directly. Here is how it looks when it first starts up - there are no attachments yet: Using the file selector to choose an attachment: Navigate up the to the top level 'Volumes' by repeatedly selecting the `..` entry and hitting `Return`. The navigate down to the directory of interest, select the file to attach and hit `Return`. Now `ATTACHER.SYSTEM` shows there is a file attached. When `EDIT.SYSTEM` invokes `ATTACHER.SYSTEM`, the following operations occur: - The outgoing email message is loaded from `OUTBOX` and copied to a temporary file. While copying, additional email headers are appended to indicate that this is a MIME multi-part message. - A `plain/text` MIME section header is added to the email body (which becomes the first section in the multi-part MIME document.) - `ATTACHER.SYSTEM` loops until the user says they are done adding attachments: - Display the current number of attached files. Initially this shows `There are currently 0 attachments`. - Display a list of the files that have been attached so far. - Prompt: `A)dd attachment | D)one with attachments`. - If the user chooses 'D' then we are done adding attachments. Exit the loop. - If the user chooses 'A' then a file selector is shown, allowing the user to choose the file to attach. Navigate to the desired directory and select the file to be attached. Alternatively, you can hit the `Tab` key and type in the absolute or relative path to the file to be attached. - The selected file is loaded from disk and encoded using the Base64 algorithm. A MIME section is created in the outgoing email and the Base64-encoded file data is appended. - `ATTACHER.SYSTEM` will terminate the MIME document, erase the original email file from `OUTBOX` and rename the temporary file to replace the original. - `ATTACHER.SYSTEM` will reload `EMAIL.SYSTEM` once it is done. Here is how the Base64-encoded email attachment is encoded: [Back to Main emai//er Docs](README.md#detailed-documentation-for-email-functions)