NAME

smtp -
Client-side tcl implementation of the smtp protocol

SYNOPSIS

package require Tcl 
package require mime  ? 1.3.3 ? 
package require smtp  ? 1.3.3 ? 
::smtp::sendmessage token option...

DESCRIPTION

The smtp library package provides the client side of the smtp protocol.

::smtp::sendmessage token option...
This command sends the MIME part (see package mime) represented by token to an SMTP server. options is a list of options and their associated values. The recognized options are:
-servers
A list of SMTP servers. The default is localhost.
-ports
A list of SMTP ports. The default is 25.
-queue
Indicates that the SMTP server should be asked to queue the message for later processing. A boolean value.
-atleastone
Indicates that the SMTP server must find at least one recipient acceptable for the message to be sent. A boolean value.
-originator
A string containing an 822-style address specification. If present the header isn't examined for an originator address.
-recipients
A string containing one or more 822-style address specifications. If present the header isn't examined for recipient addresses). If the string contains more than one address they will be separated by commas.
-header
A list of keywords and their values (may occur zero or more times).

If the -originator option is not present, the originator address is taken from From (or Resent-From); similarly, if the -recipients option is not present, recipient addresses are taken from To, cc, and Bcc (or Resent-To, and so on). Note that the header key/values supplied by the -header option (not those present in the MIME part) are consulted. Regardless, header key/values are added to the outgoing message as necessary to ensure that a valid 822-style message is sent.
The command returns a list indicating which recipients were unacceptable to the SMTP server. Each element of the list is another list, containing the address, an SMTP error code, and a textual diagnostic. Depending on the -atleastone option and the intended recipients, a non-empty list may still indicate that the message was accepted by the server.

EXAMPLE

proc send_simple_message {recipient email_server subject body} {
    package require smtp
    package require mime

    set token [mime::initialize -canonical text/plain \\
	-string $body]
    mime::setheader $token Subject $subject
    smtp::sendmessage $token \\
	-recipients $recipient -servers $email_server
    mime::finalize $token
}

send_simple_message someone@somewhere.com localhost \\
    "This is the subject." "This is the message."

SEE ALSO

mime, pop3, ftp, http

KEYWORDS

mail, mail, email, smtp, mime, rfc 821, rfc 822, internet, net