1fetchmail(1)              fetchmail reference manual              fetchmail(1)
2
3
4

NAME

6       fetchmail - fetch mail from a POP, IMAP, ETRN, or ODMR-capable server
7
8

SYNOPSIS

10       fetchmail [option...] [mailserver...]
11       fetchmailconf
12
13

DESCRIPTION

15       fetchmail  is  a mail-retrieval and forwarding utility; it fetches mail
16       from  remote  mailservers  and  forwards  it  to  your  local  (client)
17       machine's  delivery  system.   You  can  then handle the retrieved mail
18       using normal mail user agents such as mutt(1), elm(1) or Mail(1).   The
19       fetchmail utility can be run in a daemon mode to repeatedly poll one or
20       more systems at a specified interval.
21
22       The fetchmail program can gather mail from servers  supporting  any  of
23       the  common  mail-retrieval protocols: POP2 (legacy, to be removed from
24       future release), POP3, IMAP2bis, IMAP4, and IMAP4rev1.  It can also use
25       the ESMTP ETRN extension and ODMR.  (The RFCs describing all these pro‐
26       tocols are listed at the end of this manual page.)
27
28       While fetchmail is primarily intended to be used over on-demand  TCP/IP
29       links  (such  as  SLIP  or PPP connections), it may also be useful as a
30       message transfer agent for sites which refuse for security  reasons  to
31       permit (sender-initiated) SMTP transactions with sendmail.
32
33
34   SUPPORT, TROUBLESHOOTING
35       For troubleshooting, tracing and debugging, you need to increase fetch‐
36       mail's verbosity to actually see what happens. To do that,  please  run
37       both  of  the  two  following commands, adding all of the options you'd
38       normally use.
39
40
41              env LC_ALL=C fetchmail -V -v --nodetach --nosyslog
42
43              (This command line prints in English how  fetchmail  understands
44              your configuration.)
45
46
47              env LC_ALL=C fetchmail -vvv  --nodetach --nosyslog
48
49              (This  command line actually runs fetchmail with verbose English
50              output.)
51
52       Also see item #G3 in fetchmail's FAQ ⟨http://fetchmail.berlios.de/
53       fetchmail-FAQ.html#G3⟩
54
55       You  can  omit  the LC_ALL=C part above if you want output in the local
56       language (if supported). However if you are posting to  mailing  lists,
57       please  leave it in. The maintainers do not necessarily understand your
58       language, please use English.
59
60
61
62
63   CONCEPTS
64       If fetchmail is used with a POP or an IMAP server (but not with ETRN or
65       ODMR),  it has two fundamental modes of operation for each user account
66       from which it retrieves mail: singledrop- and multidrop-mode.
67
68       In singledrop-mode,
69              fetchmail assumes that all messages in the user's account (mail‐
70              box)  are  intended for a single recipient.  The identity of the
71              recipient will either default to the local user  currently  exe‐
72              cuting fetchmail, or will need to be explicitly specified in the
73              configuration file.
74
75              fetchmail uses singledrop-mode when the  fetchmailrc  configura‐
76              tion  contains  at  most a single local user specification for a
77              given server account.
78
79       In multidrop-mode,
80              fetchmail assumes that the mail server account actually contains
81              mail  intended  for  any number of different recipients.  There‐
82              fore, fetchmail must attempt  to  deduce  the  proper  "envelope
83              recipient"  from the mail headers of each message.  In this mode
84              of operation, fetchmail almost resembles a mail  transfer  agent
85              (MTA).
86
87              Note  that  neither the POP nor IMAP protocols were intended for
88              use in this fashion, and hence envelope information is often not
89              directly  available.   The ISP must stores the envelope informa‐
90              tion in some message header and. The ISP  must  also  store  one
91              copy  of  the message per recipient. If either of the conditions
92              is not fulfilled, this process is unreliable, because  fetchmail
93              must then resort to guessing the true envelope recipient(s) of a
94              message. This usually fails for mailing list messages and  Bcc:d
95              mail, or mail for multiple recipients in your domain.
96
97              fetchmail  uses  multidrop-mode  when  more  than one local user
98              and/or a wildcard is specified for a particular  server  account
99              in the configuration file.
100
101       In ETRN and ODMR modes,
102              these  considerations do not apply, as these protocols are based
103              on SMTP, which provides explicit envelope recipient information.
104              These protocols always support multiple recipients.
105
106       As  each  message is retrieved, fetchmail normally delivers it via SMTP
107       to port 25 on the machine it is running on (localhost), just as  though
108       it  were being passed in over a normal TCP/IP link.  fetchmail provides
109       the SMTP server with  an  envelope  recipient  derived  in  the  manner
110       described  previously.   The  mail  will then be delivered according to
111       your MTA's rules (the  Mail  Transfer  Agent  is  usually  sendmail(8),
112       exim(8),  or  postfix(8)).   Invoking  your system's MDA (Mail Delivery
113       Agent) is the duty of your MTA.  All  the  delivery-control  mechanisms
114       (such as .forward files) normally available through your system MTA and
115       local delivery agents will therefore be applied as usual.
116
117       If your fetchmail  configuration  sets  a  local  MDA  (see  the  --mda
118       option), it will be used directly instead of talking SMTP to port 25.
119
120       If  the  program fetchmailconf is available, it will assist you in set‐
121       ting up and editing a fetchmailrc configuration.  It runs under  the  X
122       window  system and requires that the language Python and the Tk toolkit
123       (with Python bindings) be present on your system.   If  you  are  first
124       setting  up  fetchmail for single-user mode, it is recommended that you
125       use Novice mode.  Expert mode provides complete  control  of  fetchmail
126       configuration,  including  the multidrop features.  In either case, the
127       'Autoprobe' button will tell you the  most  capable  protocol  a  given
128       mailserver  supports,  and  warn  you  of  potential problems with that
129       server.
130
131

GENERAL OPERATION

