Next: Mail Source Customization, Up: Mail Sources
You tell Gnus how to fetch mail by setting mail-sources
(see Fetching Mail) to a mail source specifier.
Here's an example:
(pop :server "pop3.mailserver.com" :user "myname")
As can be observed, a mail source specifier is a list where the first element is a mail source type, followed by an arbitrary number of keywords. Keywords that are not explicitly specified are given default values.
The following mail source types are available:
fileKeywords:
:pathrmail-spool-directory
(usually something like /usr/mail/spool/user-name).
:prescript:postscriptAn example file mail source:
(file :path "/usr/spool/mail/user-name")
Or using the default file name:
(file)
If the mail spool file is not located on the local machine, it's best to use POP or IMAP or the like to fetch the mail. You can not use ange-ftp file names here—it has no way to lock the mail spool while moving the mail.
If it's impossible to set up a proper server, you can use ssh instead.
(setq mail-sources
'((file :prescript "ssh host bin/getmail >%t")))
The `getmail' script would look something like the following:
#!/bin/sh
# getmail - move mail from spool to stdout
# flu@iki.fi
MOVEMAIL=/usr/lib/emacs/20.3/i386-redhat-linux/movemail
TMP=$HOME/Mail/tmp
rm -f $TMP; $MOVEMAIL $MAIL $TMP >/dev/null && cat $TMP
Alter this script to fit the `movemail' and temporary
file you want to use.
directoryfoo.bar. (You can change the suffix
to be used instead of .spool.) Setting
nnmail-scan-directory-mail-source-once to non-nil forces
Gnus to scan the mail source only once. This is particularly useful
if you want to scan mail groups at a specified level.
There is also the variable nnmail-resplit-incoming, if you set
that to a non-nil value, then the normal splitting process is
applied to all the files from the directory, Splitting Mail.
Keywords:
:path:suffix:predicatenil are returned.
The default is identity. This is used as an additional
filter—only files that have the right suffix and satisfy this
predicate are considered.
:prescript:postscriptAn example directory mail source:
(directory :path "/home/user-name/procmail-dir/"
:suffix ".prcml")
popKeywords:
:server:port:user:password:programformat-like string. Here's an example:
fetchmail %u@%s -P %p %t
The valid format specifier characters are:
The values used for these specs are taken from the values you give the
corresponding keywords.
:prescript:program keyword. This can also be a function to be run.
:postscript:program keyword. This can also be a function to be run.
:function:authenticationpassword or the symbol apop
and says what authentication scheme to use. The default is
password.
If the :program and :function keywords aren't specified,
pop3-movemail will be used. If pop3-leave-mail-on-server
is non-nil the mail is to be left on the POP server
after fetching when using pop3-movemail. Note that POP servers
maintain no state information between sessions, so what the client
believes is there and what is actually there may not match up. If they
do not, then you may get duplicate mails or the whole thing can fall
apart and leave you with a corrupt mailbox.
Here are some examples for getting mail from a POP server. Fetch from the default POP server, using the default user name, and default fetcher:
(pop)
Fetch from a named server with a named user and password:
(pop :server "my.pop.server"
:user "user-name" :password "secret")
Use `movemail' to move the mail:
(pop :program "movemail po:%u %t %p")
maildirKeywords:
:path:subdirsYou can also get mails from remote hosts (because maildirs don't suffer from locking problems).
Two example maildir mail sources:
(maildir :path "/home/user-name/Maildir/"
:subdirs ("cur" "new"))
(maildir :path "/user@remotehost.org:~/Maildir/"
:subdirs ("new"))
imapNote that for the Kerberos, GSSAPI, TLS/SSL and STARTTLS support you may need external programs and libraries, See IMAP.
Keywords:
:server:port:user:password:streamimap-stream-alist. Right now, this means
`gssapi', `kerberos4', `starttls', `tls',
`ssl', `shell' or the default `network'.
:authenticationimap-authenticator-alist. Right now,
this means `gssapi', `kerberos4', `digest-md5',
`cram-md5', `anonymous' or the default `login'.
:programimap-shell-program variable. This should be a
format-like string (or list of strings). Here's an example:
ssh %s imapd
The valid format specifier characters are:
imap-default-user.
The values used for these specs are taken from the values you give the
corresponding keywords.
:mailbox:predicate:fetchflag:dontexpungenil, don't remove all articles marked as deleted in the
mailbox after finishing the fetch.
An example IMAP mail source:
(imap :server "mail.mycorp.com"
:stream kerberos4
:fetchflag "\\Seen")
webmailNOTE: Webmail largely depends on cookies. A "one-line-cookie" patch is required for url "4.0pre.46".
WARNING: Mails may be lost. NO WARRANTY.
Keywords:
:subtypehotmail. The
alternatives are netscape, netaddress, my-deja.
:user:password:dontexpungenil, only fetch unread articles and don't move them to
trash folder after finishing the fetch.
An example webmail source:
(webmail :subtype 'hotmail
:user "user-name"
:password "secret")
Keywords:
:pluggednil, fetch the mail even when Gnus is unplugged. If you
use directory source to get mail, you can specify it as in this
example:
(setq mail-sources
'((directory :path "/home/pavel/.Spool/"
:suffix ""
:plugged t)))
Gnus will then fetch your mail even when you are unplugged. This is useful when you use local mail and news.
Some of the above keywords specify a Lisp function to be executed.
For each keyword :foo, the Lisp variable foo is bound to
the value of the keyword while the function is executing. For example,
consider the following mail-source setting:
(setq mail-sources '((pop :user "jrl"
:server "pophost" :function fetchfunc)))
While the function fetchfunc is executing, the symbol user
is bound to "jrl", and the symbol server is bound to
"pophost". The symbols port, password,
program, prescript, postscript, function,
and authentication are also bound (to their default values).
See above for a list of keywords for each type of mail source.