Go to the first, previous, next, last section, table of contents.


6.3.4.1 Mail Source Specifiers

You tell Gnus how to fetch mail by setting mail-sources (see section 6.3.4.4 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:

file
Get mail from a single file; typically from the mail spool. Keywords:
:path
The path of the file. Defaults to the value of the MAIL environment variable or `/usr/mail/spool/user-name'.
An example file mail source:
(file :path "/usr/spool/mail/user-name")
Or using the default path:
(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 find the `movemail' you want to use.
directory
Get mail from several files in a directory. This is typically used when you have procmail split the incoming mail into several files. That is, mail from the file `foo.bar.spool' will be put in the group foo.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. Keywords:
:path
The path of the directory where the files are. There is no default value.
:suffix
Only files ending with this suffix are used. The default is `.spool'.
:predicate
Only files that have this predicate return non-nil 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
:postscript
Script run before/after fetching mail.
An example directory mail source:
(directory :path "/home/user-name/procmail-dir/"
           :suffix ".prcml")
pop
Get mail from a POP server. Keywords:
:server
The name of the POP server. The default is taken from the MAILHOST environment variable.
:port
The port number of the POP server. This can be a number (eg, `:port 1234') or a string (eg, `:port "pop3"'). If it is a string, it should be a service name as listed in `/etc/services' on Unix systems. The default is `"pop3"'. On some systems you might need to specify it as `"pop-3"' instead.
:user
The user name to give to the POP server. The default is the login name.
:password
The password to give to the POP server. If not specified, the user is prompted.
:program
The program to use to fetch mail from the POP server. This should be a format-like string. Here's an example:
fetchmail %u@%s -P %p %t
The valid format specifier characters are:
`t'
The name of the file the mail is to be moved to. This must always be included in this string.
`s'
The name of the server.
`P'
The port number of the server.
`u'
The user name to use.
`p'
The password to use.
The values used for these specs are taken from the values you give the corresponding keywords.
:prescript
A script to be run before fetching the mail. The syntax is the same as the :program keyword. This can also be a function to be run.
:postscript
A script to be run after fetching the mail. The syntax is the same as the :program keyword. This can also be a function to be run.
:function
The function to use to fetch mail from the POP server. The function is called with one parameter--the name of the file where the mail should be moved to.
:authentication
This can be either the symbol password 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. Here are some examples. 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")
maildir
Get mail from a maildir. This is a type of mailbox that is supported by at least qmail and postfix, where each file in a special directory contains exactly one mail. Keywords:
:path
The path of the directory where the mails are stored. The default is taken from the MAILDIR environment variable or `~/Maildir/'.
:subdirs
The subdirectories of the Maildir. The default is `("new" "cur")'. You 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"))
imap
Get mail from a IMAP server. If you don't want to use IMAP as intended, as a network mail reading protocol (ie with nnimap), for some reason or other, Gnus let you treat it similar to a POP server and fetches articles from a given IMAP mailbox. See section 6.5 IMAP, for more information. Note that for the Kerberos, GSSAPI, SSL/TLS and STARTTLS support you may need external programs and libraries, See section 6.5 IMAP. Keywords:
:server
The name of the IMAP server. The default is taken from the MAILHOST environment variable.
:port
The port number of the IMAP server. The default is `143', or `993' for SSL/TLS connections.
:user
The user name to give to the IMAP server. The default is the login name.
:password
The password to give to the IMAP server. If not specified, the user is prompted.
:stream
What stream to use for connecting to the server, this is one of the symbols in imap-stream-alist. Right now, this means `gssapi', `kerberos4', `starttls', `ssl', `shell' or the default `network'.
:authentication
Which authenticator to use for authenticating to the server, this is one of the symbols in imap-authenticator-alist. Right now, this means `gssapi', `kerberos4', `digest-md5', `cram-md5', `anonymous' or the default `login'.
:program
When using the `shell' :stream, the contents of this variable is mapped into the `imap-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:
`s'
The name of the server.
`l'
User name from `imap-default-user'.
`p'
The port number of the server.
The values used for these specs are taken from the values you give the corresponding keywords.
:mailbox
The name of the mailbox to get mail from. The default is `INBOX' which normally is the mailbox which receive incoming mail.
:predicate
The predicate used to find articles to fetch. The default, `UNSEEN UNDELETED', is probably the best choice for most people, but if you sometimes peek in your mailbox with a IMAP client and mark some articles as read (or; SEEN) you might want to set this to `nil'. Then all articles in the mailbox is fetched, no matter what. For a complete list of predicates, see RFC 2060 §6.4.4.
:fetchflag
How to flag fetched articles on the server, the default `\Deleted' will mark them as deleted, an alternative would be `\Seen' which would simply mark them as read. These are the two most likely choices, but more flags are defined in RFC 2060 §2.3.2.
:dontexpunge
If non-nil, 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")
webmail
Get mail from a webmail server, such as www.hotmail.com, webmail.netscape.com, www.netaddress.com, www.my-deja.com. NOTE: Now mail.yahoo.com provides POP3 service, so POP mail source is suggested. NOTE: Webmail largely depends cookies. A "one-line-cookie" patch is required for url "4.0pre.46". WARNING: Mails may lost. NO WARRANTY. Keywords:
:subtype
The type of the webmail server. The default is hotmail. The alternatives are netscape, netaddress, my-deja.
:user
The user name to give to the webmail server. The default is the login name.
:password
The password to give to the webmail server. If not specified, the user is prompted.
:dontexpunge
If non-nil, 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")
Common Keywords
Common keywords can be used in any type of mail source. Keywords:
:plugged
If non-nil, 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.

6.3.4.2 Function Interface

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.


Go to the first, previous, next, last section, table of contents.