GDMail GDMail is a GadTools adaptation of Dmail by Matt Dillon. It is designed to be a drop-in replacement for Dmail in any system using AmigaDOS 2.04 or better. For this reason there is no particular documentation provided (or required) for GDMail - my desire was that its operation should be self evident. The Dmail sources that were retained came from the following distibution. DMAIL v1.12 distribution June 1989 (AmigaUUCP_1.16D) The sources have been changed so significantly that there is no reason to contact Matt Dillon if you are having trouble - contact me instead. Like Dmail, GDMail is a CLI program. New Features ------------ UUdecode / UUencode / File Attachments GDMail supports mailing and receiving of uuencoded files. If GDMail finds the header for a uuencoded file in the message that you are currently reading, it will enable the "Decode Files" button. If you activate this button, a file containing all uuencoded sections from the message will be created and your uudecode program will be executed on it. The decoded file(s) will appear in the current directory. If you wish to send a file or files, this is done by specifying binary or ASCII attachments to go with your message. The binary attachments will be uuencoded before they are sent. MIME (Multipurpose Internet Mail Extensions) support GDMail supports mailing and receiving of MIME formated messages. If GDMail finds a Content-Type header in the message that you are currently reading, it will ask what you want to do with it. You can choose to view it or ignore it. If you choose to view it, all of the contents will be displayed as you have configured your mailcap file. For this feature to work metamail and its associated utilities must be in your path, and the mailcap file must be properly configured. GDMail supports MetaMail2.3a for the Amiga, the latest release for Amiga that I have seen. Also, due to some limitations in the MetaMail programs, the compose functions as specified in the mailcap file are not invoked. Thus 8SVX audio and IFF ILBM image types have hardcoded conversions: 8SVXtoUlaw, and ILBMtoGIF. Worse yet, the 8SVXtoUlaw program provided will not work and an ILBMtoGIF converter is not supplied. In both cases the program must accept two arguments: first the name of the source file and second the name of the destination file. To fix a number of problems, I have produced a special version of mailto (mailtogd) that MUST be used in place of the metamail mailto. Therefore this program must be in the path. I reccommend copying it to the metamail bin directory. If you wish to send a MIME message, this is done by specifying attachments to go with your message and activating the MIME button in the MailSend window. Make sure the types of the attachments are set correctly. Your message and the attachments will be formed into a MIME message. There are two options that can be applied to the MIME feature of GDMail. These options are set in the .dmailrc file. Normally GDMail will not use the metamail MIME functions if the Content-Type is text/plain and it will always query before invoking metamail. You can set GDMail to treat text/plain like any other Content-Type by placing the line set text_plain_is_mime TRUE in the .dmailrc file. You can also have GDMail automatically skip the query before invoking the MIME functions. This line would set this mode. set mime_automatic TRUE If you do not want either of these options, I recommend that you place the following lines in your .dmailrc file. set mime_automatic (TRUE) set text_plain_is_mime (TRUE) PGP decryption If GDMail finds the header for a PGP message or signature in the message that you are currently reading, it will ask what you want to do with it. You can choose to decrypt it and read it or ignore it. If you choose to decrypt it, the PGP program will prompt for the pass phrase (if you have one) for your PGP private key. For this feature to work PGP must be in the path. I've tested GDMail with PGP 2.3a.3 . If you wish to send a PGP encrypted message or signature, currently you will have to use the PGPSendMail utility that comes with PGP. App Window The Mail Send window (do not confuse this with the larger Mail Read window) is an App Window. You may drag and drop any file icons onto this window that you wish to have attached to the message that you are going to send. Any dropped icons are assumed to be binary files, if they are ASCII you can change them as you would any other attachment. Receipt Request Receipt Requests are somewhat like registered mail for paper mail. GDMail implements both sides of the Return-Receipt-To: field. By selecting the Request Receipt button in the Send window, you can request that a receipt be sent to you when the recipient reads the mail you sent. But, not all mail readers support this field and many, like GDMail, allow the recipient to stop the receipt from being sent. The path GDMail places in this field will not be correct for all situations, and my situation is one of those, so you can expect that this is going to be fixed. My node name is stan and my domain name is dres.dnd.ca, but the powers that be have determined (they do have their reasons) that my mail address is ...@dres.dnd.ca (the node name is dropped). GDMail sets the field to be ...@stan.dres.dnd.ca which is incorrect. If you receive mail that contains this field, a requester will appear that asks if you want to send the requested receipt. This method of requesting receipts cannot work with MIME mail currently due to the problem with extra fields mentioned in the MIME section. Other One other small change that should probably be mentioned. When printing messages containing uuencoded files, the uuencoded data will be removed for the print out. A notice will appear in its place. .dmailrc -------- The only changes, which support uuencoding and uudecoding, are four new variables for the .dmailrc file (yes the original name was retained). Two of these variables specify the instructions that must be executed to uuencode and uudecode files. Another variable "uufile" is available to indicate where the filename goes in the uuencode instruction. I use UUxT, which operates like an archiver, so these lines in my .dmailrc file look as shown below. set uuencode "hd1:pd/uuxt/uuxt a t:gd_tmp $uufile$" set uudecode "hd1:pd/uuxt/uuxt x t:gd_tmp" Note that the resulting file from a uuencode must be be called t:gd_tmp. Note also that uudecode does not require a filename since this information is part of the uuencoded file. There are also new variables for MIME support. See the MIME section. GDMail no longer pays any attention to any commands in the .dmailrc file other than the set command. The other commands were not applicable to the GadTools environment. Bugs ---- If you use GDMail to send mail to yourself directly (via To:, Cc: or Bcc:) such that your sendmail writes directly into your UUMAIL:$username$ file rather than mailing it to another host, this file may become corrupted since GDMail is still using the file for its mail reading operation. Future ------ I may integrate PGP mail send into GDMail rather than relying on the PGP sendmail, although to do so sounds like work without benefit. If there are other features that you think GDMail needs, let me know. Special Thanks -------------- Special thanks go to Alan Kramer for beta testing GDMail. He is a tireless nit-picking bug finder and GDMail is better for it. Contact ------- If you have problems or suggestions for improvements, in order of preference, I can be reached at; sburton@dres.dnd.ca sburton@mhaug.uumh.ab.ca sburton@bix.com Stan Burton 1978 26 St. SE Medicine Hat, AB T1A 2G8 (403) 526-6505 (evenings) Things To Do ------------ Add quoted message introduction line, ex. "In message you wrote:" Add introduction lines for attachments Autodetect the type of gif, jpeg and perhaps other files by their filename extensions Handle attachment file names that include spaces Add a commonly used addresses "phonebook" Fix support for compose lines in the mailcap file. History ------- -- 1.2 ------------------------ I believe that I have successfully localized the GDMail GUI. Since I am competant in English only, some one else will have to do the translation. Send me a copy so I can distribute it. Fixed bug where long Subject lines would foul up the following message causing the wrong (usually the first) message to be displayed instead. Added X-Mailer header to default headers Modified the metamail program mailto to eliminate some of the problems that it was causing, i.e. the requirement for a particular order of headers and the movement of extra headers to the body of the message. Fixed a serious bug in the MIME support code that would cause improper handling of most MIME messages - not the ones I used as samples of course. Added file notification to the mail file so that if mail comes in while the GDMail Read window is open it is automatically added to the mail messages list. -- 1.1 ------------------------ Support for reply receipts has been added. If a message containing this field is received, a message will be displayed asking if you want to send a receipt. This field can also be set for messages that you send. Workbench screen is forced to front when the Send window opens. This accomodates editors that use other screens. Fixed bug in Send list handling that temporarily stopped displaying the attachment list after a return to the editor. It is now possible to multiple select received messages and submit them as a group for UUdecoding or MIME display. This makes it possible to view or decode split messages. NOTE that the list gadget will not indicate that more than one message has been selected. Added support for some MIME handling control options. See docs Added support for MIME reading and sending. See docs for limitations and conditions. Added version string to GDMail and a version menu item that displays the string. GDMail was looking for the sequence "begin 644 " to detect the start of a uuencoded section. This sequence is the most common but it is really aggravating when you get a uuencoded message with a different permission number and you can't easily decode it. So GDMail now looks for "begin ddd " where d is a digit. -- 1.0 ------------------------ < first release >