215 |
The first variable, @code{smtpmail-auth-credentials}, instructs the |
The first variable, @code{smtpmail-auth-credentials}, instructs the |
216 |
SMTP library to use a SASL authentication step, currently only the |
SMTP library to use a SASL authentication step, currently only the |
217 |
CRAM-MD5 and LOGIN mechanisms are supported and will be selected in |
CRAM-MD5 and LOGIN mechanisms are supported and will be selected in |
218 |
that order if the server supports them. The second variable, |
that order if the server support both. |
219 |
@code{smtpmail-starttls-credentials}, instructs the SMTP library to |
|
220 |
connect to the server using STARTTLS. This means the protocol |
The second variable, @code{smtpmail-starttls-credentials}, instructs |
221 |
exchange can be integrity protected and confidential by using TLS, and |
the SMTP library to connect to the server using STARTTLS. This means |
222 |
optionally also authentication of the client. It is common to use |
the protocol exchange may be integrity protected and confidential by |
223 |
both these mechanisms, e.g., to use STARTTLS to achieve integrity and |
using TLS, and optionally also authentication of the client. This |
224 |
confidentiality and then use SASL for client authentication. |
feature uses the elisp package @file{starttls.el} (see it for more |
225 |
|
information on customization), which in turn require that at least one |
226 |
|
of the following external tools are installed: |
227 |
|
|
228 |
|
@enumerate |
229 |
|
@item |
230 |
|
The GNUTLS command line tool @samp{gnutls-cli}, you can get it from |
231 |
|
@url{http://www.gnu.org/software/gnutls/}. This is the recommended |
232 |
|
tool, mainly because it can verify the server certificates. |
233 |
|
|
234 |
|
@item |
235 |
|
The @samp{starttls} external program, you can get it from |
236 |
|
@file{starttls-*.tar.gz} from @uref{ftp://ftp.opaopa.org/pub/elisp/}. |
237 |
|
@end enumerate |
238 |
|
|
239 |
|
It is not uncommon to use both these mechanisms, e.g., to use STARTTLS |
240 |
|
to achieve integrity and confidentiality and then use SASL for client |
241 |
|
authentication. |
242 |
|
|
243 |
@table @code |
@table @code |
244 |
@item smtpmail-auth-credentials |
@item smtpmail-auth-credentials |
248 |
connects to a host on a certain port, this variable is searched to |
connects to a host on a certain port, this variable is searched to |
249 |
find a matching entry for that hostname and port. If an entry is |
find a matching entry for that hostname and port. If an entry is |
250 |
found, the authentication process is invoked and the credentials are |
found, the authentication process is invoked and the credentials are |
251 |
used. The hostname field follows the same format as |
used. |
252 |
|
|
253 |
|
The hostname field follows the same format as |
254 |
@code{smtpmail-smtp-server} (i.e., a string) and the port field the |
@code{smtpmail-smtp-server} (i.e., a string) and the port field the |
255 |
same format as @code{smtpmail-smtp-service} (i.e., a string or an |
same format as @code{smtpmail-smtp-service} (i.e., a string or an |
256 |
integer). The username and password fields, which either can be |
integer). The username and password fields, which either can be |
257 |
@code{nil} to indicate that the user is queried for the value |
@code{nil} to indicate that the user is prompted for the value |
258 |
interactively, should be strings with the username and password, |
interactively, should be strings with the username and password, |
259 |
respectively, information that is normally provided by system |
respectively, information that is normally provided by system |
260 |
administrators. |
administrators. |
265 |
tuples with hostname, port, name of file containing client key, and |
tuples with hostname, port, name of file containing client key, and |
266 |
name of file containing client certificate. The processing is similar |
name of file containing client certificate. The processing is similar |
267 |
to the previous variable. The client key and certificate may be |
to the previous variable. The client key and certificate may be |
268 |
@code{nil} if you do not wish to use client authentication. The use |
@code{nil} if you do not wish to use client authentication. |
|
of this variable requires the @samp{starttls} external program to be |
|
|
installed, you can get @file{starttls-*.tar.gz} from |
|
|
@uref{ftp://ftp.opaopa.org/pub/elisp/}. |
|
269 |
@end table |
@end table |
270 |
|
|
271 |
The following example illustrates what you could put in |
The following example illustrates what you could put in |