133       The behavior of fetchmail is controlled by command-line options  and  a
134       run  control file, ~/.fetchmailrc, the syntax of which we describe in a
135       later section (this file is  what  the  fetchmailconf  program  edits).
136       Command-line options override ~/.fetchmailrc declarations.
137
138       Each  server name that you specify following the options on the command
139       line will be queried.  If you don't specify any servers on the  command
140       line, each 'poll' entry in your ~/.fetchmailrc file will be queried.
141
142       To facilitate the use of fetchmail in scripts and pipelines, it returns
143       an appropriate exit code upon termination -- see EXIT CODES below.
144
145       The following options modify the behavior of fetchmail.  It  is  seldom
146       necessary  to specify any of these once you have a working .fetchmailrc
147       file set up.
148
149       Almost all options have a corresponding keyword which can  be  used  to
150       declare them in a .fetchmailrc file.
151
152       Some  special  options are not covered here, but are documented instead
153       in sections on AUTHENTICATION and DAEMON MODE which follow.
154
155   General Options
156       -V | --version
157              Displays the version information for your copy of fetchmail.  No
158              mail  fetch  is  performed.  Instead, for each server specified,
159              all the option information that would be computed  if  fetchmail
160              were connecting to that server is displayed.  Any non-printables
161              in passwords or other string names are shown as  backslashed  C-
162              like escape sequences.  This option is useful for verifying that
163              your options are set the way you want them.
164
165       -c | --check
166              Return a status code to indicate whether there is mail  waiting,
167              without  actually  fetching  or  deleting  mail  (see EXIT CODES
168              below).  This option turns off daemon mode (in which it would be
169              useless).   It doesn't play well with queries to multiple sites,
170              and doesn't work with ETRN or ODMR.  It will return a false pos‐
171              itive  if you leave read but undeleted mail in your server mail‐
172              box and your fetch protocol can't tell kept  messages  from  new
173              ones.   This  means  it will work with IMAP, not work with POP2,
174              and may occasionally flake out under POP3.
175
176       -s | --silent
177              Silent mode.  Suppresses all progress/status messages  that  are
178              normally  echoed to standard output during a fetch (but does not
179              suppress actual error messages).  The --verbose option overrides
180              this.
181
182       -v | --verbose
183              Verbose mode.  All control messages passed between fetchmail and
184              the mailserver are echoed to stdout.  Overrides --silent.   Dou‐
185              bling this option (-v -v) causes extra diagnostic information to
186              be printed.
187
188       --nosoftbounce
189              (since v6.3.10, Keyword: set no softbounce, since v6.3.10)
190              Hard bounce mode. All permanent delivery errors  cause  messages
191              to  be  deleted  from  the  upstream server, see "no softbounce"
192              below.
193
194       --softbounce
195              (since v6.3.10, Keyword: set softbounce, since v6.3.10)
196              Soft bounce mode. All permanent delivery errors  cause  messages
197              to be left on the upstream server if the protocol supports that.
198              Default to match historic fetchmail documentation, to be changed
199              to hard bounce mode in the next fetchmail release.
200
201   Disposal Options
202       -a | --all | (since v6.3.3) --fetchall
203              (Keyword: fetchall, since v3.0)
204              Retrieve  both  old (seen) and new messages from the mailserver.
205              The default is to fetch only messages the server has not  marked
206              seen.   Under  POP3,  this  option  also  forces the use of RETR
207              rather than TOP.  Note that POP2  retrieval  behaves  as  though
208              --all  is always on (see RETRIEVAL FAILURE MODES below) and this
209              option does not work with ETRN or ODMR.  While the -a and  --all
210              command-line and fetchall rcfile options have been supported for
211              a long time, the --fetchall command-line  option  was  added  in
212              v6.3.3.
213
214       -k | --keep
215              (Keyword: keep)
216              Keep  retrieved  messages  on  the remote mailserver.  Normally,
217              messages are deleted from the folder  on  the  mailserver  after
218              they  have  been  retrieved.   Specifying the keep option causes
219              retrieved messages to remain in your folder on  the  mailserver.
220              This  option does not work with ETRN or ODMR. If used with POP3,
221              it is recommended to also specify the --uidl option or uidl key‐
222              word.
223
224       -K | --nokeep
225              (Keyword: nokeep)
226              Delete  retrieved  messages  from  the  remote mailserver.  This
227              option forces retrieved mail to be deleted.  It may be useful if
228              you have specified a default of keep in your .fetchmailrc.  This
229              option is forced on with ETRN and ODMR.
230
231       -F | --flush
232              (Keyword: flush)
233              POP3/IMAP only.  This is a dangerous option and can  cause  mail
234              loss  when  used improperly. It deletes old (seen) messages from
235              the mailserver before retrieving new  messages.   Warning:  This
236              can  cause  mail  loss if you check your mail with other clients
237              than fetchmail, and cause fetchmail to delete a message  it  had
238              never  fetched  before.  It can also cause mail loss if the mail
239              server marks the message seen after retrieval  (IMAP2  servers).
240              You  should  probably  not use this option in your configuration
241              file. If you use it with POP3, you must use the  'uidl'  option.
242              What  you  probably  want  is  the default setting: if you don't
243              specify '-k', then fetchmail will automatically delete  messages
244              after successful delivery.
245
246       --limitflush
247              POP3/IMAP  only, since version 6.3.0.  Delete oversized messages
248              from the mailserver before retrieving  new  messages.  The  size
249              limit  should  be  separately specified with the --limit option.
250              This option does not work with ETRN or ODMR.
251
252   Protocol and Query Options
253       -p <proto> | --proto <proto> | --protocol <proto>
254              (Keyword: proto[col])
255              Specify the protocol to use when communicating with  the  remote
256              mailserver.   If  no protocol is specified, the default is AUTO.
257              proto may be one of the following:
258
259              AUTO   Tries IMAP, POP3, and POP2 (skipping  any  of  these  for
260                     which support has not been compiled in).
261
262              POP2   Post Office Protocol 2 (legacy, to be removed from future
263                     release)
264
265              POP3   Post Office Protocol 3
266
267              APOP   Use POP3 with old-fashioned MD5-challenge authentication.
268                     Considered not resistant to man-in-the-middle attacks.
269
270              RPOP   Use POP3 with RPOP authentication.
271
272              KPOP   Use POP3 with Kerberos V4 authentication on port 1109.
273
274              SDPS   Use POP3 with Demon Internet's SDPS extensions.
275
276              IMAP   IMAP2bis,  IMAP4,  or  IMAP4rev1 (fetchmail automatically
277                     detects their capabilities).
278
279              ETRN   Use the ESMTP ETRN option.
280
281              ODMR   Use the the On-Demand Mail Relay ESMTP profile.
282
283       All these alternatives work in basically the  same  way  (communicating
284       with standard server daemons to fetch mail already delivered to a mail‐
285       box on the server) except ETRN and ODMR.  The ETRN mode allows  you  to
286       ask  a compliant ESMTP server (such as BSD sendmail at release 8.8.0 or
287       higher) to immediately open a sender-SMTP  connection  to  your  client
288       machine and begin forwarding any items addressed to your client machine
289       in the server's queue of undelivered mail.   The ODMR mode requires  an
290       ODMR-capable  server  and  works similarly to ETRN, except that it does
291       not require the client machine to have a static DNS.
292
293       -U | --uidl
294              (Keyword: uidl)
295              Force UIDL use (effective only with  POP3).   Force  client-side
296              tracking  of  'newness'  of messages (UIDL stands for "unique ID
297              listing" and is described in RFC1939).  Use with 'keep' to use a
298              mailbox  as a baby news drop for a group of users. The fact that
299              seen messages are skipped is logged,  unless  error  logging  is
300              done  through  syslog  while  running in daemon mode.  Note that
301              fetchmail may automatically  enable  this  option  depending  on
302              upstream server capabilities.  Note also that this option may be
303              removed and forced enabled in a future  fetchmail  version.  See
304              also: --idfile.
305
306       --idle (since 6.3.3)
307              (Keyword: idle, since before 6.0.0)
308              Enable IDLE use (effective only with IMAP). Note that this works
309              with only one folder at a given time.   While  the  idle  rcfile
310              keyword  had been supported for a long time, the --idle command-
311              line option was added in version  6.3.3.  IDLE  use  means  that
312              fetchmail  tells the IMAP server to send notice of new messages,
313              so they can be retrieved sooner than would be possible with reg‐
314              ular polls.
315
316       -P <portnumber> | --service <servicename>
317              (Keyword: service) Since version 6.3.0.
318              The service option permits you to specify a service name to con‐
319              nect to.  You can specify a decimal port number  here,  if  your
320              services  database  lacks the required service-port assignments.
321              See the FAQ item R12 and the --ssl  documentation  for  details.
322              This replaces the older --port option.
323
324       --port <portnumber>
325              (Keyword: port)
326              Obsolete  version of --service that does not take service names.
327              Note: this option may be removed from a future version.
328
329       --principal <principal>
330              (Keyword: principal)
331              The principal option permits you to specify a service  principal
332              for  mutual  authentication.  This is applicable to POP3 or IMAP
333              with Kerberos authentication.
334
335       -t <seconds> | --timeout <seconds>
336              (Keyword: timeout)
337              The timeout option allows you to set a server-nonresponse  time‐
338              out  in  seconds.  If a mailserver does not send a greeting mes‐
339              sage or respond to commands for the  given  number  of  seconds,
340              fetchmail  will drop the connection to it.  Without such a time‐
341              out fetchmail might hang until the  TCP  connection  times  out,
342              trying  to  fetch mail from a down host, which may be very long.
343              This would be particularly annoying for a fetchmail  running  in
344              the  background.   There is a default timeout which fetchmail -V
345              will report.  If a given connection receives too  many  timeouts
346              in succession, fetchmail will consider it wedged and stop retry‐
347              ing.  The calling user will be notified by email  if  this  hap‐
348              pens.
349
350              Beginning with fetchmail 6.3.10, the SMTP client uses the recom‐
351              mended minimum timeouts from  RFC-5321  while  waiting  for  the
352              SMTP/LMTP  server  it is talking to.  You can raise the timeouts
353              even more, but you cannot shorten it. This is to avoid a painful
354              situation where fetchmail has been configured with a short time‐
355              out (a minute or less), ships a long message  (many  MBytes)  to
356              the  local  MTA, which then takes longer than timeout to respond
357              "OK", which it eventually will; that would mean  the  mail  gets
358              delivered properly, but fetchmail cannot notice it and will thus
359              refetch this big message over and over again.
360
361       --plugin <command>
362              (Keyword: plugin)
363              The plugin option allows you  to  use  an  external  program  to
364              establish the TCP connection.  This is useful if you want to use
365              ssh, or need some special firewalling setup.  The  program  will
366              be  looked up in $PATH and can optionally be passed the hostname
367              and port as arguments using "%h"  and  "%p"  respectively  (note
368              that  the  interpolation  logic  is  rather primitive, and these
369              tokens must be bounded by whitespace or beginning of  string  or
370              end  of string).  Fetchmail will write to the plugin's stdin and
371              read from the plugin's stdout.
372
373       --plugout <command>
374              (Keyword: plugout)
375              Identical to the plugin option above, but this one is  used  for
376              the SMTP connections.
377
378       -r <name> | --folder <name>
379              (Keyword: folder[s])
380              Causes a specified non-default mail folder on the mailserver (or
381              comma-separated list of folders) to be retrieved.  The syntax of
382              the  folder name is server-dependent.  This option is not avail‐
383              able under POP3, ETRN, or ODMR.
384
385       --tracepolls
386              (Keyword: tracepolls)
387              Tell fetchmail to poll trace information in  the  form  'polling
388              account  %s'  and 'folder %s' to the Received line it generates,
389              where the %s parts are replaced by the user's remote  name,  the
390              poll  label,  and  the  folder  (mailbox)  where  available (the
391              Received header also normally includes the server's true  name).
392              This  can  be  used  to  facilitate  mail filtering based on the
393              account it is being received from.  The  folder  information  is
394              written only since version 6.3.4.
395
396       --ssl  (Keyword: ssl)
397              Causes  the  connection  to  the mail server to be encrypted via
398              SSL.  Connect to the server using the  specified  base  protocol
399              over  a  connection  secured  by SSL. This option defeats oppor‐
400              tunistic starttls negotiation. It is highly recommended  to  use
401              --sslproto  'SSL3' --sslcertck to validate the certificates pre‐
402              sented by the server and defeat the obsolete SSLv2  negotiation.
403              More  information is available in the README.SSL file that ships
404              with fetchmail.
405
406              Note that fetchmail may  still  try  to  negotiate  SSL  through
407              starttls  even if this option is omitted. You can use the --ssl‐
408              proto option to defeat this behavior or tell fetchmail to  nego‐
409              tiate a particular SSL protocol.
410
411              If no port is specified, the connection is attempted to the well
412              known port of the SSL version of the  base  protocol.   This  is
413              generally a different port than the port used by the base proto‐
414              col.  For IMAP, this is port 143 for the clear protocol and port
415              993  for  the SSL secured protocol, for POP3, it is port 110 for
416              the clear text and port 995 for the encrypted variant.
417
418              If your system lacks the corresponding  entries  from  /etc/ser‐
419              vices,  see  the  --service  option and specify the numeric port
420              number as given in the previous paragraph (unless your  ISP  had
421              directed you to different ports, which is uncommon however).
422
423       --sslcert <name>
424              (Keyword: sslcert)
425              For certificate-based client authentication.  Some SSL encrypted
426              servers require client side keys and certificates for  authenti‐
427              cation.   In  most  cases, this is optional.  This specifies the
428              location of the public key certificate to be  presented  to  the
429              server  at  the  time the SSL session is established.  It is not
430              required (but may be provided) if the server  does  not  require
431              it.   It  may  be the same file as the private key (combined key
432              and certificate file) but this  is  not  recommended.  Also  see
433              --sslkey below.
434
435              NOTE: If you use client authentication, the user name is fetched
436              from the certificate's CommonName and  overrides  the  name  set
437              with --user.
438
439       --sslkey <name>
440              (Keyword: sslkey)
441              Specifies  the  file  name  of  the client side private SSL key.
442              Some SSL encrypted servers require client side keys and certifi‐
443              cates  for  authentication.   In  most  cases, this is optional.
444              This specifies the location of the  private  key  used  to  sign
445              transactions  with  the  server  at  the time the SSL session is
446              established.  It is not required (but may be  provided)  if  the
447              server  does not require it. It may be the same file as the pub‐
448              lic key (combined key and certificate file) but this is not rec‐
449              ommended.
450
451              If a password is required to unlock the key, it will be prompted
452              for at the time just prior to establishing the  session  to  the
453              server.  This can cause some complications in daemon mode.
454
455              Also see --sslcert above.
456
457       --sslproto <name>
458              (Keyword: sslproto)
459              Forces  an  SSL/TLS  protocol.  Possible  values are '', 'SSL2',
460              'SSL23', (use of these two values is discouraged and should only
461              be  used  as a last resort) 'SSL3', and 'TLS1'.  The default be‐
462              haviour if this option is  unset  is:  for  connections  without
463              --ssl,  use  'TLS1'  that  fetchmail  will opportunistically try
464              STARTTLS negotiation with TLS1. You can  configure  this  option
465              explicitly  if the default handshake (TLS1 if --ssl is not used,
466              does not work for your server.
467
468              Use this option with 'TLS1' value to enforce a STARTTLS  connec‐
469              tion.  In  this  mode,  it  is  highly  recommended  to also use
470              --sslcertck (see below).
471
472              To defeat opportunistic TLSv1 negotiation when the server adver‐
473              tises  STARTTLS or STLS, use ''.  This option, even if the argu‐
474              ment is the empty string,  will  also  suppress  the  diagnostic
475              'SERVER: opportunistic upgrade to TLS.' message in verbose mode.
476              The default is to try appropriate protocols  depending  on  con‐
477              text.
478
479       --sslcertck
480              (Keyword: sslcertck)
481              Causes  fetchmail  to  strictly  check  the  server  certificate
482              against a set of local trusted certificates (see the sslcertfile
483              and  sslcertpath  options).  If the server certificate cannot be
484              obtained or is not signed by one of the trusted  ones  (directly
485              or  indirectly), the SSL connection will fail, regardless of the
486              sslfingerprint option.
487
488              Note that CRL (certificate revocation lists) are only  supported
489              in  OpenSSL  0.9.7  and  newer! Your system clock should also be
490              reasonably accurate when using this option.
491
492              Note that this optional behavior may become default behavior  in
493              future fetchmail versions.
494
495       --sslcertfile <file>
496              (Keyword: sslcertfile, since v6.3.17)
497              Sets the file fetchmail uses to look up local certificates.  The
498              default is empty.  This can be given in addition  to  --sslcert‐
499              path  below, and certificates specified in --sslcertfile will be
500              processed before those in --sslcertpath.  The option can be used
501              in addition to --sslcertpath.
502
503              The  file  is  a  text  file.  It  contains the concatenation of
504              trusted CA certificates in PEM format.
505
506              Note that using this option will suppress  loading  the  default
507              SSL  trusted CA certificates file unless you set the environment
508              variable FETCHMAIL_INCLUDE_DEFAULT_X509_CA_CERTS to a  non-empty
509              value.
510
511       --sslcertpath <directory>
512              (Keyword: sslcertpath)
513              Sets the directory fetchmail uses to look up local certificates.
514              The default is your OpenSSL  default  directory.  The  directory
515              must  be  hashed the way OpenSSL expects it - every time you add
516              or modify a certificate in the directory, you need  to  use  the
517              c_rehash  tool (which comes with OpenSSL in the tools/ subdirec‐
518              tory). Also,  after  OpenSSL  upgrades,  you  may  need  to  run
519              c_rehash; particularly when upgrading from 0.9.X to 1.0.0.
520
521              This  can be given in addition to --sslcertfile above, which see
522              for precedence rules.
523
524              Note that using this option will suppress adding the default SSL
525              trusted CA certificates directory unless you set the environment
526              variable FETCHMAIL_INCLUDE_DEFAULT_X509_CA_CERTS to a  non-empty
527              value.
528
529       --sslcommonname <common name>
530              (Keyword: sslcommonname; since v6.3.9)
531              Use  of this option is discouraged. Before using it, contact the
532              administrator of your upstream server and ask for a  proper  SSL
533              certificate  to be used. If that cannot be attained, this option
534              can be used to specify  the  name  (CommonName)  that  fetchmail
535              expects  on  the  server  certificate.   A  correctly configured
536              server will have this  set  to  the  hostname  by  which  it  is
537              reached,  and by default fetchmail will expect as much. Use this
538              option when the CommonName is set to some other value, to  avoid
539              the  "Server  CommonName  mismatch"  warning,  and  only  if the
540              upstream server can't be made to use proper certificates.
541
542       --sslfingerprint <fingerprint>
543              (Keyword: sslfingerprint)
544              Specify the fingerprint of the server key (an MD5  hash  of  the
545              key)  in  hexadecimal  notation with colons separating groups of
546              two digits. The letter hex digits must be in upper case. This is
547              the  default  format OpenSSL uses, and the one fetchmail uses to
548              report the fingerprint when an SSL  connection  is  established.
549              When  this  is  specified, fetchmail will compare the server key
550              fingerprint with the given one, and the connection will fail  if
551              they  do not match regardless of the sslcertck setting. The con‐
552              nection will also fail if fetchmail cannot obtain  an  SSL  cer‐
553              tificate  from  the server.  This can be used to prevent man-in-
554              the-middle attacks, but the finger print from the  server  needs
555              to  be obtained or verified over a secure channel, and certainly
556              not over the same Internet connection that fetchmail would use.
557
558              Using this option will prevent printing certificate verification
559              errors as long as --sslcertck is unset.
560
561              To  obtain  the  fingerprint of a certificate stored in the file
562              cert.pem, try:
563
564                   openssl x509 -in cert.pem -noout -md5 -fingerprint
565
566              For details, see x509(1ssl).
567
568   Delivery Control Options
569       -S <hosts> | --smtphost <hosts>
570              (Keyword: smtp[host])
571              Specify a hunt list of hosts to forward mail  to  (one  or  more
572              hostnames,  comma-separated). Hosts are tried in list order; the
573              first one that is up becomes the forwarding target for the  cur‐
574              rent  run.  If this option is not specified, 'localhost' is used
575              as the default.  Each hostname may have a port number  following
576              the  host name.  The port number is separated from the host name
577              by a slash; the default port is "smtp".  If you specify an abso‐
578              lute  path  name (beginning with a /), it will be interpreted as
579              the name of a UNIX socket accepting LMTP connections (such as is
580              supported by the Cyrus IMAP daemon) Example:
581
582                   --smtphost server1,server2/2525,server3,/var/imap/socket/lmtp
583
584              This  option  can  be  used with ODMR, and will make fetchmail a
585              relay between the ODMR server and SMTP or LMTP receiver.
586
587       --fetchdomains <hosts>
588              (Keyword: fetchdomains)
589              In ETRN or ODMR mode, this option specifies the list of  domains
590              the  server  should  ship mail for once the connection is turned
591              around.  The default is the FQDN of the machine  running  fetch‐
592              mail.
593
594       -D <domain> | --smtpaddress <domain>
595              (Keyword: smtpaddress)
596              Specify  the domain to be appended to addresses in RCPT TO lines
597              shipped to SMTP. When this is not specified,  the  name  of  the
598              SMTP  server  (as specified by --smtphost) is used for SMTP/LMTP
599              and 'localhost' is used for UNIX socket/BSMTP.
600
601       --smtpname <user@domain>
602              (Keyword: smtpname)
603              Specify the domain and user to be put in RCPT TO  lines  shipped
604              to SMTP.  The default user is the current local user.
605
606       -Z <nnn> | --antispam <nnn[, nnn]...>
607              (Keyword: antispam)
608              Specifies  the list of numeric SMTP errors that are to be inter‐
609              preted as a spam-block response from the listener.  A  value  of
610              -1  disables this option.  For the command-line option, the list
611              values should be comma-separated.
612
613       -m <command> | --mda <command>
614              (Keyword: mda)
615              This option lets fetchmail use a Message or Local Delivery Agent
616              (MDA or LDA) directly, rather than forward via SMTP or LMTP.
617
618              To  avoid losing mail, use this option only with MDAs like mail‐
619              drop or MTAs like sendmail that exit with a  nonzero  status  on
620              disk-full  and  other  delivery errors; the nonzero status tells
621              fetchmail that delivery failed and  prevents  the  message  from
622              being deleted on the server.
623
624              If  fetchmail  is  running  as  root,  it sets its user id while
625              delivering mail through an MDA as follows:   First,  the  FETCH‐
626              MAILUSER, LOGNAME, and USER environment variables are checked in
627              this order. The value of the first variable from his  list  that
628              is  defined  (even  if  it is empty!) is looked up in the system
629              user database. If none of the variables  is  defined,  fetchmail
630              will  use  the  real  user id it was started with. If one of the
631              variables was defined, but the user stated  there  isn't  found,
632              fetchmail  continues running as root, without checking remaining
633              variables on the list.  Practically, this means that if you  run
634              fetchmail as root (not recommended), it is most useful to define
635              the FETCHMAILUSER environment variable to set the user that  the
636              MDA  should run as. Some MDAs (such as maildrop) are designed to
637              be setuid root and setuid to the recipient's  user  id,  so  you
638              don't lose functionality this way even when running fetchmail as
639              unprivileged user.  Check the MDA's manual for details.
640
641              Some possible MDAs are  "/usr/sbin/sendmail  -i  -f  %F  --  %T"
642              (Note: some several older or vendor sendmail versions mistake --
643              for an address, rather than an indicator to mark the end of  the
644              option  arguments), "/usr/bin/deliver" and "/usr/bin/maildrop -d
645              %T".  Local delivery addresses will be  inserted  into  the  MDA
646              command wherever you place a %T; the mail message's From address
647              will be inserted where you place an %F.
648
649              Do NOT enclose the %F or %T string in single quotes!   For  both
650              %T  and  %F,  fetchmail  encloses the addresses in single quotes
651              ('), after removing any single quotes they may  contain,  before
652              the MDA command is passed to the shell.
653
654              Do  NOT use an MDA invocation that dispatches on the contents of
655              To/Cc/Bcc, like "sendmail -i -t" or "qmail-inject", it will cre‐
656              ate mail loops and bring the just wrath of many postmasters down
657              upon your head.  This is one of the most frequent  configuration
658              errors!
659
660              Also,  do  not try to combine multidrop mode with an MDA such as
661              maildrop that can only accept one address, unless your  upstream
662              stores  one copy of the message per recipient and transports the
663              envelope recipient in a header; you will lose mail.
664
665              The well-known procmail(1) package is  very  hard  to  configure
666              properly,  it  has  a very nasty "fall through to the next rule"
667              behavior on delivery errors (even temporary ones, such as out of
668              disk  space  if  another  user's  mail daemon copies the mailbox
669              around to purge old messages), so your mail will end up  in  the
670              wrong mailbox sooner or later. The proper procmail configuration
671              is outside the scope of this document. Using maildrop(1) is usu‐
672              ally  much easier, and many users find the filter syntax used by
673              maildrop easier to understand.
674
675              Finally, we strongly advise that you do  not  use  qmail-inject.
676              The  command  line  interface  is non-standard without providing
677              benefits for typical use, and fetchmail  makes  no  attempts  to
678              accomodate  qmail-inject's deviations from the standard. Some of
679              qmail-inject's command-line and environment options are actually
680              dangerous  and  can cause broken threads, non-detected duplicate
681              messages and forwarding loops.
682
683
684       --lmtp (Keyword: lmtp)
685              Cause delivery via LMTP (Local Mail Transfer Protocol).  A  ser‐
686              vice  host and port must be explicitly specified on each host in
687              the smtphost hunt list (see above) if this option  is  selected;
688              the  default  port  25 will (in accordance with RFC 2033) not be
689              accepted.
690
691       --bsmtp <filename>
692              (Keyword: bsmtp)
693              Append fetched mail to a BSMTP file.  This simply  contains  the
694              SMTP commands that would normally be generated by fetchmail when
695              passing mail to an SMTP listener daemon.
696
697              An argument of '-' causes the SMTP batch to be written to  stan‐
698              dard  output, which is of limited use: this only makes sense for
699              debugging, because fetchmail's regular output is interspersed on
700              the same channel, so this isn't suitable for mail delivery. This
701              special mode may be removed in a later release.
702
703              Note that fetchmail's reconstruction of MAIL FROM  and  RCPT  TO
704              lines is not guaranteed correct; the caveats discussed under THE
705              USE AND ABUSE OF MULTIDROP MAILBOXES below apply.  This mode has
706              precedence before --mda and SMTP/LMTP.
707
708       --bad-header {reject|accept}
709              (Keyword: bad-header; since v6.3.15)
710              Specify  how  fetchmail  is  supposed to treat messages with bad
711              headers, i. e. headers with bad syntax. Traditionally, fetchmail
712              has  rejected  such  messages,  but  some  distributors modified
713              fetchmail to accept them. You can now configure fetchmail's  be‐
714              haviour per server.
715
716
717   Resource Limit Control Options
718       -l <maxbytes> | --limit <maxbytes>
719              (Keyword: limit)
720              Takes  a maximum octet size argument, where 0 is the default and
721              also the special value designating "no limit".  If nonzero, mes‐
722              sages larger than this size will not be fetched and will be left
723              on the server (in foreground  sessions,  the  progress  messages
724              will  note  that  they  are "oversized").  If the fetch protocol
725              permits (in particular, under IMAP or POP3 without the  fetchall
726              option) the message will not be marked seen.
727
728              An  explicit  --limit  of 0 overrides any limits set in your run
729              control file. This option  is  intended  for  those  needing  to
730              strictly  control fetch time due to expensive and variable phone
731              rates.
732
733              Combined with --limitflush, it can be used to  delete  oversized
734              messages  waiting on a server.  In daemon mode, oversize notifi‐
735              cations are mailed to  the  calling  user  (see  the  --warnings
736              option). This option does not work with ETRN or ODMR.
737
738       -w <interval> | --warnings <interval>
739              (Keyword: warnings)
740              Takes  an  interval  in seconds.  When you call fetchmail with a
741              'limit' option in daemon mode, this  controls  the  interval  at
742              which  warnings about oversized messages are mailed to the call‐
743              ing user (or the user specified  by  the  'postmaster'  option).
744              One  such  notification  is  always mailed at the end of the the
745              first poll that the oversized message is detected.   Thereafter,
746              re-notification  is  suppressed until after the warning interval
747              elapses (it will take place at the end of  the  first  following
748              poll).
749
750       -b <count> | --batchlimit <count>
751              (Keyword: batchlimit)
752              Specify  the  maximum number of messages that will be shipped to
753              an SMTP listener before the connection is deliberately torn down
754              and  rebuilt  (defaults  to  0,  meaning no limit).  An explicit
755              --batchlimit of 0 overrides any limits set in your  run  control
756              file.   While  sendmail(8) normally initiates delivery of a mes‐
757              sage immediately after receiving the  message  terminator,  some
758              SMTP  listeners  are not so prompt.  MTAs like smail(8) may wait
759              till the delivery socket is shut down to deliver.  This may pro‐
760              duce  annoying  delays  when  fetchmail is processing very large
761              batches.  Setting the batch limit to some nonzero size will pre‐
762              vent these delays.  This option does not work with ETRN or ODMR.
763
764       -B <number> | --fetchlimit <number>
765              (Keyword: fetchlimit)
766              Limit  the  number of messages accepted from a given server in a
767              single poll.  By default there is no limit. An explicit --fetch‐
768              limit  of  0  overrides any limits set in your run control file.
769              This option does not work with ETRN or ODMR.
770
771       --fetchsizelimit <number>
772              (Keyword: fetchsizelimit)
773              Limit the number of sizes of  messages  accepted  from  a  given
774              server in a single transaction.  This option is useful in reduc‐
775              ing the delay in downloading the first mail when there  are  too
776              many  mails  in  the mailbox.  By default, the limit is 100.  If
777              set to 0, sizes of all messages are  downloaded  at  the  start.
778              This option does not work with ETRN or ODMR.  For POP3, the only
779              valid non-zero value is 1.
780
781       --fastuidl <number>
782              (Keyword: fastuidl)
783              Do a binary instead of linear search for the first  unseen  UID.
784              Binary  search  avoids  downloading  the UIDs of all mails. This
785              saves time (especially in daemon  mode)  where  downloading  the
786              same  set of UIDs in each poll is a waste of bandwidth. The num‐
787              ber 'n' indicates how rarely a linear search should be done.  In
788              daemon  mode,  linear  search  is  used  once followed by binary
789              searches in 'n-1' polls if 'n' is greater than 1; binary  search
790              is  always used if 'n' is 1; linear search is always used if 'n'
791              is 0. In non-daemon mode, binary search is used  if  'n'  is  1;
792              otherwise  linear search is used. The default value of 'n' is 4.
793              This option works with POP3 only.
794
795       -e <count> | --expunge <count>
796              (Keyword: expunge)
797              Arrange for deletions to be made final after a given  number  of
798              messages.   Under  POP2 or POP3, fetchmail cannot make deletions
799              final without sending QUIT and ending the session --  with  this
800              option  on,  fetchmail  will break a long mail retrieval session
801              into multiple sub-sessions, sending QUIT after each sub-session.
802              This  is  a  good  defense  against  line drops on POP3 servers.
803              Under IMAP, fetchmail normally issues an EXPUNGE  command  after
804              each  deletion in order to force the deletion to be done immedi‐
805              ately.  This is safest when your connection  to  the  server  is
806              flaky and expensive, as it avoids resending duplicate mail after
807              a line hit.  However, on large mailboxes  the  overhead  of  re-
808              indexing after every message can slam the server pretty hard, so
809              if your connection is reliable it is good to  do  expunges  less
810              frequently.   Also  note  that some servers enforce a delay of a
811              few seconds after each quit, so fetchmail may not be able to get
812              back  in immediately after an expunge -- you may see "lock busy"
813              errors if this happens. If you specify this option to an integer
814              N,  it  tells  fetchmail  to  only  issue  expunges on every Nth
815              delete.  An argument of zero suppresses expunges entirely (so no
816              expunges at all will be done until the end of run).  This option
817              does not work with ETRN or ODMR.
818
819
820   Authentication Options
821       -u <name> | --user <name> | --username <name>
822              (Keyword: user[name])
823              Specifies the user identification to be used when logging in  to
824              the  mailserver.   The  appropriate  user identification is both
825              server and user-dependent.  The default is your  login  name  on
826              the  client machine that is running fetchmail.  See USER AUTHEN‐
827              TICATION below for a complete description.
828
829       -I <specification> | --interface <specification>
830              (Keyword: interface)
831              Require that a specific interface device be up and have  a  spe‐
832              cific local or remote IPv4 (IPv6 is not supported by this option
833              yet) address (or range) before polling.  Frequently fetchmail is
834              used  over  a  transient  point-to-point TCP/IP link established
835              directly to a mailserver via SLIP or PPP.  That is a  relatively
836              secure  channel.  But when other TCP/IP routes to the mailserver
837              exist (e.g. when the link is connected  to  an  alternate  ISP),
838              your  username and password may be vulnerable to snooping (espe‐
839              cially when daemon mode automatically polls for mail, shipping a
840              clear  password  over  the  net  at predictable intervals).  The
841              --interface option may be used to prevent this.  When the speci‐
842              fied  link  is  not  up  or  is  not  connected to a matching IP
843              address, polling will be skipped.  The format is:
844
845                   interface/iii.iii.iii.iii[/mmm.mmm.mmm.mmm]
846
847              The field before the first slash is  the  interface  name  (i.e.
848              sl0,  ppp0  etc.).   The  field  before  the second slash is the
849              acceptable IP address.  The field after the second  slash  is  a
850              mask  which  specifies a range of IP addresses to accept.  If no
851              mask is  present  255.255.255.255  is  assumed  (i.e.  an  exact
852              match).  This option is currently only supported under Linux and
853              FreeBSD. Please see the monitor section for  below  for  FreeBSD
854              specific information.
855
856              Note  that  this  option  may be removed from a future fetchmail
857              version.
858
859       -M <interface> | --monitor <interface>
860              (Keyword: monitor)
861              Daemon mode can cause transient links  which  are  automatically
862              taken  down  after  a  period  of inactivity (e.g. PPP links) to
863              remain up indefinitely.  This option identifies a system  TCP/IP
864              interface  to be monitored for activity.  After each poll inter‐
865              val, if the link is up but no other activity has occurred on the
866              link, then the poll will be skipped.  However, when fetchmail is
867              woken up by a signal, the monitor check is skipped and the  poll
868              goes  through  unconditionally.   This  option is currently only
869              supported under Linux and FreeBSD.  For the monitor  and  inter‐
870              face  options  to  work  for  non  root users under FreeBSD, the
871              fetchmail binary must be installed SGID kmem.  This would  be  a
872              security  hole, but fetchmail runs with the effective GID set to
873              that of the kmem group only when interface data  is  being  col‐
874              lected.
875
876              Note  that  this  option  may be removed from a future fetchmail
877              version.
878
879       --auth <type>
880              (Keyword: auth[enticate])
881              This option permits you to specify an authentication  type  (see
882              USER AUTHENTICATION below for details).  The possible values are
883              any,  password,  kerberos_v5,  kerberos  (or,  for  excruciating
884              exactness,  kerberos_v4), gssapi, cram-md5, otp, ntlm, msn (only
885              for POP3), external (only IMAP) and ssh.  When any (the default)
886              is specified, fetchmail tries first methods that don't require a
887              password (EXTERNAL, GSSAPI, KERBEROS IV,  KERBEROS 5);  then  it
888              looks  for  methods  that  mask your password (CRAM-MD5, X-OTP -
889              note that NTLM and MSN are not autoprobed for POP3  and  MSN  is
890              only supported for POP3); and only if the server doesn't support
891              any of those will it ship your password en clair.  Other  values
892              may  be  used  to force various authentication methods (ssh sup‐
893              presses authentication and is thus  useful  for  IMAP  PREAUTH).
894              (external  suppresses authentication and is thus useful for IMAP
895              EXTERNAL).  Any value other than password, cram-md5,  ntlm,  msn
896              or  otp  suppresses  fetchmail's  normal inquiry for a password.
897              Specify ssh when you are using an end-to-end  secure  connection
898              such  as  an  ssh tunnel; specify external when you use TLS with
899              client authentication and specify gssapi or kerberos_v4  if  you
900              are  using a protocol variant that employs GSSAPI or K4.  Choos‐
901              ing KPOP protocol automatically selects Kerberos authentication.
902              This option does not work with ETRN.
903
904   Miscellaneous Options
905       -f <pathname> | --fetchmailrc <pathname>
906              Specify  a  non-default  name for the ~/.fetchmailrc run control
907              file.  The pathname argument must be either "-" (a single  dash,
908              meaning  to  read  the  configuration  from standard input) or a
909              filename.  Unless the --version option is also on, a named  file
910              argument   must   have   permissions  no  more  open  than  0700
911              (u=rwx,g=,o=) or else be /dev/null.
912
913       -i <pathname> | --idfile <pathname>
914              (Keyword: idfile)
915              Specify an alternate name for the .fetchids file  used  to  save
916              message  UIDs.  NOTE: since fetchmail 6.3.0, write access to the
917              directory containing the idfile is required, as fetchmail writes
918              a  temporary  file  and  renames  it  into the place of the real
919              idfile only if the temporary file has been written successfully.
920              This  avoids  the truncation of idfiles when running out of disk
921              space.
922
923       --pidfile <pathname>
924              (Keyword: pidfile; since fetchmail v6.3.4)
925              Override the default location of  the  PID  file.  Default:  see
926              "ENVIRONMENT" below.
927
928       -n | --norewrite
929              (Keyword: no rewrite)
930              Normally, fetchmail edits RFC-822 address headers (To, From, Cc,
931              Bcc, and Reply-To) in fetched mail so that any mail IDs local to
932              the  server are expanded to full addresses (@ and the mailserver
933              hostname are appended).  This enables replies on the  client  to
934              get  addressed correctly (otherwise your mailer might think they
935              should be addressed to local  users  on  the  client  machine!).
936              This  option  disables the rewrite.  (This option is provided to
937              pacify people who are paranoid about having  an  MTA  edit  mail
938              headers  and  want to know they can prevent it, but it is gener‐
939              ally not a good idea to actually turn off rewrite.)  When  using
940              ETRN or ODMR, the rewrite option is ineffective.
941
942       -E <line> | --envelope <line>
943              (Keyword: envelope; Multidrop only)
944              In the configuration file, an enhanced syntax is used:
945              envelope [<count>] <line>
946
947              This  option  changes  the header fetchmail assumes will carry a
948              copy of the mail's envelope address.  Normally this is  'X-Enve‐
949              lope-To'.   Other  typically  found  headers  to  carry envelope
950              information are 'X-Original-To' and 'Delivered-To'.  Now,  since
951              these  headers  are  not  standardized, practice varies. See the
952              discussion of multidrop address handling below.   As  a  special
953              case,  'envelope  "Received"'  enables parsing of sendmail-style
954              Received lines.  This is the default, but discouraged because it
955              is not fully reliable.
956
957              Note  that  fetchmail  expects the Received-line to be in a spe‐
958              cific format: It must contain "by host for address", where  host
959              must match one of the mailserver names that fetchmail recognizes
960              for the account in question.
961
962              The optional count argument (only available in the configuration
963              file) determines how many header lines of this kind are skipped.
964              A count of 1 means: skip the first, take the second. A count  of
965              2 means: skip the first and second, take the third, and so on.
966
967       -Q <prefix> | --qvirtual <prefix>
968              (Keyword: qvirtual; Multidrop only)
969              The  string  prefix assigned to this option will be removed from
970              the user name found in the header specified  with  the  envelope
971              option  (before  doing  multidrop  name  mapping  or localdomain
972              checking, if either is applicable). This option is useful if you
973              are using fetchmail to collect the mail for an entire domain and
974              your ISP (or your mail redirection  provider)  is  using  qmail.
975              One  of the basic features of qmail is the Delivered-To: message
976              header.  Whenever qmail delivers a message to a local mailbox it
977              puts the username and hostname of the envelope recipient on this
978              line.  The major reason for this is to prevent mail  loops.   To
979              set up qmail to batch mail for a disconnected site the ISP-mail‐
980              host will have normally put that site in its 'Virtualhosts' con‐
981              trol file so it will add a prefix to all mail addresses for this
982              site. This results  in  mail  sent  to  'username@userhost.user‐
983              dom.dom.com' having a Delivered-To: line of the form:
984
985              Delivered-To: mbox-userstr-username@userhost.example.com
986
987       The  ISP can make the 'mbox-userstr-' prefix anything they choose but a
988       string matching the user host name is  likely.   By  using  the  option
989       'envelope  Delivered-To:'  you can make fetchmail reliably identify the
990       original envelope recipient, but you have to strip the  'mbox-userstr-'
991       prefix  to  deliver  to  the correct user.  This is what this option is
992       for.
993
994       --configdump
995              Parse  the  ~/.fetchmailrc  file,  interpret  any   command-line
996              options  specified,  and dump a configuration report to standard
997              output.  The configuration report is a data structure assignment
998              in the language Python.  This option is meant to be used with an
999              interactive ~/.fetchmailrc editor like fetchmailconf, written in
1000              Python.
1001
1002
1003   Removed Options
1004       -T | --netsec
1005              Removed before version 6.3.0, the required underlying inet6_apps
1006              library had been discontinued and is no longer available.
1007
1008

USER AUTHENTICATION AND ENCRYPTION

1010       All modes except ETRN require  authentication  of  the  client  to  the
1011       server.   Normal user authentication in fetchmail is very much like the
1012       authentication mechanism of ftp(1).  The correct user-id  and  password
1013       depend upon the underlying security system at the mailserver.
1014
1015       If  the mailserver is a Unix machine on which you have an ordinary user
1016       account, your regular login name and password are used with  fetchmail.
1017       If  you  use  the  same  login  name  on both the server and the client
1018       machines, you needn't worry about specifying  a  user-id  with  the  -u
1019       option  -- the default behavior is to use your login name on the client
1020       machine as the user-id on the server machine.  If you use  a  different
1021       login  name  on the server machine, specify that login name with the -u
1022       option.  e.g. if your login name is 'jsmith' on a machine named  'mail‐
1023       grunt', you would start fetchmail as follows:
1024
1025              fetchmail -u jsmith mailgrunt
1026
1027       The  default behavior of fetchmail is to prompt you for your mailserver
1028       password before the connection is established.  This is the safest  way
1029       to  use  fetchmail  and  ensures that your password will not be compro‐
1030       mised.  You may also specify your password in your ~/.fetchmailrc file.
1031       This is convenient when using fetchmail in daemon mode or with scripts.
1032
1033
1034   Using netrc files
1035       If you do not specify a password, and fetchmail cannot extract one from
1036       your ~/.fetchmailrc file, it will look for a ~/.netrc file in your home
1037       directory before requesting one interactively; if an entry matching the
1038       mailserver is found in that file, the password will be used.  Fetchmail
1039       first looks for a match on poll name; if it finds none, it checks for a
1040       match on via name.  See the ftp(1) man page for details of  the  syntax
1041       of the ~/.netrc file.  To show a practical example, a .netrc might look
1042       like this:
1043
1044              machine hermes.example.org
1045              login joe
1046              password topsecret
1047
1048       You can repeat this block with different user information if  you  need
1049       to provide more than one password.
1050
1051       This feature may allow you to avoid duplicating password information in
1052       more than one file.
1053
1054       On mailservers that do not provide ordinary user accounts, your user-id
1055       and  password are usually assigned by the server administrator when you
1056       apply for a mailbox on the server.  Contact your  server  administrator
1057       if  you  don't  know  the correct user-id and password for your mailbox
1058       account.
1059

POP3 VARIANTS

1061       Early versions of POP3 (RFC1081, RFC1225) supported  a  crude  form  of
1062       independent  authentication  using  the  .rhosts file on the mailserver
1063       side.  Under this RPOP variant, a fixed per-user  ID  equivalent  to  a
1064       password  was  sent  in  clear over a link to a reserved port, with the
1065       command RPOP rather than PASS to alert the server  that  it  should  do
1066       special  checking.   RPOP  is  supported  by fetchmail (you can specify
1067       'protocol RPOP' to have the program send 'RPOP' rather than 'PASS') but
1068       its  use  is  strongly  discouraged, and support will be removed from a
1069       future fetchmail version.  This facility was vulnerable to spoofing and
1070       was withdrawn in RFC1460.
1071
1072       RFC1460  introduced  APOP authentication.  In this variant of POP3, you
1073       register an APOP password on your server host  (on  some  servers,  the
1074       program to do this is called popauth(8)).  You put the same password in
1075       your ~/.fetchmailrc file.  Each time fetchmail logs in, it sends an MD5
1076       hash of your password and the server greeting time to the server, which
1077       can verify it by checking its authorization database.
1078
1079       Note that APOP is no longer considered  resistant  against  man-in-the-
1080       middle attacks.
1081
1082   RETR or TOP
1083       fetchmail  makes  some  efforts to make the server believe messages had
1084       not been retrieved, by using the TOP command with  a  large  number  of
1085       lines  when  possible.  TOP is a command that retrieves the full header
1086       and a fetchmail-specified amount of body  lines.  It  is  optional  and
1087       therefore  not implemented by all servers, and some are known to imple‐
1088       ment it improperly. On many servers however,  the  RETR  command  which
1089       retrieves  the  full message with header and body, sets the "seen" flag
1090       (for instance, in a web interface), whereas the TOP command does not do
1091       that.
1092
1093       fetchmail  will  always  use  the  RETR  command  if "fetchall" is set.
1094       fetchmail will also use the RETR command if "keep" is set and "uidl" is
1095       unset.   Finally,  fetchmail  will  use the RETR command on Maillennium
1096       POP3/PROXY servers (used by Comcast) to avoid a deliberate  TOP  misin‐
1097       terpretation in this server that causes message corruption.
1098
1099       In  all  other  cases, fetchmail will use the TOP command. This implies
1100       that in "keep" setups, "uidl" must be set if "TOP" is desired.
1101
1102       Note that this description is true for the current  version  of  fetch‐
1103       mail,  but  the  behavior may change in future versions. In particular,
1104       fetchmail may prefer the RETR command because the  TOP  command  causes
1105       much grief on some servers and is only optional.
1106

ALTERNATE AUTHENTICATION FORMS

1108       If  your fetchmail was built with Kerberos support and you specify Ker‐
1109       beros authentication (either with --auth  or  the  .fetchmailrc  option
1110       authenticate kerberos_v4) it will try to get a Kerberos ticket from the
1111       mailserver at the start of each query.  Note: if either the pollname or
1112       via  name  is 'hesiod', fetchmail will try to use Hesiod to look up the
1113       mailserver.
1114
1115       If you use POP3 or IMAP  with  GSSAPI  authentication,  fetchmail  will
1116       expect  the  server to have RFC1731- or RFC1734-conforming GSSAPI capa‐
1117       bility, and will use it.  Currently this has only been tested over Ker‐
1118       beros  V,  so you're expected to already have a ticket-granting ticket.
1119       You may pass a username different from your principal  name  using  the
1120       standard --user command or by the .fetchmailrc option user.
1121
1122       If  your IMAP daemon returns the PREAUTH response in its greeting line,
1123       fetchmail will notice this and skip  the  normal  authentication  step.
1124       This  can  be useful, e.g. if you start imapd explicitly using ssh.  In
1125       this case you can declare the authentication value 'ssh' on  that  site
1126       entry  to stop .fetchmail from asking you for a password when it starts
1127       up.
1128
1129       If you use client authentication with TLS1 and your IMAP daemon returns
1130       the AUTH=EXTERNAL response, fetchmail will notice this and will use the
1131       authentication shortcut and will not send the passphrase. In this  case
1132       you can declare the authentication value 'external'
1133        on  that site to stop fetchmail from asking you for a password when it
1134       starts up.
1135
1136       If you are using POP3, and the server issues a one-time-password  chal‐
1137       lenge conforming to RFC1938, fetchmail will use your password as a pass
1138       phrase to generate the required response. This avoids  sending  secrets
1139       over the net unencrypted.
1140
1141       Compuserve's  RPA  authentication  is  supported. If you compile in the
1142       support, fetchmail will try to perform an RPA  pass-phrase  authentica‐
1143       tion instead of sending over the password en clair if it detects "@com‐
1144       puserve.com" in the hostname.
1145
1146       If you are using IMAP, Microsoft's NTLM authentication (used by  Micro‐
1147       soft  Exchange)  is supported. If you compile in the support, fetchmail
1148       will try to perform an NTLM authentication (instead of sending over the
1149       password  en  clair) whenever the server returns AUTH=NTLM in its capa‐
1150       bility  response.  Specify  a  user  option  value  that   looks   like
1151       'user@domain':  the  part  to  the  left of the @ will be passed as the
1152       username and the part to the right as the NTLM domain.
1153
1154
1155   Secure Socket Layers (SSL) and Transport Layer Security (TLS)
1156       Note that fetchmail currently uses the OpenSSL library,  which  is  se‐
1157       verely underdocumented, so failures may occur just because the program‐
1158       mers are not aware of OpenSSL's requirement of the day.  For  instance,
1159       since  v6.3.16,  fetchmail calls OpenSSL_add_all_algorithms(), which is
1160       necessary to support certificates with SHA256 on OpenSSL 0.9.8 --  this
1161       information  is deeply hidden in the documentation and not at all obvi‐
1162       ous.  Please do not hesitate to report subtle SSL failures.
1163
1164       You can access SSL encrypted services by specifying the  --ssl  option.
1165       You  can  also  do this using the "ssl" user option in the .fetchmailrc
1166       file. With SSL encryption enabled, queries are initiated over a connec‐
1167       tion  after negotiating an SSL session, and the connection fails if SSL
1168       cannot be negotiated.  Some services, such as POP3 and IMAP, have  dif‐
1169       ferent  well  known  ports defined for the SSL encrypted services.  The
1170       encrypted ports will be selected automatically when SSL is enabled  and
1171       no  explicit  port is specified. The --sslproto 'SSL3' option should be
1172       used to select the SSLv3 protocol (default if unset: v2 or v3).   Also,
1173       the  --sslcertck  command  line  or  sslcertck  run control file option
1174       should be used to force strict certificate checking - see below.
1175
1176       If SSL is not configured, fetchmail will usually opportunistically  try
1177       to  use  STARTTLS. STARTTLS can be enforced by using --sslproto "TLS1".
1178       TLS connections use the same port as the  unencrypted  version  of  the
1179       protocol and negotiate TLS via special command. The --sslcertck command
1180       line or sslcertck run control file  option  should  be  used  to  force
1181       strict certificate checking - see below.
1182
1183       --sslcertck  is recommended: When connecting to an SSL or TLS encrypted
1184       server, the server presents a certificate to the client for validation.
1185       The  certificate  is checked to verify that the common name in the cer‐
1186       tificate matches the name of the server being contacted  and  that  the
1187       effective  and  expiration dates in the certificate indicate that it is
1188       currently valid.  If any of these checks fail,  a  warning  message  is
1189       printed, but the connection continues.  The server certificate does not
1190       need to be signed by any specific Certifying Authority  and  may  be  a
1191       "self-signed"  certificate.  If  the --sslcertck command line option or
1192       sslcertck run control file option is used, fetchmail will instead abort
1193       if  any  of  these  checks fail, because it must assume that there is a
1194       man-in-the-middle attack in this scenario,  hence  fetchmail  must  not
1195       expose  cleartest passwords. Use of the sslcertck or --sslcertck option
1196       is therefore advised.
1197
1198       Some SSL encrypted servers may request a client  side  certificate.   A
1199       client  side  public  SSL certificate and private SSL key may be speci‐
1200       fied.  If requested by the server, the client certificate  is  sent  to
1201       the  server  for  validation.   Some servers may require a valid client
1202       certificate and may refuse connections if a certificate is not provided
1203       or  if  the  certificate is not valid.  Some servers may require client
1204       side certificates be signed by a recognized Certifying Authority.   The
1205       format  for the key files and the certificate files is that required by
1206       the underlying SSL libraries (OpenSSL in the general case).
1207
1208       A word of care about the use of SSL: While above mentioned  setup  with
1209       self-signed  server  certificates  retrieved over the wires can protect
1210       you from a passive eavesdropper, it  doesn't  help  against  an  active
1211       attacker.  It's  clearly  an  improvement over sending the passwords in
1212       clear, but you should be aware that a man-in-the-middle attack is triv‐
1213       ially possible (in particular with tools such as dsniff ⟨http://
1214       monkey.org/~dugsong/dsniff/⟩, ).  Use of  strict  certificate  checking
1215       with a certification authority recognized by server and client, or per‐
1216       haps of an SSH tunnel (see below for some examples)  is  preferable  if
1217       you care seriously about the security of your mailbox and passwords.
1218
1219
1220   ESMTP AUTH
1221       fetchmail  also  supports  authentication  to  the  ESMTP server on the
1222       client side according to RFC 2554.  You  can  specify  a  name/password
1223       pair  to be used with the keywords 'esmtpname' and 'esmtppassword'; the
1224       former defaults to the username of the calling user.
1225
1226

DAEMON MODE

1228   Introducing the daemon mode
1229       In daemon mode, fetchmail puts itself into the background and runs for‐
1230       ever,  querying  each  specified  host  and  then  sleeping for a given
1231       polling interval.
1232
1233   Starting the daemon mode
1234       There are several ways to make fetchmail work in daemon  mode.  On  the
1235       command  line,  --daemon <interval> or -d <interval> option runs fetch‐
1236       mail in daemon mode.  You must specify a numeric argument  which  is  a
1237       polling interval (time to wait after completing a whole poll cycle with
1238       the last server and before starting the next poll cycle with the  first
1239       server) in seconds.
1240
1241       Example: simply invoking
1242
1243              fetchmail -d 900
1244
1245       will,  therefore,  poll  all the hosts described in your ~/.fetchmailrc
1246       file (except those explicitly excluded with the 'skip' verb) a bit less
1247       often  than  once every 15 minutes (exactly: 15 minutes + time that the
1248       poll takes).
1249
1250       It is also possible to set a polling interval  in  your  ~/.fetchmailrc
1251       file  by saying 'set daemon <interval>', where <interval> is an integer
1252       number of seconds.  If you do this, fetchmail will always start in dae‐
1253       mon mode unless you override it with the command-line option --daemon 0
1254       or -d0.
1255
1256       Only one daemon process is permitted per user; in daemon  mode,  fetch‐
1257       mail  sets  up a per-user lockfile to guarantee this.  (You can however
1258       cheat and set the FETCHMAILHOME environment variable to  overcome  this
1259       setting,  but  in that case, it is your responsibility to make sure you
1260       aren't polling the same server with two processes at the same time.)
1261
1262   Awakening the background daemon
1263       Normally, calling fetchmail with a daemon in  the  background  sends  a
1264       wake-up  signal  to the daemon and quits without output. The background
1265       daemon then starts its next poll cycle immediately.  The  wake-up  sig‐
1266       nal, SIGUSR1, can also be sent manually. The wake-up action also clears
1267       any 'wedged' flags indicating  that  connections  have  wedged  due  to
1268       failed authentication or multiple timeouts.
1269
1270   Terminating the background daemon
1271       The  option --quit will kill a running daemon process instead of waking
1272       it up (if there is no such process, fetchmail will notify you).  If the
1273       --quit option appears last on the command line, fetchmail will kill the
1274       running daemon process and then quit. Otherwise, fetchmail  will  first
1275       kill  a running daemon process and then continue running with the other
1276       options.
1277
1278   Useful options for daemon mode
1279       The -L <filename> or --logfile <filename> option (keyword: set logfile)
1280       is  only  effective when fetchmail is detached and in daemon mode. Note
1281       that the logfile must exist before fetchmail is run, you  can  use  the
1282       touch(1) command with the filename as its sole argument to create it.
1283       This  option  allows  you  to redirect status messages into a specified
1284       logfile (follow the option with the  logfile  name).   The  logfile  is
1285       opened  for  append, so previous messages aren't deleted.  This is pri‐
1286       marily useful for debugging configurations. Note  that  fetchmail  does
1287       not  detect  if the logfile is rotated, the logfile is only opened once
1288       when fetchmail starts. You need to restart fetchmail after rotating the
1289       logfile and before compressing it (if applicable).
1290
1291       The --syslog option (keyword: set syslog) allows you to redirect status
1292       and error messages emitted to the syslog(3) system daemon if available.
1293       Messages are logged with an id of fetchmail, the facility LOG_MAIL, and
1294       priorities LOG_ERR, LOG_ALERT or LOG_INFO.  This option is intended for
1295       logging status and error messages which indicate the status of the dae‐
1296       mon and the results while fetching mail from the server(s).  Error mes‐
1297       sages  for  command  line options and parsing the .fetchmailrc file are
1298       still written to stderr, or to the specified log file.  The  --nosyslog
1299       option  turns  off  use  of  syslog(3),  assuming it's turned on in the
1300       ~/.fetchmailrc file.
1301
1302       The -N or --nodetach option suppresses backgrounding and detachment  of
1303       the  daemon  process  from  its  control  terminal.  This is useful for
1304       debugging or when fetchmail runs as the child of a  supervisor  process
1305       such  as init(8) or Gerrit Pape's runit(8).  Note that this also causes
1306       the logfile option to be ignored (though perhaps it shouldn't).
1307
1308       Note that while running in daemon  mode  polling  a  POP2  or  IMAP2bis
1309       server,  transient  errors  (such  as DNS failures or sendmail delivery
1310       refusals) may force the fetchall option on for the duration of the next
1311       polling  cycle.  This is a robustness feature.  It means that if a mes‐
1312       sage is fetched (and thus marked seen by the mailserver) but not deliv‐
1313       ered  locally due to some transient error, it will be re-fetched during
1314       the next poll cycle.  (The IMAP logic  doesn't  delete  messages  until
1315       they're delivered, so this problem does not arise.)
1316
1317       If  you touch or change the ~/.fetchmailrc file while fetchmail is run‐
1318       ning in daemon mode, this will be detected at the beginning of the next
1319       poll  cycle.   When  a  changed  ~/.fetchmailrc  is detected, fetchmail
1320       rereads it and restarts from scratch (using exec(2); no state  informa‐
1321       tion is retained in the new instance).  Note that if fetchmail needs to
1322       query for passwords, of that if you  break  the  ~/.fetchmailrc  file's
1323       syntax,  the  new  instance  will  softly  and  silently vanish away on
1324       startup.
1325
1326

ADMINISTRATIVE OPTIONS

1328       The --postmaster <name> option (keyword: set postmaster) specifies  the
1329       last-resort  username  to which multidrop mail is to be forwarded if no
1330       matching local recipient can be found. It is also used  as  destination
1331       of  undeliverable  mail  if  the  'bouncemail' global option is off and
1332       additionally for spam-blocked mail if the 'bouncemail' global option is
1333       off  and  the 'spambounce' global option is on. This option defaults to
1334       the user who invoked fetchmail.  If the invoking user is root, then the
1335       default of this option is the user 'postmaster'.  Setting postmaster to
1336       the empty string causes such mail as described above to be discarded  -
1337       this  however  is  usually a bad idea.  See also the description of the
1338       'FETCHMAILUSER' environment variable in the ENVIRONMENT section below.
1339
1340       The --nobounce behaves like the  "set  no  bouncemail"  global  option,
1341       which see.
1342
1343       The --invisible option (keyword: set invisible) tries to make fetchmail
1344       invisible.  Normally, fetchmail behaves like any other MTA would --  it
1345       generates  a  Received header into each message describing its place in
1346       the chain of transmission, and tells the MTA it forwards  to  that  the
1347       mail  came  from  the  machine  fetchmail itself is running on.  If the
1348       invisible option is on, the Received header is suppressed and fetchmail
1349       tries  to  spoof  the MTA it forwards to into thinking it came directly
1350       from the mailserver host.
1351
1352       The --showdots option (keyword: set showdots) forces fetchmail to  show
1353       progress  dots even if the output goes to a file or fetchmail is not in
1354       verbose mode.  Fetchmail shows the dots by default when run  in  --ver‐
1355       bose  mode  and  output  goes  to  console.  This  option is ignored in
1356       --silent mode.
1357
1358       By specifying the --tracepolls option, you can  ask  fetchmail  to  add
1359       information to the Received header on the form "polling {label} account
1360       {user}", where {label} is the account label (from the specified rcfile,
1361       normally  ~/.fetchmailrc)  and  {user} is the username which is used to
1362       log on to the mail server. This header can be used  to  make  filtering
1363       email where no useful header information is available and you want mail
1364       from different accounts sorted into different  mailboxes  (this  could,
1365       for  example, occur if you have an account on the same server running a
1366       mailing list, and are subscribed to the list using that  account).  The
1367       default is not adding any such header.  In .fetchmailrc, this is called
1368       'tracepolls'.
1369
1370

RETRIEVAL FAILURE MODES

1372       The protocols fetchmail uses to talk to mailservers are next to bullet‐
1373       proof.   In  normal operation forwarding to port 25, no message is ever
1374       deleted (or even marked for deletion) on the host until the  SMTP  lis‐
1375       tener on the client side has acknowledged to fetchmail that the message
1376       has been either accepted for delivery or rejected due to a spam block.
1377
1378       When forwarding to an MDA, however, there is more possibility of error.
1379       Some MDAs are 'safe' and reliably return a nonzero status on any deliv‐
1380       ery error, even one due to temporary resource limits.  The  maildrop(1)
1381       program  is  like this; so are most programs designed as mail transport
1382       agents, such as sendmail(1), including the sendmail wrapper of  Postfix
1383       and exim(1).  These programs give back a reliable positive acknowledge‐
1384       ment and can be used with the mda option with no  risk  of  mail  loss.
1385       Unsafe  MDAs,  though,  may return 0 even on delivery failure.  If this
1386       happens, you will lose mail.
1387
1388       The normal mode of fetchmail is to try to download only 'new' messages,
1389       leaving  untouched  (and  undeleted)  messages  you  have  already read
1390       directly on the server (or fetched with a previous  fetchmail  --keep).
1391       But  you  may  find that messages you've already read on the server are
1392       being fetched (and deleted) even when you don't specify  --all.   There
1393       are several reasons this can happen.
1394
1395       One  could  be  that  you're using POP2.  The POP2 protocol includes no
1396       representation of 'new' or 'old' state in messages, so  fetchmail  must
1397       treat  all messages as new all the time.  But POP2 is obsolete, so this
1398       is unlikely.
1399
1400       A potential POP3 problem might be servers that insert messages  in  the
1401       middle of mailboxes (some VMS implementations of mail are rumored to do
1402       this).  The fetchmail code assumes that new messages  are  appended  to
1403       the  end  of  the  mailbox; when this is not true it may treat some old
1404       messages as new and vice versa.  Using UIDL whilst setting  fastuidl  0
1405       might fix this, otherwise, consider switching to IMAP.
1406
1407       Yet  another  POP3  problem is that if they can't make tempfiles in the
1408       user's home directory, some POP3 servers will hand back an undocumented
1409       response that causes fetchmail to spuriously report "No mail".
1410
1411       The  IMAP code uses the presence or absence of the server flag \Seen to
1412       decide whether or not a message is new.  This isn't the right thing  to
1413       do,  fetchmail should check the UIDVALIDITY and use UID, but it doesn't
1414       do that yet. Under Unix, it counts on your IMAP server  to  notice  the
1415       BSD-style  Status  flags set by mail user agents and set the \Seen flag
1416       from them when appropriate.  All Unix IMAP servers we know of do  this,
1417       though  it's  not  specified by the IMAP RFCs.  If you ever trip over a
1418       server that doesn't, the symptom will be that messages you have already
1419       read  on  your  host  will  look new to the server.  In this (unlikely)
1420       case, only messages you fetched with  fetchmail  --keep  will  be  both
1421       undeleted and marked old.
1422
1423       In  ETRN and ODMR modes, fetchmail does not actually retrieve messages;
1424       instead, it asks the server's SMTP listener to start a queue  flush  to
1425       the client via SMTP.  Therefore it sends only undelivered messages.
1426
1427

SPAM FILTERING

1429       Many  SMTP listeners allow administrators to set up 'spam filters' that
1430       block unsolicited email from specified domains.  A MAIL  FROM  or  DATA
1431       line  that  triggers  this  feature  will elicit an SMTP response which
1432       (unfortunately) varies according to the listener.
1433
1434       Newer versions of sendmail return an error code of 571.
1435
1436       According to RFC2821, the correct thing to return in this situation  is
1437       550  "Requested  action not taken: mailbox unavailable" (the draft adds
1438       "[E.g., mailbox not found, no access, or command  rejected  for  policy
1439       reasons].").
1440
1441       Older  versions  of the exim MTA return 501 "Syntax error in parameters
1442       or arguments".
1443
1444       The postfix MTA runs 554 as an antispam response.
1445
1446       Zmailer may reject code with a 500 response (followed  by  an  enhanced
1447       status code that contains more information).
1448
1449       Return  codes which fetchmail treats as antispam responses and discards
1450       the message can be set with the 'antispam' option.  This is one of  the
1451       only  three  circumstance under which fetchmail ever discards mail (the
1452       others are the 552 and 553 errors described below, and the  suppression
1453       of multidropped messages with a message-ID already seen).
1454
1455       If  fetchmail  is  fetching  from an IMAP server, the antispam response
1456       will be detected and the message rejected immediately after the headers
1457       have  been  fetched, without reading the message body.  Thus, you won't
1458       pay for downloading spam message bodies.
1459
1460       By default, the list of antispam responses is empty.
1461
1462       If the spambounce global option is on, mail that is spam-blocked  trig‐
1463       gers an RFC1892/RFC1894 bounce message informing the originator that we
1464       do not accept mail from it. See also BUGS.
1465
1466

SMTP/ESMTP ERROR HANDLING

1468       Besides the spam-blocking  described  above,  fetchmail  takes  special
1469       actions on the following SMTP/ESMTP error responses
1470
1471       452 (insufficient system storage)
1472            Leave the message in the server mailbox for later retrieval.
1473
1474       552 (message exceeds fixed maximum message size)
1475            Delete the message from the server.  Send bounce-mail to the orig‐
1476            inator.
1477
1478       553 (invalid sending domain)
1479            Delete the message from  the  server.   Don't  even  try  to  send
1480            bounce-mail to the originator.
1481
1482       Other errors trigger bounce mail back to the originator. See also BUGS.
1483
1484

THE RUN CONTROL FILE

1486       The  preferred  way to set up fetchmail is to write a .fetchmailrc file
1487       in your home directory (you may do this directly, with a  text  editor,
1488       or indirectly via fetchmailconf).  When there is a conflict between the
1489       command-line arguments and the arguments in this file, the command-line
1490       arguments take precedence.
1491
1492       To  protect the security of your passwords, your ~/.fetchmailrc may not
1493       normally have more than 0700 (u=rwx,g=,o=) permissions; fetchmail  will
1494       complain and exit otherwise (this check is suppressed when --version is
1495       on).
1496
1497       You may read the .fetchmailrc file as a list of commands to be executed
1498       when fetchmail is called with no arguments.
1499
1500   Run Control Syntax
1501       Comments begin with a '#' and extend through the end of the line.  Oth‐
1502       erwise the file consists of a series of server entries or global option
1503       statements in a free-format, token-oriented syntax.
1504
1505       There are four kinds of tokens: grammar keywords, numbers (i.e. decimal
1506       digit sequences), unquoted  strings,  and  quoted  strings.   A  quoted
1507       string  is  bounded  by  double  quotes and may contain whitespace (and
1508       quoted digits are treated as a string).  Note that quoted strings  will
1509       also contain line feed characters if they run across two or more lines,
1510       unless you use a backslash to join  lines  (see  below).   An  unquoted
1511       string  is  any  whitespace-delimited  token  that  is neither numeric,
1512       string quoted nor contains the special characters  ',',  ';',  ':',  or
1513       '='.
1514
1515       Any  amount  of  whitespace  separates tokens in server entries, but is
1516       otherwise ignored. You may use backslash escape sequences (\n  for  LF,
1517       \t  for  HT,  \b  for BS, \r for CR, \nnn for decimal (where nnn cannot
1518       start with a 0), \0ooo for octal, and \xhh for hex) to embed non-print‐
1519       able  characters or string delimiters in strings.  In quoted strings, a
1520       backslash at the very end of a line will cause the backslash itself and
1521       the line feed (LF or NL, new line) character to be ignored, so that you
1522       can wrap long strings. Without the backslash at the line end, the  line
1523       feed character would become part of the string.
1524
1525       Warning:  while  these  resemble C-style escape sequences, they are not
1526       the same.  fetchmail only supports these eight styles. C supports  more
1527       escape  sequences that consist of backslash (\) and a single character,
1528       but does not support decimal codes and does not require the  leading  0
1529       in octal notation.  Example: fetchmail interprets \233 the same as \xE9
1530       (Latin small letter e with acute), where  C  would  interpret  \233  as
1531       octal 0233 = \x9B (CSI, control sequence introducer).
1532
1533       Each  server  entry  consists  of one of the keywords 'poll' or 'skip',
1534       followed by a server name, followed by server options, followed by  any
1535       number  of  user  (or username) descriptions, followed by user options.
1536       Note: the most common cause of syntax errors  is  mixing  up  user  and
1537       server options or putting user options before the user descriptions.
1538
1539       For backward compatibility, the word 'server' is a synonym for 'poll'.
1540
1541       You  can  use  the  noise  keywords  'and', 'with', 'has', 'wants', and
1542       'options' anywhere in an entry to make it  resemble  English.   They're
1543       ignored, but but can make entries much easier to read at a glance.  The
1544       punctuation characters ':', ';' and ',' are also ignored.
1545
1546   Poll vs. Skip
1547       The 'poll' verb tells fetchmail to query this host when it is run  with
1548       no  arguments.   The  'skip' verb tells fetchmail not to poll this host
1549       unless it is explicitly named on the command line.   (The  'skip'  verb
1550       allows  you  to  experiment with test entries safely, or easily disable
1551       entries for hosts that are temporarily down.)
1552
1553   Keyword/Option Summary
1554       Here are the legal options.  Keyword suffixes enclosed in square brack‐
1555       ets  are  optional.   Those corresponding to short command-line options
1556       are followed by '-' and the appropriate option letter.   If  option  is
1557       only  relevant to a single mode of operation, it is noted as 's' or 'm'
1558       for singledrop- or multidrop-mode, respectively.
1559
1560       Here are the legal global options:
1561
1562
1563       Keyword             Opt   Mode   Function
1564       ────────────────────────────────────────────────────────────────────
1565       set daemon          -d           Set a background poll interval  in
1566                                        seconds.
1567       set postmaster                   Give  the  name of the last-resort
1568                                        mail recipient (default: user run‐
1569                                        ning  fetchmail,  "postmaster"  if
1570                                        run by the root user)
1571       set    bouncemail                Direct error mail  to  the  sender
1572                                        (default)
1573       set no bouncemail                Direct  error  mail  to  the local
1574                                        postmaster (as per  the  'postmas‐
1575                                        ter' global option above).
1576       set no spambounce                Do  not  bounce  spam-blocked mail
1577                                        (default).
1578       set    spambounce                Bounce blocked  spam-blocked  mail
1579                                        (as   per   the   'antispam'  user
1580                                        option) back to the destination as
1581                                        indicated   by   the  'bouncemail'
1582                                        global option.   Warning:  Do  not
1583                                        use  this  to  bounce spam back to
1584                                        the sender -  most  spam  is  sent
1585                                        with false sender address and thus
1586                                        this   option    hurts    innocent
1587                                        bystanders.
1588       set no softbounce                Delete  permanently  undeliverable
1589                                        mail. It  is  recommended  to  use
1590                                        this  option  if the configuration
1591                                        has been thoroughly tested.
1592       set    softbounce                Keep   permanently   undeliverable
1593                                        mail  as  though a temporary error
1594                                        had occurred (default).
1595       set logfile         -L           Name of a file to append error and
1596                                        status messages to.
1597       set idfile          -i           Name  of  the  file  to  store UID
1598                                        lists in.
1599       set    syslog                    Do  error  logging  through   sys‐
1600                                        log(3).
1601       set no syslog                    Turn  off  error  logging  through
1602                                        syslog(3). (default)
1603       set properties                   String value that  is  ignored  by
1604                                        fetchmail  (may  be used by exten‐
1605                                        sion scripts).
1606
1607       Here are the legal server options:
1608
1609
1610       Keyword          Opt   Mode   Function
1611       ─────────────────────────────────────────────────────────────────
1612       via                           Specify DNS  name  of  mailserver,
1613                                     overriding poll name
1614       proto[col]       -p           Specify  protocol  (case  insensi‐
1615                                     tive):  POP2,  POP3,  IMAP,  APOP,
1616                                     KPOP
1617       local[domains]         m      Specify  domain(s)  to be regarded
1618                                     as local
1619       port                          Specify TCP/IP service port (obso‐
1620                                     lete, use 'service' instead).
1621
1622       service          -P           Specify  service  name  (a numeric
1623                                     value is also allowed and  consid‐
1624                                     ered a TCP/IP port number).
1625       auth[enticate]                Set  authentication  type (default
1626                                     'any')
1627       timeout          -t           Server inactivity timeout in  sec‐
1628                                     onds (default 300)
1629       envelope         -E    m      Specify   envelope-address  header
1630                                     name
1631       no envelope            m      Disable   looking   for   envelope
1632                                     address
1633       qvirtual         -Q    m      Qmail  virtual  domain  prefix  to
1634                                     remove from user name
1635       aka                    m      Specify  alternate  DNS  names  of
1636                                     mailserver
1637       interface        -I           specify  IP interface(s) that must
1638                                     be up  for  server  poll  to  take
1639                                     place
1640       monitor          -M           Specify  IP address to monitor for
1641                                     activity
1642       plugin                        Specify command through  which  to
1643                                     make server connections.
1644       plugout                       Specify  command  through which to
1645                                     make listener connections.
1646       dns                    m      Enable DNS  lookup  for  multidrop
1647                                     (default)
1648       no dns                 m      Disable DNS lookup for multidrop
1649       checkalias             m      Do  comparison  by  IP address for
1650                                     multidrop
1651       no checkalias          m      Do comparison  by  name  for  mul‐
1652                                     tidrop (default)
1653       uidl             -U           Force   POP3  to  use  client-side
1654                                     UIDLs (recommended)
1655       no uidl                       Turn off POP3 use  of  client-side
1656                                     UIDLs (default)
1657       interval                      Only  check this site every N poll
1658                                     cycles; N is a numeric argument.
1659       tracepolls                    Add poll  tracing  information  to
1660                                     the Received header
1661       principal                     Set  Kerberos principal (only use‐
1662                                     ful with IMAP and kerberos)
1663       esmtpname                     Set name for  RFC2554  authentica‐
1664                                     tion to the ESMTP server.
1665       esmtppassword                 Set password for RFC2554 authenti‐
1666                                     cation to the ESMTP server.
1667       bad-header                    How to treat messages with  a  bad
1668                                     header. Can be reject (default) or
1669                                     accept.
1670
1671       Here are the legal user descriptions and options:
1672
1673
1674       Keyword            Opt   Mode   Function
1675       ───────────────────────────────────────────────────────────────────
1676       user[name]         -u           This is the user  description  and
1677                                       must   come   first  after  server
1678                                       description  and  after   possible
1679                                       server  options,  and  before user
1680                                       options.
1681                                       It sets the remote user name if by
1682                                       itself  or followed by 'there', or
1683                                       the local user name if followed by
1684                                       'here'.
1685       is                              Connect   local  and  remote  user
1686                                       names
1687       to                              Connect  local  and  remote   user
1688                                       names
1689       pass[word]                      Specify remote account password
1690       ssl                             Connect  to server over the speci‐
1691                                       fied  base  protocol   using   SSL
1692                                       encryption
1693       sslcert                         Specify  file for client side pub‐
1694                                       lic SSL certificate
1695       sslcertfile                     Specify file with trusted CA  cer‐
1696                                       tificates
1697
1698       sslcertpath                     Specify c_rehash-ed directory with
1699                                       trusted CA certificates.
1700       sslkey                          Specify file for client side  pri‐
1701                                       vate SSL key
1702       sslproto                        Force ssl protocol for connection
1703       folder             -r           Specify remote folder to query
1704       smtphost           -S           Specify smtp host(s) to forward to
1705       fetchdomains             m      Specify  domains  for  which  mail
1706                                       should be fetched
1707       smtpaddress        -D           Specify the domain to  be  put  in
1708                                       RCPT TO lines
1709       smtpname                        Specify  the user and domain to be
1710                                       put in RCPT TO lines
1711       antispam           -Z           Specify  what  SMTP  returns   are
1712                                       interpreted as spam-policy blocks
1713       mda                -m           Specify MDA for local delivery
1714       bsmtp              -o           Specify BSMTP batch file to append
1715                                       to
1716       preconnect                      Command to be executed before each
1717                                       connection
1718       postconnect                     Command  to be executed after each
1719                                       connection
1720       keep               -k           Don't delete  seen  messages  from
1721                                       server  (for  POP3, uidl is recom‐
1722                                       mended)
1723       flush              -F           Flush  all  seen  messages  before
1724                                       querying (DANGEROUS)
1725       limitflush                      Flush   all   oversized   messages
1726                                       before querying
1727       fetchall           -a           Fetch all messages whether seen or
1728                                       not
1729       rewrite                         Rewrite  destination addresses for
1730                                       reply (default)
1731       stripcr                         Strip carriage returns  from  ends
1732                                       of lines
1733       forcecr                         Force  carriage returns at ends of
1734                                       lines
1735       pass8bits                       Force BODY=8BITMIME to ESMTP  lis‐
1736                                       tener
1737       dropstatus                      Strip  Status and X-Mozilla-Status
1738                                       lines out of incoming mail
1739       dropdelivered                   Strip Delivered-To  lines  out  of
1740                                       incoming mail
1741       mimedecode                      Convert  quoted-printable to 8-bit
1742                                       in MIME messages
1743       idle                            Idle  waiting  for  new   messages
1744                                       after each poll (IMAP only)
1745       no keep            -K           Delete  seen  messages from server
1746                                       (default)
1747       no flush                        Don't  flush  all  seen   messages
1748                                       before querying (default)
1749       no fetchall                     Retrieve    only    new   messages
1750                                       (default)
1751       no rewrite                      Don't rewrite headers
1752       no stripcr                      Don't   strip   carriage   returns
1753                                       (default)
1754       no forcecr                      Don't  force  carriage  returns at
1755                                       EOL (default)
1756       no pass8bits                    Don't force BODY=8BITMIME to ESMTP
1757                                       listener (default)
1758       no dropstatus                   Don't    drop    Status    headers
1759                                       (default)
1760       no dropdelivered                Don't  drop  Delivered-To  headers
1761                                       (default)
1762       no mimedecode                   Don't  convert quoted-printable to
1763                                       8-bit in MIME messages (default)
1764       no idle                         Don't idle waiting  for  new  mes‐
1765                                       sages after each poll (IMAP only)
1766       limit              -l           Set message size limit
1767       warnings           -w           Set message size warning interval
1768       batchlimit         -b           Max  # messages to forward in sin‐
1769                                       gle connect
1770       fetchlimit         -B           Max # messages to fetch in  single
1771                                       connect
1772
1773
1774       fetchsizelimit                  Max  #  message  sizes to fetch in
1775                                       single transaction
1776       fastuidl                        Use binary search for first unseen
1777                                       message (POP3 only)
1778       expunge            -e           Perform  an  expunge  on every #th
1779                                       message (IMAP and POP3 only)
1780       properties                      String value is ignored by  fetch‐
1781                                       mail  (may  be  used  by extension
1782                                       scripts)
1783
1784       All user options must begin with a user description (user  or  username
1785       option) and follow all server descriptions and options.
1786
1787       In  the  .fetchmailrc  file, the 'envelope' string argument may be pre‐
1788       ceded by a whitespace-separated number.  This number, if specified,  is
1789       the  number  of  such  headers  to skip over (that is, an argument of 1
1790       selects the second header of the given type).  This is sometime  useful
1791       for  ignoring bogus envelope headers created by an ISP's local delivery
1792       agent or  internal  forwards  (through  mail  inspection  systems,  for
1793       instance).
1794
1795   Keywords Not Corresponding To Option Switches
1796       The  'folder' and 'smtphost' options (unlike their command-line equiva‐
1797       lents) can take a space- or comma-separated  list  of  names  following
1798       them.
1799
1800       All  options  correspond  to the obvious command-line arguments, except
1801       the following: 'via', 'interval', 'aka', 'is',  'to',  'dns'/'no  dns',
1802       'checkalias'/'no  checkalias', 'password', 'preconnect', 'postconnect',
1803       'localdomains',   'stripcr'/'no   stripcr',   'forcecr'/'no   forcecr',
1804       'pass8bits'/'no   pass8bits'  'dropstatus/no  dropstatus',  'dropdeliv‐
1805       ered/no dropdelivered', 'mimedecode/no mimedecode', 'no idle', and  'no
1806       envelope'.
1807
1808       The 'via' option is for if you want to have more than one configuration
1809       pointing at the same site.  If it is present, the string argument  will
1810       be  taken as the actual DNS name of the mailserver host to query.  This
1811       will override the argument of poll, which can then simply be a distinct
1812       label  for  the  configuration (e.g. what you would give on the command
1813       line to explicitly query this host).
1814
1815       The 'interval' option (which takes a numeric argument)  allows  you  to
1816       poll a server less frequently than the basic poll interval.  If you say
1817       'interval N' the server this option is attached to will only be queried
1818       every N poll intervals.
1819
1820   Singledrop vs. Multidrop options
1821       Please  ensure  you  read  the section titled THE USE AND ABUSE OF MUL‐
1822       TIDROP MAILBOXES if you intend to use multidrop mode.
1823
1824       The 'is' or  'to'  keywords  associate  the  following  local  (client)
1825       name(s)  (or  server-name  to client-name mappings separated by =) with
1826       the mailserver user name in the entry.  If an is/to list has '*' as its
1827       last  name,  unrecognized  names  are  simply passed through. Note that
1828       until fetchmail version 6.3.4 inclusively, these lists could only  con‐
1829       tain  local  parts of user names (fetchmail would only look at the part
1830       before the @ sign). fetchmail versions 6.3.5  and  newer  support  full
1831       addresses on the left hand side of these mappings, and they take prece‐
1832       dence over any 'localdomains', 'aka', 'via' or similar mappings.
1833
1834       A single local name can be used to support redirecting your  mail  when
1835       your  username on the client machine is different from your name on the
1836       mailserver.  When there is only a single local name, mail is  forwarded
1837       to  that  local  username regardless of the message's Received, To, Cc,
1838       and Bcc headers.  In this case, fetchmail never does DNS lookups.
1839
1840       When there is more than one local name  (or  name  mapping),  fetchmail
1841       looks  at  the  envelope  header,  if  configured, and otherwise at the
1842       Received, To, Cc, and Bcc headers of retrieved mail (this is 'multidrop
1843       mode').   It  looks  for  addresses with hostname parts that match your
1844       poll name or your 'via', 'aka' or 'localdomains' options,  and  usually
1845       also  for  hostname  parts  which  DNS  tells  it  are  aliases  of the
1846       mailserver.  See the discussion of 'dns', 'checkalias', 'localdomains',
1847       and 'aka' for details on how matching addresses are handled.
1848
1849       If  fetchmail  cannot  match  any  mailserver  usernames or localdomain
1850       addresses, the mail will be bounced.  Normally it will  be  bounced  to
1851       the sender, but if the 'bouncemail' global option is off, the mail will
1852       go to the local  postmaster  instead.   (see  the  'postmaster'  global
1853       option). See also BUGS.
1854
1855       The  'dns'  option  (normally  on) controls the way addresses from mul‐
1856       tidrop mailboxes are checked.  On, it enables logic to check each  host
1857       address  that  does not match an 'aka' or 'localdomains' declaration by
1858       looking it up with DNS.   When  a  mailserver  username  is  recognized
1859       attached to a matching hostname part, its local mapping is added to the
1860       list of local recipients.
1861
1862       The 'checkalias' option (normally off) extends the lookups performed by
1863       the  'dns'  keyword  in  multidrop  mode,  providing a way to cope with
1864       remote MTAs that identify themselves using their canonical name,  while
1865       they're polled using an alias.  When such a server is polled, checks to
1866       extract the envelope address fail, and fetchmail  reverts  to  delivery
1867       using   the   To/Cc/Bcc   headers   (See  below  'Header  vs.  Envelope
1868       addresses').  Specifying this option instructs  fetchmail  to  retrieve
1869       all  the  IP  addresses associated with both the poll name and the name
1870       used by the remote MTA and to do a  comparison  of  the  IP  addresses.
1871       This  comes  in  handy  in situations where the remote server undergoes
1872       frequent canonical name changes, that would otherwise require modifica‐
1873       tions  to the rcfile.  'checkalias' has no effect if 'no dns' is speci‐
1874       fied in the rcfile.
1875
1876       The 'aka' option is for use with multidrop mailboxes.  It allows you to
1877       pre-declare  a  list of DNS aliases for a server.  This is an optimiza‐
1878       tion hack that allows you to trade space for  speed.   When  fetchmail,
1879       while  processing  a multidrop mailbox, grovels through message headers
1880       looking for names of the mailserver, pre-declaring common ones can save
1881       it  from  having  to do DNS lookups.  Note: the names you give as argu‐
1882       ments to 'aka' are matched as suffixes -- if  you  specify  (say)  'aka
1883       netaxs.com',  this  will  match not just a hostname netaxs.com, but any
1884       hostname that ends with '.netaxs.com'; such  as  (say)  pop3.netaxs.com
1885       and mail.netaxs.com.
1886
1887       The 'localdomains' option allows you to declare a list of domains which
1888       fetchmail should consider local.  When  fetchmail  is  parsing  address
1889       lines in multidrop modes, and a trailing segment of a host name matches
1890       a declared local domain, that address is passed through to the listener
1891       or MDA unaltered (local-name mappings are not applied).
1892
1893       If you are using 'localdomains', you may also need to specify 'no enve‐
1894       lope', which disables fetchmail's normal attempt to deduce an  envelope
1895       address  from  the  Received  line  or X-Envelope-To header or whatever
1896       header has been previously set by 'envelope'.  If you set 'no envelope'
1897       in the defaults entry it is possible to undo that in individual entries
1898       by using 'envelope <string>'.  As a special case, 'envelope "Received"'
1899       restores the default parsing of Received lines.
1900
1901       The  password  option requires a string argument, which is the password
1902       to be used with the entry's server.
1903
1904       The 'preconnect' keyword allows you to specify a shell  command  to  be
1905       executed  just before each time fetchmail establishes a mailserver con‐
1906       nection.  This may be useful if you are attempting to set up secure POP
1907       connections  with  the aid of ssh(1).  If the command returns a nonzero
1908       status, the poll of that mailserver will be aborted.
1909
1910       Similarly, the 'postconnect' keyword similarly allows you to specify  a
1911       shell  command to be executed just after each time a mailserver connec‐
1912       tion is taken down.
1913
1914       The 'forcecr' option controls whether lines terminated by LF  only  are
1915       given  CRLF  termination  before  forwarding.  Strictly speaking RFC821
1916       requires this, but few MTAs enforce the requirement it so  this  option
1917       is  normally  off  (only  one such MTA, qmail, is in significant use at
1918       time of writing).
1919
1920       The 'stripcr' option controls whether carriage returns are stripped out
1921       of retrieved mail before it is forwarded.  It is normally not necessary
1922       to set this, because it defaults to 'on' (CR  stripping  enabled)  when
1923       there  is  an  MDA declared but 'off' (CR stripping disabled) when for‐
1924       warding is via SMTP.  If 'stripcr' and 'forcecr' are both on, 'stripcr'
1925       will override.
1926
1927       The 'pass8bits' option exists to cope with Microsoft mail programs that
1928       stupidly slap a "Content-Transfer-Encoding: 7bit" on everything.   With
1929       this  option  off  (the  default)  and such a header present, fetchmail
1930       declares BODY=7BIT to an ESMTP-capable listener; this  causes  problems
1931       for  messages  actually  using 8-bit ISO or KOI-8 character sets, which
1932       will be garbled by having the high bits of all characters stripped.  If
1933       'pass8bits'  is on, fetchmail is forced to declare BODY=8BITMIME to any
1934       ESMTP-capable listener.  If the listener is  8-bit-clean  (as  all  the
1935       major ones now are) the right thing will probably result.
1936
1937       The 'dropstatus' option controls whether nonempty Status and X-Mozilla-
1938       Status lines are retained in fetched mail (the default)  or  discarded.
1939       Retaining  them  allows  your  MUA  to  see what messages (if any) were
1940       marked seen on the server.  On the other hand, it can confuse some new-
1941       mail notifiers, which assume that anything with a Status line in it has
1942       been seen.  (Note: the empty Status lines inserted by  some  buggy  POP
1943       servers are unconditionally discarded.)
1944
1945       The  'dropdelivered'  option controls whether Delivered-To headers will
1946       be kept in fetched mail (the default) or discarded. These  headers  are
1947       added by Qmail and Postfix mailservers in order to avoid mail loops but
1948       may get in your way if you try to "mirror" a mailserver within the same
1949       domain. Use with caution.
1950
1951       The  'mimedecode'  option  controls  whether  MIME  messages  using the
1952       quoted-printable encoding are automatically converted into  pure  8-bit
1953       data.  If you are delivering mail to an ESMTP-capable, 8-bit-clean lis‐
1954       tener (that includes all of the major MTAs like  sendmail),  then  this
1955       will  automatically  convert  quoted-printable message headers and data
1956       into 8-bit data, making it easier to understand when reading  mail.  If
1957       your  e-mail  programs  know  how to deal with MIME messages, then this
1958       option is not needed.  The mimedecode option is off by default, because
1959       doing  RFC2047 conversion on headers throws away character-set informa‐
1960       tion and can lead to bad results if the encoding of the headers differs
1961       from the body encoding.
1962
1963       The  'idle'  option is intended to be used with IMAP servers supporting
1964       the RFC2177 IDLE command extension, but does not strictly  require  it.
1965       If it is enabled, and fetchmail detects that IDLE is supported, an IDLE
1966       will be issued at the end of each poll.  This will tell the IMAP server
1967       to  hold  the  connection  open  and notify the client when new mail is
1968       available.  If IDLE is not supported, fetchmail  will  simulate  it  by
1969       periodically  issuing NOOP. If you need to poll a link frequently, IDLE
1970       can save bandwidth by  eliminating  TCP/IP  connects  and  LOGIN/LOGOUT
1971       sequences. On the other hand, an IDLE connection will eat almost all of
1972       your fetchmail's time, because it will never drop  the  connection  and
1973       allow  other  polls  to occur unless the server times out the IDLE.  It
1974       also doesn't work with multiple folders; only  the  first  folder  will
1975       ever be polled.
1976
1977
1978       The  'properties'  option is an extension mechanism.  It takes a string
1979       argument, which is ignored by fetchmail itself.   The  string  argument
1980       may  be  used  to  store  configuration  information  for scripts which
1981       require it.  In particular, the output of  '--configdump'  option  will
1982       make  properties  associated  with  a user entry readily available to a
1983       Python script.
1984
1985   Miscellaneous Run Control Options
1986       The words 'here' and 'there'  have  useful  English-like  significance.
1987       Normally  'user  eric  is esr' would mean that mail for the remote user
1988       'eric' is to be delivered to 'esr', but you can make  this  clearer  by
1989       saying 'user eric there is esr here', or reverse it by saying 'user esr
1990       here is eric there'
1991
1992       Legal protocol identifiers for use with the 'protocol' keyword are:
1993
1994           auto (or AUTO) (legacy, to be removed from future release)
1995           pop2 (or POP2) (legacy, to be removed from future release)
1996           pop3 (or POP3)
1997           sdps (or SDPS)
1998           imap (or IMAP)
1999           apop (or APOP)
2000           kpop (or KPOP)
2001
2002
2003       Legal authentication types are  'any',  'password',  'kerberos',  'ker‐
2004       beros_v4',  'kerberos_v5'  and 'gssapi', 'cram-md5', 'otp', 'msn' (only
2005       for POP3), 'ntlm', 'ssh', 'external' (only IMAP).  The 'password'  type
2006       specifies  authentication  by  normal  transmission  of a password (the
2007       password may be plain text or subject to  protocol-specific  encryption
2008       as  in  CRAM-MD5);  'kerberos' tells fetchmail to try to get a Kerberos
2009       ticket at the start of each query instead, and send an arbitrary string
2010       as the password; and 'gssapi' tells fetchmail to use GSSAPI authentica‐
2011       tion.  See the description of the 'auth' keyword for more.
2012
2013       Specifying 'kpop' sets POP3 protocol over port 1109  with  Kerberos  V4
2014       authentication.  These defaults may be overridden by later options.
2015
2016       There  are  some  global option statements: 'set logfile' followed by a
2017       string sets the same global specified  by  --logfile.   A  command-line
2018       --logfile option will override this. Note that --logfile is only effec‐
2019       tive if fetchmail detaches itself from the  terminal  and  the  logfile
2020       already  exists  before  fetchmail is run, and it overrides --syslog in
2021       this case.  Also, 'set daemon' sets the poll interval as --daemon does.
2022       This can be overridden by a command-line --daemon option; in particular
2023       --daemon 0 can be used to force foreground operation. The 'set postmas‐
2024       ter'  statement  sets  the  address to which multidrop mail defaults if
2025       there are no local matches.  Finally, 'set syslog' sends  log  messages
2026       to syslogd(8).
2027
2028

DEBUGGING FETCHMAIL

2030   Fetchmail crashing
2031       There are various ways in that fetchmail may "crash", i. e. stop opera‐
2032       tion suddenly and unexpectedly. A "crash" usually refers  to  an  error
2033       condition  that  the  software  did  not handle by itself. A well-known
2034       failure mode is the "segmentation fault" or "signal 11" or "SIGSEGV" or
2035       just  "segfault" for short. These can be caused by hardware or by soft‐
2036       ware problems. Software-induced segfaults  can  usually  be  reproduced
2037       easily and in the same place, whereas hardware-induced segfaults can go
2038       away if the computer is rebooted, or powered off for a few  hours,  and
2039       can  happen  in  random locations even if you use the software the same
2040       way.
2041
2042       For solving hardware-induced segfaults, find the faulty  component  and
2043       repair  or  replace it.  The Sig11 FAQ ⟨http://www.bitwizard.nl/sig11/
2044       may help you with details.
2045
2046       For solving software-induced  segfaults,  the  developers  may  need  a
2047       "stack backtrace".
2048
2049
2050   Enabling fetchmail core dumps
2051       By  default,  fetchmail  suppresses  core  dumps as these might contain
2052       passwords and other  sensitive  information.  For  debugging  fetchmail
2053       crashes,  obtaining  a  "stack backtrace" from a core dump is often the
2054       quickest way to solve the problem, and when posting your problem  on  a
2055       mailing list, the developers may ask you for a "backtrace".
2056
2057       1.  To  get  useful backtraces, fetchmail needs to be installed without
2058       getting stripped  of  its  compilation  symbols.   Unfortunately,  most
2059       binary  packages  that  are installed are stripped, and core files from
2060       symbol-stripped programs are worthless. So you may  need  to  recompile
2061       fetchmail. On many systems, you can type
2062
2063               file `which fetchmail`
2064
2065       to  find  out  if  fetchmail  was  symbol-stripped or not. If yours was
2066       unstripped, fine, proceed, if it was stripped, you  need  to  recompile
2067       the  source code first. You do not usually need to install fetchmail in
2068       order to debug it.
2069
2070       2. The shell environment that starts fetchmail  needs  to  enable  core
2071       dumps.  The  key  is the "maximum core (file) size" that can usually be
2072       configured with a tool named "limit" or "ulimit". See the documentation
2073       for  your  shell  for  details.  In the popular bash shell, "ulimit -Sc
2074       unlimited" will allow the core dump.
2075
2076       3. You need to tell fetchmail, too, to allow core dumps.  To  do  this,
2077       run  fetchmail with the -d0 -v options.  It is often easier to also add
2078       --nosyslog -N as well.
2079
2080       Finally, you need to reproduce the crash. You can just start  fetchmail
2081       from  the directory where you compiled it by typing ./fetchmail, so the
2082       complete command line will start with ./fetchmail -Nvd0 --nosyslog  and
2083       perhaps list your other options.
2084
2085       After the crash, run your debugger to obtain the core dump.  The debug‐
2086       ger will often be GNU GDB, you can then type (adjust  paths  as  neces‐
2087       sary) gdb ./fetchmail fetchmail.core and then, after GDB has started up
2088       and read all its files, type backtrace full, save the  output  (copy  &
2089       paste  will  do,  the  backtrace will be read by a human) and then type
2090       quit to leave gdb.  Note: on some systems, the core files have  differ‐
2091       ent  names, they might contain a number instead of the program name, or
2092       number and name, but it will usually have "core" as part of their name.
2093
2094

INTERACTION WITH RFC 822

2096       When trying to determine the originating address of a  message,  fetch‐
2097       mail looks through headers in the following order:
2098
2099               Return-Path:
2100               Resent-Sender: (ignored if it doesn't contain an @ or !)
2101               Sender: (ignored if it doesn't contain an @ or !)
2102               Resent-From:
2103               From:
2104               Reply-To:
2105               Apparently-From:
2106
2107       The  originating  address is used for logging, and to set the MAIL FROM
2108       address when forwarding to SMTP.  This order is intended to cope grace‐
2109       fully  with  receiving  mailing  list  messages  in multidrop mode. The
2110       intent is that if a local address doesn't  exist,  the  bounce  message
2111       won't  be  returned  blindly  to  the author or to the list itself, but
2112       rather to the list manager (which is less annoying).
2113
2114       In multidrop mode, destination headers are processed as follows: First,
2115       fetchmail  looks  for  the header specified by the 'envelope' option in
2116       order to  determine  the  local  recipient  address.  If  the  mail  is
2117       addressed  to  more than one recipient, the Received line won't contain
2118       any information regarding recipient addresses.
2119
2120       Then fetchmail looks for the Resent-To:,  Resent-Cc:,  and  Resent-Bcc:
2121       lines.   If  they  exist,  they should contain the final recipients and
2122       have precedence over their To:/Cc:/Bcc: counterparts.  If the  Resent-*
2123       lines  don't  exist,  the  To:,  Cc:, Bcc: and Apparently-To: lines are
2124       looked for. (The presence of a Resent-To: is taken to  imply  that  the
2125       person  referred  by  the To: address has already received the original
2126       copy of the mail.)
2127
2128

CONFIGURATION EXAMPLES

2130       Note that although there are password declarations in a  good  many  of
2131       the  examples below, this is mainly for illustrative purposes.  We rec‐
2132       ommend stashing account/password pairs in your $HOME/.netrc file, where
2133       they  can  be  used  not just by fetchmail but by ftp(1) and other pro‐
2134       grams.
2135
2136       The basic format is:
2137
2138
2139              poll SERVERNAME protocol PROTOCOL username NAME  password  PASS‐
2140              WORD
2141
2142
2143       Example:
2144
2145
2146              poll pop.provider.net protocol pop3 username "jsmith" password "secret1"
2147
2148
2149       Or, using some abbreviations:
2150
2151
2152              poll pop.provider.net proto pop3 user "jsmith" password "secret1"
2153
2154
2155       Multiple servers may be listed:
2156
2157
2158              poll pop.provider.net proto pop3 user "jsmith" pass "secret1"
2159              poll other.provider.net proto pop2 user "John.Smith" pass "My^Hat"
2160
2161
2162       Here's the same version with more whitespace and some noise words:
2163
2164
2165              poll pop.provider.net proto pop3
2166                   user "jsmith", with password secret1, is "jsmith" here;
2167              poll other.provider.net proto pop2:
2168                   user "John.Smith", with password "My^Hat", is "John.Smith" here;
2169
2170
2171       If  you  need  to include whitespace in a parameter string or start the
2172       latter with a number, enclose the string in double quotes.  Thus:
2173
2174
2175              poll mail.provider.net with proto pop3:
2176                   user "jsmith" there has password "4u but u can't krak this"
2177                   is jws here and wants mda "/bin/mail"
2178
2179
2180       You may have an  initial  server  description  headed  by  the  keyword
2181       'defaults'  instead  of  'poll'  followed  by a name.  Such a record is
2182       interpreted as defaults for all queries to use. It may  be  overwritten
2183       by individual server descriptions.  So, you could write:
2184
2185
2186              defaults proto pop3
2187                   user "jsmith"
2188              poll pop.provider.net
2189                   pass "secret1"
2190              poll mail.provider.net
2191                   user "jjsmith" there has password "secret2"
2192
2193
2194       It's  possible  to  specify  more than one user per server.  The 'user'
2195       keyword leads off a user description, and every user specification in a
2196       multi-user entry must include it.  Here's an example:
2197
2198
2199              poll pop.provider.net proto pop3 port 3111
2200                   user "jsmith" with pass "secret1" is "smith" here
2201                   user jones with pass "secret2" is "jjones" here keep
2202
2203
2204       This  associates  the  local username 'smith' with the pop.provider.net
2205       username  'jsmith'  and  the   local   username   'jjones'   with   the
2206       pop.provider.net  username  'jones'.   Mail  for 'jones' is kept on the
2207       server after download.
2208
2209
2210       Here's what a simple retrieval configuration for  a  multidrop  mailbox
2211       looks like:
2212
2213
2214              poll pop.provider.net:
2215                   user maildrop with pass secret1 to golux 'hurkle'='happy' snark here
2216
2217
2218       This  says  that  the  mailbox of account 'maildrop' on the server is a
2219       multidrop box, and that messages in it should be parsed for the  server
2220       user  names  'golux', 'hurkle', and 'snark'.  It further specifies that
2221       'golux' and 'snark' have the same name on the client as on the  server,
2222       but  mail  for  server user 'hurkle' should be delivered to client user
2223       'happy'.
2224
2225
2226       Note  that  fetchmail,  until  version  6.3.4,  did  NOT   allow   full
2227       user@domain  specifications  here,  these would never match.  Fetchmail
2228       6.3.5 and newer support user@domain  specifications  on  the  left-hand
2229       side of a user mapping.
2230
2231
2232       Here's an example of another kind of multidrop connection:
2233
2234
2235              poll pop.provider.net localdomains loonytoons.org toons.org
2236                   envelope X-Envelope-To
2237                   user maildrop with pass secret1 to * here
2238
2239
2240       This  also says that the mailbox of account 'maildrop' on the server is
2241       a multidrop box.  It tells fetchmail that any  address  in  the  loony‐
2242       toons.org  or  toons.org  domains  (including sub-domain addresses like
2243       'joe@daffy.loonytoons.org') should be passed through to the local  SMTP
2244       listener  without  modification.   Be  careful  of mail loops if you do
2245       this!
2246
2247
2248       Here's an example configuration using ssh and the plugin  option.   The
2249       queries  are  made  directly  on the stdin and stdout of imapd via ssh.
2250       Note that in this setup, IMAP authentication can be skipped.
2251
2252
2253              poll mailhost.net with proto imap:
2254                   plugin "ssh %h /usr/sbin/imapd" auth ssh;
2255                   user esr is esr here
2256
2257

THE USE AND ABUSE OF MULTIDROP MAILBOXES

2259       Use the multiple-local-recipients feature with caution -- it can  bite.
2260       All multidrop features are ineffective in ETRN and ODMR modes.
2261
2262       Also,  note  that  in multidrop mode duplicate mails are suppressed.  A
2263       piece of mail is considered duplicate if it has the same message-ID  as
2264       the  message  immediately  preceding and more than one addressee.  Such
2265       runs of messages may be generated when copies of a message addressed to
2266       multiple users are delivered to a multidrop box.
2267
2268
2269   Header vs. Envelope addresses
2270       The  fundamental problem is that by having your mailserver toss several
2271       peoples' mail in a single maildrop box, you may have thrown away poten‐
2272       tially  vital  information  about  who  each piece of mail was actually
2273       addressed  to  (the  'envelope  address',  as  opposed  to  the  header
2274       addresses in the RFC822 To/Cc headers - the Bcc is not available at the
2275       receiving end).  This 'envelope address' is the  address  you  need  in
2276       order to reroute mail properly.
2277
2278       Sometimes fetchmail can deduce the envelope address.  If the mailserver
2279       MTA is sendmail and the item of mail had just one  recipient,  the  MTA
2280       will  have  written a 'by/for' clause that gives the envelope addressee
2281       into its Received header. But this  doesn't  work  reliably  for  other
2282       MTAs,  nor  if there is more than one recipient.  By default, fetchmail
2283       looks for envelope addresses in  these  lines;  you  can  restore  this
2284       default with -E "Received" or 'envelope Received'.
2285
2286       As a better alternative, some SMTP listeners and/or mail servers insert
2287       a header in each message containing a copy of the  envelope  addresses.
2288       This  header  (when it exists) is often 'X-Original-To', 'Delivered-To'
2289       or 'X-Envelope-To'.  Fetchmail's assumption about this can  be  changed
2290       with the -E or 'envelope' option.  Note that writing an envelope header
2291       of this kind exposes the  names  of  recipients  (including  blind-copy
2292       recipients)  to  all  receivers  of  the messages, so the upstream must
2293       store one copy of the message per recipient to avoid becoming a privacy
2294       problem.
2295
2296       Postfix,  since version 2.0, writes an X-Original-To: header which con‐
2297       tains a copy of the envelope as it was received.
2298
2299       Qmail and Postfix generally write a 'Delivered-To' header upon deliver‐
2300       ing  the  message  to  the  mail  spool and use it to avoid mail loops.
2301       Qmail virtual domains however will prefix the user name with  a  string
2302       that  normally matches the user's domain. To remove this prefix you can
2303       use the -Q or 'qvirtual' option.
2304
2305       Sometimes, unfortunately, neither of these methods works.  That is  the
2306       point  when you should contact your ISP and ask them to provide such an
2307       envelope header, and you should not use multidrop  in  this  situation.
2308       When  they  all fail, fetchmail must fall back on the contents of To/Cc
2309       headers (Bcc headers are not available - see below) to try to determine
2310       recipient addressees -- and these are unreliable.  In particular, mail‐
2311       ing-list software often ships mail with only the list broadcast address
2312       in the To header.
2313
2314       Note that a future version of fetchmail may remove To/Cc parsing!
2315
2316       When fetchmail cannot deduce a recipient address that is local, and the
2317       intended recipient address was anyone other than  fetchmail's  invoking
2318       user,  mail  will  get  lost.  This is what makes the multidrop feature
2319       risky without proper envelope information.
2320
2321       A related problem is that when you blind-copy a mail message,  the  Bcc
2322       information  is carried only as envelope address (it's removed from the
2323       headers by the sending mail server, so fetchmail can  see  it  only  if
2324       there  is an X-Envelope-To header).  Thus, blind-copying to someone who
2325       gets mail over a fetchmail multidrop link  will  fail  unless  the  the
2326       mailserver  host routinely writes X-Envelope-To or an equivalent header
2327       into messages in your maildrop.
2328
2329       In conclusion, mailing lists and Bcc'd mail can only work if the server
2330       you're fetching from
2331
2332       (1)    stores one copy of the message per recipient in your domain and
2333
2334       (2)    records  the  envelope information in a special header (X-Origi‐
2335              nal-To, Delivered-To, X-Envelope-To).
2336
2337
2338   Good Ways To Use Multidrop Mailboxes
2339       Multiple local names can be used to administer a mailing list from  the
2340       client side of a fetchmail collection.  Suppose your name is 'esr', and
2341       you want to both pick up your own mail  and  maintain  a  mailing  list
2342       called  (say)  "fetchmail-friends", and you want to keep the alias list
2343       on your client machine.
2344
2345       On your server, you can alias 'fetchmail-friends' to  'esr';  then,  in
2346       your .fetchmailrc, declare 'to esr fetchmail-friends here'.  Then, when
2347       mail including 'fetchmail-friends' as a local address gets fetched, the
2348       list name will be appended to the list of recipients your SMTP listener
2349       sees.  Therefore it will undergo alias expansion locally.  Be  sure  to
2350       include  'esr'  in  the  local alias expansion of fetchmail-friends, or
2351       you'll never see mail sent only to the list.  Also be  sure  that  your
2352       listener  has  the  "me-too"  option  set (sendmail's -oXm command-line
2353       option or OXm declaration) so your name isn't removed from alias expan‐
2354       sions in messages you send.
2355
2356       This  trick  is not without its problems, however.  You'll begin to see
2357       this when a message comes in that is addressed only to a  mailing  list
2358       you  do not have declared as a local name.  Each such message will fea‐
2359       ture an 'X-Fetchmail-Warning' header which is generated because  fetch‐
2360       mail  cannot  find a valid local name in the recipient addresses.  Such
2361       messages default (as was described above) to being sent  to  the  local
2362       user  running fetchmail, but the program has no way to know that that's
2363       actually the right thing.
2364
2365
2366   Bad Ways To Abuse Multidrop Mailboxes
2367       Multidrop mailboxes and fetchmail serving multiple users in daemon mode
2368       do not mix.  The problem, again, is mail from mailing lists, which typ‐
2369       ically does not have an individual recipient address  on  it.    Unless
2370       fetchmail can deduce an envelope address, such mail will only go to the
2371       account running fetchmail (probably root).   Also,  blind-copied  users
2372       are very likely never to see their mail at all.
2373
2374       If  you're tempted to use fetchmail to retrieve mail for multiple users
2375       from a single mail drop via POP or IMAP, think again  (and  reread  the
2376       section  on  header and envelope addresses above).  It would be smarter
2377       to just let the mail sit in the mailserver's queue and use  fetchmail's
2378       ETRN  or ODMR modes to trigger SMTP sends periodically (of course, this
2379       means you have to poll more frequently  than  the  mailserver's  expiry
2380       period).  If you can't arrange this, try setting up a UUCP feed.
2381
2382       If  you  absolutely must use multidrop for this purpose, make sure your
2383       mailserver writes an envelope-address header that  fetchmail  can  see.
2384       Otherwise you will lose mail and it will come back to haunt you.
2385
2386
2387   Speeding Up Multidrop Checking
2388       Normally, when multiple users are declared fetchmail extracts recipient
2389       addresses as described above and checks each host part with DNS to  see
2390       if it's an alias of the mailserver.  If so, the name mappings described
2391       in the "to ... here" declaration are done and the mail  locally  deliv‐
2392       ered.
2393
2394       This is a convenient but also slow method.  To speed it up, pre-declare
2395       mailserver aliases with 'aka'; these are checked before DNS lookups are
2396       done.   If you're certain your aka list contains all DNS aliases of the
2397       mailserver (and all MX names pointing at it - note this may change in a
2398       future  version)  you  can  declare  'no  dns'  to suppress DNS lookups
2399       entirely and only match against the aka list.
2400
2401

SOCKS

2403       Support for socks4/5 is a compile time configuration option. Once  com‐
2404       piled  in, fetchmail will always use the socks libraries and configura‐
2405       tion on your system, there are no run-time switches in fetchmail -  but
2406       you  can  still configure SOCKS: you can specify which SOCKS configura‐
2407       tion file is used in the SOCKS_CONF environment variable.
2408
2409       For instance, if you wanted to bypass the SOCKS  proxy  altogether  and
2410       have    fetchmail    connect    directly,    you    could   just   pass
2411       SOCKS_CONF=/dev/null in the environment, for example  (add  your  usual
2412       command line options - if any - to the end of this line):
2413
2414       env SOCKS_CONF=/dev/null fetchmail
2415
2416

EXIT CODES

2418       To  facilitate  the  use  of fetchmail in shell scripts, an exit status
2419       code is returned to give an indication of what occurred during a  given
2420       connection.
2421
2422       The exit codes returned by fetchmail are as follows:
2423
2424       0      One  or more messages were successfully retrieved (or, if the -c
2425              option was selected, were found waiting but not retrieved).
2426
2427       1      There was no mail awaiting retrieval.  (There may have been  old
2428              mail still on the server but not selected for retrieval.) If you
2429              do not want "no mail" to be an error  condition  (for  instance,
2430              for cron jobs), use a POSIX-compliant shell and add
2431
2432              || [ $? -eq 1 ]
2433
2434              to  the end of the fetchmail command line, note that this leaves
2435              0 untouched, maps 1 to 0, and maps all other  codes  to  1.  See
2436              also item #C8 in the FAQ.
2437
2438       2      An  error  was  encountered  when attempting to open a socket to
2439              retrieve mail.  If you don't know what a socket is, don't  worry
2440              about  it  -- just treat this as an 'unrecoverable error'.  This
2441              error can also be because a protocol fetchmail wants to  use  is
2442              not listed in /etc/services.
2443
2444       3      The  user authentication step failed.  This usually means that a
2445              bad user-id, password, or APOP id was specified.  Or it may mean
2446              that you tried to run fetchmail under circumstances where it did
2447              not have standard input attached to a  terminal  and  could  not
2448              prompt for a missing password.
2449
2450       4      Some sort of fatal protocol error was detected.
2451
2452       5      There  was  a  syntax  error in the arguments to fetchmail, or a
2453              pre- or post-connect command failed.
2454
2455       6      The run control file had bad permissions.
2456
2457       7      There was an error condition reported by the server.   Can  also
2458              fire if fetchmail timed out while waiting for the server.
2459
2460       8      Client-side  exclusion error.  This means fetchmail either found
2461              another copy of itself already running, or failed in such a  way
2462              that it isn't sure whether another copy is running.
2463
2464       9      The user authentication step failed because the server responded
2465              "lock busy".  Try again after a brief pause!  This error is  not
2466              implemented  for  all  protocols,  nor  for all servers.  If not
2467              implemented for your server, "3" will be returned  instead,  see
2468              above.  May be returned when talking to qpopper or other servers
2469              that can respond with "lock busy" or some similar text  contain‐
2470              ing the word "lock".
2471
2472       10     The fetchmail run failed while trying to do an SMTP port open or
2473              transaction.
2474
2475       11     Fatal DNS error.  Fetchmail encountered an error while  perform‐
2476              ing a DNS lookup at startup and could not proceed.
2477
2478       12     BSMTP batch file could not be opened.
2479
2480       13     Poll terminated by a fetch limit (see the --fetchlimit option).
2481
2482       14     Server busy indication.
2483
2484       23     Internal error.  You should see a message on standard error with
2485              details.
2486
2487       24 - 26, 28, 29
2488              These are internal codes and should not appear externally.
2489
2490       When fetchmail queries more than one host, return status is  0  if  any
2491       query  successfully retrieved mail. Otherwise the returned error status
2492       is that of the last host queried.
2493
2494

FILES

2496       ~/.fetchmailrc
2497            default run control file
2498
2499       ~/.fetchids
2500            default location of file recording  last  message  UIDs  seen  per
2501            host.
2502
2503       ~/.fetchmail.pid
2504            lock file to help prevent concurrent runs (non-root mode).
2505
2506       ~/.netrc
2507            your FTP run control file, which (if present) will be searched for
2508            passwords as a last resort before prompting for one interactively.
2509
2510       /var/run/fetchmail.pid
2511            lock file to help prevent concurrent runs (root mode,  Linux  sys‐
2512            tems).
2513
2514       /etc/fetchmail.pid
2515            lock  file  to  help  prevent  concurrent runs (root mode, systems
2516            without /var/run).
2517
2518

ENVIRONMENT

2520       FETCHMAILHOME
2521              If this environment variable is set  to  a  valid  and  existing
2522              directory  name,  fetchmail will read $FETCHMAILHOME/fetchmailrc
2523              (the dot is missing in this case), $FETCHMAILHOME/.fetchids  and
2524              $FETCHMAILHOME/.fetchmail.pid  rather  than from the user's home
2525              directory.  The .netrc file is always  looked  for  in  the  the
2526              invoking  user's  home  directory  regardless of FETCHMAILHOME's
2527              setting.
2528
2529
2530       FETCHMAILUSER
2531              If this environment variable is set, it is used as the  name  of
2532              the calling user (default local name) for purposes such as mail‐
2533              ing error notifications.  Otherwise, if either  the  LOGNAME  or
2534              USER  variable  is  correctly  set  (e.g.  the corresponding UID
2535              matches the session user ID) then  that  name  is  used  as  the
2536              default  local  name.   Otherwise  getpwuid(3)  must  be able to
2537              retrieve a password entry for the  session  ID  (this  elaborate
2538              logic  is  designed  to  handle  the  case of multiple names per
2539              userid gracefully).
2540
2541
2542       FETCHMAIL_INCLUDE_DEFAULT_X509_CA_CERTS
2543              (since v6.3.17): If this environment variable  is  set  and  not
2544              empty, fetchmail will always load the default X.509 trusted cer‐
2545              tificate  locations  for  SSL/TLS  CA  certificates,   even   if
2546              --sslcertfile and --sslcertpath are given.  The latter locations
2547              take precedence over the system default locations.  This is use‐
2548              ful in case there are broken certificates in the system directo‐
2549              ries and the user has no administrator privileges to remedy  the
2550              problem.
2551
2552
2553       HOME_ETC
2554              If   the   HOME_ETC   variable   is  set,  fetchmail  will  read
2555              $HOME_ETC/.fetchmailrc instead of ~/.fetchmailrc.
2556
2557              If HOME_ETC and FETCHMAILHOME are both  set,  HOME_ETC  will  be
2558              ignored.
2559
2560
2561       SOCKS_CONF
2562              (only  if SOCKS support is compiled in) this variable is used by
2563              the socks library to find out which configuration file it should
2564              read. Set this to /dev/null to bypass the SOCKS proxy.
2565
2566

SIGNALS

2568       If  a fetchmail daemon is running as root, SIGUSR1 wakes it up from its
2569       sleep phase and forces a poll of all non-skipped servers. For  compati‐
2570       bility  reasons, SIGHUP can also be used in 6.3.X but may not be avail‐
2571       able in future fetchmail versions.
2572
2573       If fetchmail is running in daemon mode as non-root, use SIGUSR1 to wake
2574       it  (this  is  so SIGHUP due to logout can retain the default action of
2575       killing it).
2576
2577       Running fetchmail in foreground while a background fetchmail is running
2578       will do whichever of these is appropriate to wake it up.
2579
2580

BUGS AND KNOWN PROBLEMS

2582       Please  check  the NEWS file that shipped with fetchmail for more known
2583       bugs than those listed here.
2584
2585       Fetchmail cannot handle user names that  contain  blanks  after  a  "@"
2586       character, for instance "demonstr@ti on". These are rather uncommon and
2587       only hurt when using UID-based --keep setups, so the 6.3.X versions  of
2588       fetchmail won't be fixed.
2589
2590       The  assumptions  that the DNS and in particular the checkalias options
2591       make are not often sustainable. For instance, it  has  become  uncommon
2592       for  an  MX server to be a POP3 or IMAP server at the same time. There‐
2593       fore the MX lookups may go away in a future release.
2594
2595       The mda and plugin options interact badly.  In order to  collect  error
2596       status from the MDA, fetchmail has to change its normal signal handling
2597       so that dead plugin processes don't get reaped until  the  end  of  the
2598       poll  cycle.   This  can  cause resource starvation if too many zombies
2599       accumulate.  So either don't deliver to a MDA  using  plugins  or  risk
2600       being overrun by an army of undead.
2601
2602       The  --interface  option does not support IPv6 and it is doubtful if it
2603       ever will, since there is no  portable  way  to  query  interface  IPv6
2604       addresses.
2605
2606       The  RFC822  address  parser  used  in  multidrop  mode  chokes on some
2607       @-addresses that are technically legal but bizarre.   Strange  uses  of
2608       quoting and embedded comments are likely to confuse it.
2609
2610       In  a  message  with  multiple envelope headers, only the last one pro‐
2611       cessed will be visible to fetchmail.
2612
2613       Use of some of these protocols requires that  the  program  send  unen‐
2614       crypted  passwords  over the TCP/IP connection to the mailserver.  This
2615       creates a risk that name/password pairs might be snaffled with a packet
2616       sniffer  or  more  sophisticated  monitoring software.  Under Linux and
2617       FreeBSD, the --interface option can be  used  to  restrict  polling  to
2618       availability  of  a  specific interface device with a specific local or
2619       remote IP address, but snooping is still possible if  (a)  either  host
2620       has a network device that can be opened in promiscuous mode, or (b) the
2621       intervening network link can be tapped.  We recommend the use of ssh(1)
2622       tunnelling  to  not  only  shroud your passwords but encrypt the entire
2623       conversation.
2624
2625       Use of the %F or %T escapes in an mda  option  could  open  a  security
2626       hole, because they pass text manipulable by an attacker to a shell com‐
2627       mand.  Potential shell characters are replaced by '_' before execution.
2628       The hole is further reduced by the fact that fetchmail temporarily dis‐
2629       cards any suid privileges it may have while running the MDA.  For maxi‐
2630       mum  safety, however, don't use an mda command containing %F or %T when
2631       fetchmail is run from the root account itself.
2632
2633       Fetchmail's method of sending bounces due to  errors  or  spam-blocking
2634       and  spam  bounces  requires that port 25 of localhost be available for
2635       sending mail via SMTP.
2636
2637       If you modify ~/.fetchmailrc while a background instance is running and
2638       break  the syntax, the background instance will die silently.  Unfortu‐
2639       nately, it can't die noisily because we don't yet know  whether  syslog
2640       should  be  enabled.   On  some systems, fetchmail dies quietly even if
2641       there is no syntax error; this seems to have something to do with buggy
2642       terminal ioctl code in the kernel.
2643
2644       The  -f  -  option (reading a configuration from stdin) is incompatible
2645       with the plugin option.
2646
2647       The 'principal' option only handles Kerberos IV, not V.
2648
2649       Interactively entered passwords are truncated after 63  characters.  If
2650       you  really  need to use a longer password, you will have to use a con‐
2651       figuration file.
2652
2653       A backslash as the last character  of  a  configuration  file  will  be
2654       flagged as a syntax error rather than ignored.
2655
2656       The  BSMTP error handling is virtually nonexistent and may leave broken
2657       messages behind.
2658
2659       Send comments, bug reports, gripes, and the like to the fetchmail-devel
2660       list ⟨fetchmail-devel@lists.berlios.de⟩
2661
2662
2663       An  HTML FAQ ⟨http://fetchmail.berlios.de/fetchmail-FAQ.html⟩ is avail‐
2664       able at the fetchmail home page, it should also accompany your  instal‐
2665       lation.
2666
2667

AUTHOR

2669       Fetchmail  is currently maintained by Matthias Andree and Rob Funk with
2670       major assistance from Sunil Shetye (for code) and  Rob  MacGregor  (for
2671       the mailing lists).
2672
2673       Most of the code is from Eric S. Raymond ⟨esr@snark.thyrsus.com⟩ .  Too
2674       many other people to name here have contributed code and patches.
2675
2676       This program is descended from and replaces popclient, by  Carl  Harris
2677       ⟨ceharris@mal.com⟩  ;  the  internals  have become quite different, but
2678       some of its interface design is directly traceable  to  that  ancestral
2679       program.
2680
2681       This  manual page has been improved by Matthias Andree, R. Hannes Bein‐
2682       ert, and Héctor García.
2683
2684

SEE ALSO

2686       README, README.SSL, README.SSL-SERVER, The Fetchmail FAQ ⟨http://
2687       www.fetchmail.info/fetchmail-FAQ.html⟩, mutt(1), elm(1), mail(1), send‐
2688       mail(8), popd(8), imapd(8), netrc(5).
2689
2690
2691       The fetchmail home page.  ⟨http://fetchmail.berlios.de/
2692
2693
2694       The maildrop home page.  ⟨http://www.courier-mta.org/maildrop/
2695
2696

APPLICABLE STANDARDS

2698       Note that this list is just a collection of references and not a state‐
2699       ment  as  to  the actual protocol conformance or requirements in fetch‐
2700       mail.
2701
2702       SMTP/ESMTP:
2703            RFC 821, RFC 2821, RFC 1869, RFC 1652, RFC  1870,  RFC  1983,  RFC
2704            1985, RFC 2554.
2705
2706       mail:
2707            RFC 822, RFC 2822, RFC 1123, RFC 1892, RFC 1894.
2708
2709       POP2:
2710            RFC 937
2711
2712       POP3:
2713            RFC  1081,  RFC  1225, RFC 1460, RFC 1725, RFC 1734, RFC 1939, RFC
2714            1957, RFC 2195, RFC 2449.
2715
2716       APOP:
2717            RFC 1939.
2718
2719       RPOP:
2720            RFC 1081, RFC 1225.
2721
2722       IMAP2/IMAP2BIS:
2723            RFC 1176, RFC 1732.
2724
2725       IMAP4/IMAP4rev1:
2726            RFC 1730, RFC 1731, RFC 1732, RFC 2060, RFC 2061,  RFC  2195,  RFC
2727            2177, RFC 2683.
2728
2729       ETRN:
2730            RFC 1985.
2731
2732       ODMR/ATRN:
2733            RFC 2645.
2734
2735       OTP: RFC 1938.
2736
2737       LMTP:
2738            RFC 2033.
2739
2740       GSSAPI:
2741            RFC 1508.
2742
2743       TLS: RFC 2595.
2744
2745
2746
2747fetchmail                      fetchmail 6.3.17                   fetchmail(1)
Impressum