/[emacs]/emacs/man/sending.texi
ViewVC logotype

Diff of /emacs/man/sending.texi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.21 by jas, Sat Feb 22 16:33:20 2003 UTC revision 1.22 by jas, Sun Feb 23 12:09:07 2003 UTC
# Line 82  separate manual.  It may be useful for l Line 82  separate manual.  It may be useful for l
82  * Mode: Mail Mode.           Special commands for editing mail being composed.  * Mode: Mail Mode.           Special commands for editing mail being composed.
83  * Amuse: Mail Amusements.    Distracting the NSA; adding fortune messages.  * Amuse: Mail Amusements.    Distracting the NSA; adding fortune messages.
84  * Methods: Mail Methods.     Using alternative mail-composition methods.  * Methods: Mail Methods.     Using alternative mail-composition methods.
 * SMTP: Sending via SMTP.    Sending mail via SMTP.  
85  @end menu  @end menu
86    
87  @node Mail Format  @node Mail Format
# Line 439  the coding system for outgoing mail by s Line 438  the coding system for outgoing mail by s
438  a particular message, Emacs asks you to select the coding system to use,  a particular message, Emacs asks you to select the coding system to use,
439  showing a list of possible coding systems.  showing a list of possible coding systems.
440    
441    @cindex SMTP
442    @cindex Feedmail
443    @cindex Sendmail
444    @vindex send-mail-function
445      The variable @code{send-mail-function} controls how the default mail
446    user agent sends mail.  It should be set to a function.  The default
447    is @code{sendmail-send-it}, which delivers mail using the Sendmail
448    installation on the local host.  To send mail through a SMTP server,
449    set it to @code{smtpmail-send-it} and set up the Emacs SMTP library
450    (@pxref{Sending mail via SMTP,,,smtpmail}).  A third option is
451    @code{feedmail-send-it}, see the commentary section of the
452    @file{feedmail.el} package for more information.
453    
454  @node Header Editing  @node Header Editing
455  @subsection Mail Header Editing  @subsection Mail Header Editing
456    
# Line 691  and facilities that send mail. Line 703  and facilities that send mail.
703  in this chapter about the @samp{*mail*} buffer and Mail mode does not  in this chapter about the @samp{*mail*} buffer and Mail mode does not
704  apply; the other methods use a different format of text in a different  apply; the other methods use a different format of text in a different
705  buffer, and their commands are different as well.  buffer, and their commands are different as well.
   
 @node Sending via SMTP  
 @section Sending via SMTP  
 @cindex SMTP  
   
    On the Internet, mail is sent from host to host using the simple  
 mail transfer protocol (SMTP).  When you read and write mail you are  
 using a mail program that does not use SMTP -- it just reads mails  
 from files.  This is called a mail user agent (MUA).  The mail  
 transfer agent (MTA) is the program that accepts mails via SMTP and  
 stores them in files.  You also need a mail transfer agent when you  
 send mails.  Your mail program has to send its mail to a MTA that can  
 pass it on using SMTP.  
   
    Emacs includes a package for sending your mail to a SMTP server and  
 have it take care of delivering it to the final destination, rather  
 than letting the MTA on your local system take care of it.  This can  
 be useful if you don't have a MTA set up on your host, or if your  
 machine is often disconnected from the Internet.  
   
   Sending mail via SMTP requires configuring your mail user agent  
 (@pxref{Mail Methods}) to use the SMTP library.  How to do this should  
 be described for each mail user agent; for the Message and Gnus user  
 agents the variable @code{message-send-mail-function} (@pxref{Mail  
 Variables,,,message}) is used.  
   
 @vindex send-mail-function  
   The variable @code{send-mail-function} controls how the default mail  
 user agent sends mail.  It should be set to a function.  The default  
 is @code{sendmail-send-it}, but must be set to @code{smtpmail-send-it}  
 in order to use the SMTP library.  @code{feedmail-send-it} is another  
 option.  
   
   Before using SMTP you must find out the hostname of the SMTP server  
 to use.  Your system administrator should provide you with this  
 information, but often it is the same as the server you receive mail  
 from.  
   
 @vindex smtpmail-smtp-server  
   The variable @code{smtpmail-smtp-server} controls the hostname of  
 the server to use.  It is a string with an IP address or hostname.  It  
 defaults to the contents of the @code{SMTPSERVER} environment  
 variable, or, if empty, the contents of  
 @code{smtpmail-default-smtp-server}.  
   
 @vindex smtpmail-default-smtp-server  
   The variable @code{smtpmail-default-smtp-server} controls the  
 default hostname of the server to use.  It is a string with an IP  
 address or hostname.  It must be set before the SMTP library is  
 loaded.  It has no effect if set after the SMTP library has been  
 loaded, or if @code{smtpmail-smtp-server} is defined.  It is usually  
 set by system administrators in a site wide initialization file.  
   
 @cindex Mail Submission  
 SMTP is normally used on the registered ``smtp'' TCP service port 25.  
 Some environments use SMTP in ``Mail Submission'' mode, which uses  
 port 587.  Using other ports is not uncommon, either for security by  
 obscurity purposes, port forwarding, or otherwise.  
   
 @vindex smtpmail-smtp-service  
   The variable @code{smtpmail-smtp-service} controls the port on the  
 server to contact.  It is either a string, in which case it will be  
 translated into an integer using system calls, or an integer.  
   
 Many environments require SMTP clients to authenticate themselves  
 before they are allowed to route mail via a server.  The two following  
 variables contains the authentication information needed for this.  
 The first variable, @code{smtpmail-auth-credentials}, instructs the  
 SMTP library to use a SASL authentication step, currently only the  
 CRAM-MD5, PLAIN and LOGIN-MD5 mechanisms are supported and will be  
 selected in that order if the server supports them.  The second  
 variable, @code{smtpmail-starttls-credentials}, instructs the SMTP  
 library to connect to the server using STARTTLS.  This means the  
 protocol exchange can be integrity protected and confidential by using  
 TLS, and optionally also authentication of the client.  It is common  
 to use both these mechanisms, e.g. to use STARTTLS to achieve  
 integrity and confidentiality and then use SASL for client  
 authentication.  
   
 @vindex smtpmail-auth-credentials  
   The variable @code{smtpmail-auth-credentials} contains a list of  
 hostname, port, username and password tuples.  When the SMTP library  
 connects to a host on a certain port, this variable is searched to  
 find a matching entry for that hostname and port.  If an entry is  
 found, the authentication process is invoked and the credentials are  
 used.  The hostname field follows the same format as  
 @code{smtpmail-smtp-server} (i.e., a string) and the port field the  
 same format as @code{smtpmail-smtp-service} (i.e., a string or an  
 integer).  The username and password fields, which either can be  
 @samp{nil} to indicate that the user is queried for the value  
 interactively, should be strings with the username and password,  
 respectively, information that is normally provided by system  
 administrators.  
   
 @vindex smtpmail-starttls-credentials  
   The variable @code{smtpmail-starttls-credentials} contains a list of  
 tuples with hostname, port, name of file containing client key, and  
 name of file containing client certificate.  The processing is similar  
 to the previous variable.  The client key and certificate may be  
 @samp{nil} if you do not wish to use client authentication.  The use  
 of this variable requires the @samp{starttls} external program to be  
 installed, you can get it from  
 @samp{ftp://ftp.opaopa.org/pub/elisp/starttls-*.tar.gz}.  
   
 The remaining variables are more esoteric and is normally not needed.  
   
 @vindex smtpmail-debug-info  
   The variable @code{smtpmail-debug-info} controls whether to print  
 the SMTP protocol exchange in the minibuffer, and retain the entire  
 exchange in a buffer @samp{*trace of SMTP session to  
 mail.example.org*}.  
   
 @vindex smtpmail-debug-verb  
   The variable @code{smtpmail-debug-verb} controls whether to send the  
 VERB token to the server.  The VERB server instructs the server to be  
 more verbose, and often also to attempt final delivery while your SMTP  
 session is still running.  It is usually only useful together with  
 @code{smtpmail-debug-info}.  Note that this may cause mail delivery to  
 take considerable time if the final destination cannot accept mail.  
   
 @vindex smtpmail-local-domain  
   The variable @code{smtpmail-local-domain} controls the hostname sent  
 in the first EHLO or HELO command sent to the server.  It should only  
 be set if the @code{system-name} function returns a name that isn't  
 accepted by the server.  Do not set this variable unless your server  
 complains.  
   
 @vindex smtpmail-sendto-domain  
   The variable @code{smtpmail-sendto-domain} makes the SMTP library  
 add @samp{@@} and the specified value to recipients specified in the  
 message when they are sent using the RCPT TO command.  Some  
 configurations of sendmail requires this behaviour.  Don't bother to  
 set this unless you have get an error like:  
   
 @example  
         Sending failed; SMTP protocol error  
 @end example  
   
 when sending mail, and the *trace of SMTP session to <somewhere>*  
 buffer (enabled via @code{smtpmail-debug-info}) includes an exchange  
 like:  
   
 @example  
         RCPT TO: <someone>  
         501 <someone>: recipient address must contain a domain  
 @end example  
   
 @vindex smtpmail-queue-mail  
   The variable @code{smtpmail-queue-mail} controls whether a simple  
 off line mail sender is active.  This variable is a boolean, and  
 defaults to @samp{nil} (disabled).  If this is non-nil, mail is not  
 sent immediately but rather queued in the directory  
 @code{smtpmail-queue-dir} and can be later sent manually by invoking  
 @code{smtpmail-send-queued-mail} (typically when you connect to the  
 Internet).  
   
 @vindex smtpmail-queue-dir  
   The variable @code{smtpmail-queue-dir} specifies the name of the  
 directory to hold queued messages.  It defaults to  
 @samp{~/Mail/queued-mail/}.  
   
 @findex smtpmail-send-queued-mail  
   The function @code{smtpmail-send-queued-mail} can be used to send  
 any queued mail when @code{smtpmail-queue-mail} is enabled.  It is  
 typically invoked interactively with @kbd{M-x RET  
 smtpmail-send-queued-mail RET} when you are connected to the Internet.  

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26