Codestone Ltd logo

Command line SMTP client

Download

download cssmtp16.exe 674816 bytes Fri May 27 10:34:01 2005 Self extracting executable


SMTP (RFC 821) Client

Feature rich command line SMTP client.
  • ESMTP authentication
  • Multiple Recipients (including CC and BCC Recipients)
  • Messages composed from multiple files (including stdin)
  • Mime Version 1.0 multipart/mixed content type messages
  • Files included in message body or as attachments
  • Automatic file type detection and encoding in 7bit, quoted-printable or base64 format
  • UUEncoding option

Usage:

CSSmtp[-b][-C<BCC recipients>][-c<CC recipients>][-f<files>]-h<host[:port]>[-l<charset>]-o<originator>[-q]-r<recipients>[-R<reply>]-s<subject>[-U][-u][-?] [-#] [-:<setname>] [-$]

Required Arguments:

-h<host> -o<originator> -r<recipients> -s<subject>

Summary:

SwitchDescription
-bWait for key on completion
-C<BCC recipients>Blind Copy Recipient addresses
-c<CC recipients>Copy Recipient addresses
-f<files>List of files to send
-h<host[:port]>SMTP Smart Host and optional port
-l<charset>MIME character set (default us-ascii)
-m<auth-method>ESMTP authentication method (PLAIN or LOGIN, default is PLAIN)
-n<username>ESMTP username
-o<originator>Message originator
-p<password>ESMTP password
-qQuiet mode - Send less diagnostics to stderr
-r<recipients>Recipient addresses
-R<reply>Reply-to address
-s<subject>Message subject
-UForce UUEncoding
-uUse UUEncoding
-#Display version number/About Box
-$Register the software

Notes

Connecting to a host

The host specified in the -h switch should be the DNS Name or IP Address of your SMTP server. In many cases that will be the server provided by your ISP- for example:

	CSSmtp -hmy.mail.server

Specifying the originator and subject

The -o switch should specify the email address, and optionally the name, of the originator (usually yourself) - for example:

	CSSmtp -hmy.mail.server -o"Fred Bloggs <fred@bloggs.co.uk>"

Remember that Windows 95 and NT require that you put quotes around command line arguments which include spaces.

See the notes below for information on how to specify names and addresses.

The -R switch allows you to specify a different reply-to address.

The -s switch provides the subject of the message - for example:

	CSSmtp -hmy.mail.server -s"CSSMTP is a great program"

Watch those spaces again!

Specifying the recipients of the message

The -r, -c and -C switches specify the list of normal, CC and BCC recipients for the message. Each recipient address should be specified in the same format as the originator address and the addresses in the list should be separated with commas.

Specifying the body of the message

The -f switch should list a set of files which go to make up the body of the message.

The full path of each file should be specified and the files in the list should be separated with commas. By default the files will be included in the body of the message, if you wish the file to be a message attachment you should precede the name of the file with a plus sign:

	CSSmtp -fc:\docs\file1.txt,c:\docs\file2.txt,+c:\docs\file3.txt

The first two files are included in the body of the message, the third is included as an attachment.

You can specify stdin as a source of message text by including an empty filename in the list:

	dir | CSSmtp -fc:\docs\file1.txt,,+c:\docs\file3.txt

Puts file1.txt into the body of the message, then includes a directory listing, before attaching file3.txt to the message.

CSSMTP will automatically determine the correct encoding scheme to use for each file; either 7bit for normal text, quoted-printable for text including extended characters or base64 for binary files.

By default CSSMTP will use Mime Version 1.0 multipart/mixed content type messages to send the message. In some cases you may need to use UUEncoded messages for compatibility with legacy mail clients. The -u switch disables MIME Version 1.0 support and causes CSSMTP to send files as normal text, uuencoding them when necessary. The -U switch results in all files being UUEncoded, regardless of their content. If either the -u or -U switch is used then a '+' preceding any filename arguments will be ignored.

ESMTP authentication

CSSMTP can establish an authenticated connection with an ESMTP server using either the PLAIN or LOGIN authentication methods.

The -n and -p switches specificy the ESMTP credentials. If either of these switches is included in the command line an ESMPT connection will be attempted with the given credentials:

	CSSmtp -hmy.mail.server -nEKrabappel -pseymour ... 

The default ESMTP authentication method is PLAIN; to specify LOGIN authentication you can use the -m switch:

	CSSmtp -hmy.mail.server -mLOGIN ... 

MIME Content-type charset value

The -l switch may be used to specify a specific value for the charset part of the MIME Content-type field, this allows language dependent character sets to be used - for example:

	CSSmtp -hmy.mail.server -lISO-8859-2

Uses the ISO-8859-2 character set.

If no value is specified the default, us-ascii, is used.

Specifying names and email addresses

Names and addresses used by the -o, -r, -c and -C may be specified in the following formats:
Full name and address - Fred Bloggs<Fred@bloggs.com>
Just the email address - <Fred@bloggs.com> or simply Fred@bloggs.com

Exit ('ERRORLEVEL') codes

SymbolValue
ERROR_NONE0
ERROR_NO_ORIGINATOR1
ERROR_NO_RECIPIENTS2
ERROR_NO_SUBJECT3
ERROR_NO_HOST4
ERROR_ATACHING_FILE5
ERROR_CONNECTING_TO_HOST6
ERROR_SENDING_MAIL7

Revision History

ReleaseNotes
V01.6b
  • specify an alternative port on the server
  • ESMTP PLAIN and LOGIN authentication
  • Issue with inline sections in MS Outlook resolved
V01.5a Buid 221
  • Removed MFC42 dependencies.
V01.5a Buid 211
  • Maintainance release. Reinstated exit ('ERRORLEVEL') codes. See Exit Codes above.
V01.5a
  • Now use the NT registry to lookup the content-type MIME field when including or attaching a file. Also derive the charset parameter from the current code page.
  • Tidied the formatting in MIME To and CC fields with multiple recipients.
  • Corrected the syntax of the QUIT command.
  • Maintainance revision of software key algorithms - Freeware and Trial Keys are no longer supported - software will expire after 30 days unless a registration key is purchased.
  • Stored default and named sets of parameters are not available in this release. They will be restored in version 1.6.
v01.0f
  • Fixed RFC 1341compliance problem with closing MIME encapsulation boundary. (Was missing trailing hyphens). Thanks to Jack O'Hare for reporting this problem
V01.0e
  • Library Maintainence revision - Fixed a problem with freeware keys and cleaned up some other routines.
V01.0d
  • Fixed problem affecting some 'To:' fields
V01.0c
  • Added -l switch to allow for language dependent MIME character sets
V01.0b
  • Fixed problem with files without CR/LF on last line
V01.0a
  • Initial release