PutMail - Version 1.22 INTRODUCTION: PutMail is a SMTP Client, it is used for sending mail from your local Amiga host to an Internet SMTP host. PutMail was written with referance to the following mail RFC's. RFC-821, RFC-822, RFC-1081, RFC-1225. REQUIREMENTS: PutMail requires WB 2.04 as a minimum (and will also utilise the file buffering of WB 3.0 where possible). PutMail is for use with AmiTCP (it will not work with AS225), it was developed on version 4.0 of AmiTCP but I have linked the program to the old version 3 Net.lib for AmiTCP 3.0 Beta users. A number of MLink users are also successfully using PutMail. BACKGROUND: When I signed up to get Internet access I keenly downloaded software from my local BBS and was immediately disapointed while reading the installation instructions. It was quite clear that much of the software was ported from the Unix/UUCP environment as the software wanted a lot of assigns like UULib:, UUSpool: and many environmental variables. Even worse, several software packages used the environmental variables in conflicting mannors. The Ported Unix code did not take full advantage to the Amiga OS and resulted in large executable sizes. I decided to write my own utilities. INSTALLATION: I have provided both 68000 and 68020 executables for both AmiTCP version 4 and AmiTCP version 3. Simply copy the PutMail executable (this is a dos command so no icon is required) to a location somewhere in your path. A good place for it is in the AmiTCP:bin drawer. I reccommend creating a file in your home directory named '.EMailAddr' (without the 's) which should hold your full E-Mail address (which is also used by GetMail). See the details of REPLYTO below. Next we need a SMTPHost definition which is the name of the SMTP Host that you use to send your EMail thru. AmiTCP users should put an entry in their AmiTCP:db/hosts file, MLink users should create an environmental variable. See the details of SMTPHOST below. These items are not manditory but they do reduce the arguments that you need to pass to PutMail. Provided AmiTCP is up and running you can use PutMail immediately. OVERVIEW: E-Mail messages consist of a header and body. The header contains details that are parsed by various processes, it contains the destination E-Mail address, the sender, the subject etc. The first blank line encountered indicates the end of the header and all else is assumed to be the body (and is not parsed). PutMail creates a mail file on the T: drive from your header file, mail message and signature file. It then connects to your SMTP host and transmits the full mail message. PutMail uses three environmental variables that all exist in AmiTCP installations. They are USER (userid), HOME (home drawer) and HOSTNAME (localhostname.domain). Please note that AmiTCP creates these variables for you. The login command creates the HOME variable (and the USER variable I think) so AmiTCP users do not have to set these variables up manually. USAGE: The command template for PutMail is "PutMail MAIL=MAILFILE/A, TO=RECIPIENT/K/M,SUB=SUBJECT/K,HOME/K,REPLYTO/K,SMTPHOST/K, NOHEAD/S,NOADDR/S,NOSIG/S,VERBOSE/S" Phew! Lets go through the arguments one by one. MAIL=MAILFILE Manditory argument. This is the name of your local mail message file that you want to transmit. (Normally this will be the name of a tempory file from you E-Mail program.) The argument can be specified as MAILFILE=foobar or abreviated as MAIL=foobar. RECIPIENT Optional argument. This is the E-Mail address of the person you wish to send the mail message to. The argument can be specified as RECIPIENT=user@domain or abreviated as TO=user@domain. You may send the same message to multiple addresses like so, TO=user1@domain user2@domain user3@domain. If this argument is not supplied PutMail will obtain the "To:" E-Mail address from within your mail file. PutMail also handles E-Mail addresses in this format "To: Martin Lanza ". For multiple destinations simply put a comma at the end of each E-Mail address excluding the last one. PutMail does handle multiline addresses provided that the RFC conventions are followed, ie the first character of the continuation line must be a space or tab. SUBJECT Optional argument. If you are using PutMail to include header/address information you can specify the message subject with this argument. The argument can be specified as SUBJECT=foobar or abreviated as SUB=foobar. HOME Optional argument. This is the path to your home directory (not normally required). If you omit this argument the environmental varible HOME will be used to obtain the home directory. This is really useful when you have multiple AmiTCP users, it means the program will use the correct header, signature and EMailAddr files in the message. It's only really required if you don't logoff an get the other user to logon. REPLYTO Optional argument. This is the correct E-Mail address that should be used to send E-Mail replies to you. If you omit this argument PutMail will use the EMAILADDR environmental variable, if that does not exist it will read the HOME:.EMailAddr file, if that does not exist your AmiTCP UserID & SMTP host name will be used to create the ReplyTo address (unless you don't want PutMail to create header/address details). The contents of the HOME:.EMailAddr file can be in one of three formats. 1) user@domain eg: mlanza@southern.co.nz 2) user@domain (Name) eg: mlanza@southern.co.nz (Martin V Lanza) 3) Name eg: Martin V Lanza SMTPHOST Optional argument. This is the name of the SMTP host that you transmit out through (and should ideally be the host that holds your mailbox). If this argument is not supplied PutMail will use the environmental variable SMTPHOST, if that doesn't exist it will look in your local AmiTCP:db/hosts file for the alias SMTPHost, if that doesn't exist it will use the name of the host that you are connected to (obtained from the domain part of the local host name in the environmental variable HOSTNAME). Example of the hosts file entry. 192.231.84.33 mail.southern.co.nz SMTPHost NOHEAD Optional argument. PutMail will put your local heading on the top of all messages unless you specify not to with this switch. The local heading comes from the '.header' file in your home directory which is obtained from the environmental variable 'HOME'. NOADDR Optional argument. This switch tells PutMail not to insert lines for "From:", "Date:", "To:", "ReplyTo:" and "Subject:" into the message header. NOSIG Optional argument. PutMail will put your local signature at the bottom of all messages unless you specify not to with this switch. The local signature comes from the ".signature" file in your home directory which is obtained from the environmental variable 'HOME'. VERBOSE Optional argument. This argument simply switches on verbose reporting of the program's activities and progress. If you have problems using PutMail this may help explain why it's not working. You can always redirect the verbose output to a file and post this to be if you need assistance. DEVELOPMENT: PutMail was developed on an Amiga 3000 running WB 3.1 using SAS/C 6.55. SO LONG AND THANKS FOR THE FISH: I hope you find PutMail easy to use and usefull. Bug reports, Comments, ideas, *POSTCARDS*, E-Mail, gifts and requests for new utilities all welcome. ------------------------------------------------------------------------- This program is freeware, use and/or distribute as you wish on a "NON Profit" basis. Inclusion on the Aminet and Fred Fish CD's is welcomed due to their long standing support of the Amiga. No warranty exists, use this software at your own risk. I will answer all E-Mail and Snail-Mail messages. I can also be contacted on IRC #Amiga as mlanza. I do provide bug fixes via UUEncoded E-Mail. Martin V Lanza PO Box 8344, Christchurch, New Zealand. mlanza@southern.co.nz Home Phone 64-3-366-1618