dwww Home | Manual pages | Find package

FETCHMAIL(1)               fetchmail reference manual              FETCHMAIL(1)

NAME
       fetchmail - fetch mail from a POP, IMAP, ETRN, or ODMR-capable server

SYNOPSIS
       fetchmail [option...] [mailserver...]
       fetchmailconf

DESCRIPTION
       fetchmail  is  a  mail-retrieval and forwarding utility; it fetches mail
       from remote mail servers and forwards it  to  your  local  (client)  ma-
       chine's  delivery  system.  You can then handle the retrieved mail using
       normal mail user agents such as mutt(1), elm(1) or Mail(1).  The  fetch-
       mail  utility can be run in a daemon mode to repeatedly poll one or more
       systems at a specified interval.

       The fetchmail program can gather mail from servers supporting any of the
       common mail-retrieval protocols: POP2 (legacy, to be removed from future
       release), POP3, IMAP2bis, IMAP4, and IMAP4rev1.  It  can  also  use  the
       ESMTP ETRN extension and ODMR.  (The RFCs describing all these protocols
       are listed at the end of this manual page.)

       While  fetchmail  is primarily intended to be used over on-demand TCP/IP
       links (such as SLIP or PPP connections), it may also be useful as a mes-
       sage transfer agent for sites which refuse for security reasons to  per-
       mit (sender-initiated) SMTP transactions with sendmail.

SUPPORT, TROUBLESHOOTING
       For  troubleshooting, tracing and debugging, you need to increase fetch-
       mail's verbosity to actually see what happens. To do  that,  please  run
       both of the two following commands, adding all of the options you'd nor-
       mally use.

              env LC_ALL=C fetchmail -V -v --nodetach --nosyslog

              (This  command  line  prints in English how fetchmail understands
              your configuration.)

              env LC_ALL=C fetchmail -vvv  --nodetach --nosyslog

              (This command line actually runs fetchmail with  verbose  English
              output.)

       Also see ]8;;https://fetchmail.sourceforge.io/fetchmail-FAQ.html#G3\item #G3 in fetchmail's FAQ]8;;\.

       You  can  omit  the  LC_ALL=C part above if you want output in the local
       language (if supported). However if you are posting  to  mailing  lists,
       please  leave  it in. The maintainers do not necessarily understand your
       language, please use English.

TLS (SSL) QUICKSTART
       Your fetchmail distribution should have come  with  a  README.SSL  file,
       which  see.   It is recommended to configure all polls with --ssl --ssl-
       proto tls1.2+ if supported by the  server,  which  configures  fetchmail
       along  recent  IETF  proposed  standards  and  best  current  practices,
       RFC-8314, RFC-8996, RFC-8997.

CONCEPTS
       If fetchmail is used with a POP or an IMAP server (but not with ETRN  or
       ODMR),  it  has two fundamental modes of operation for each user account
       from which it retrieves mail: singledrop- and multidrop-mode.

       In singledrop-mode,
              fetchmail assumes that all messages in the user's account  (mail-
              box)  are  intended  for a single recipient.  The identity of the
              recipient will either default to the local user currently execut-
              ing fetchmail, or will need to be  explicitly  specified  in  the
              configuration file.

              fetchmail uses singledrop-mode when the fetchmailrc configuration
              contains  at  most  a single local user specification for a given
              server account.

       In multidrop-mode,
              fetchmail assumes that the mail server account actually  contains
              mail intended for any number of different recipients.  Therefore,
              fetchmail  must attempt to deduce the proper "envelope recipient"
              from the mail headers of each message.  In this  mode  of  opera-
              tion, fetchmail almost resembles a mail transfer agent (MTA).

              Note  that  neither  the POP nor IMAP protocols were intended for
              use in this fashion, and hence envelope information is often  not
              directly  available.  The ISP must store the envelope information
              in some message header and. The ISP must also store one  copy  of
              the  message  per  recipient.  If either of the conditions is not
              fulfilled, this process is  unreliable,  because  fetchmail  must
              then  resort to guessing the true envelope recipient(s) of a mes-
              sage. This usually fails for  mailing  list  messages  and  Bcc:d
              mail, or mail for multiple recipients in your domain.

              fetchmail  uses  multidrop-mode  when  more  than  one local user
              and/or a wildcard is specified for a particular server account in
              the configuration file.

       In ETRN and ODMR modes,
              these considerations do not apply, as these protocols  are  based
              on  SMTP, which provides explicit envelope recipient information.
              These protocols always support multiple recipients.

       As each message is retrieved, fetchmail normally delivers it via SMTP to
       port 25 on the machine it is running on (localhost), just as  though  it
       were  being passed in over a normal TCP/IP link.  fetchmail provides the
       SMTP server with an envelope recipient derived in the  manner  described
       previously.   The  mail  will  then be delivered according to your MTA's
       rules (the Mail Transfer Agent is usually sendmail(8), exim(8), or post-
       fix(8)).  Invoking your system's MDA (Mail Delivery Agent) is  the  duty
       of  your  MTA.   All  the  delivery-control mechanisms (such as .forward
       files) normally available through your system  MTA  and  local  delivery
       agents will therefore be applied as usual.

       If your fetchmail configuration sets a local MDA (see the --mda option),
       it will be used directly instead of talking SMTP to port 25.

       If the program fetchmailconf is available, it will assist you in setting
       up  and editing a fetchmailrc configuration.  It runs under the X window
       system and requires that the language Python and the  Tk  toolkit  (with
       Python bindings) be present on your system.  If you are first setting up
       fetchmail  for  single-user  mode, it is recommended that you use Novice
       mode.  Expert mode provides complete control of fetchmail configuration,
       including the multidrop features.  In either case, the 'Autoprobe'  but-
       ton  will  tell  you  the most capable protocol a given mail server sup-
       ports, and warn you of potential problems with that server.

PREFACE ON THIS MANUAL
       Fetchmail's run-time strings have been translated  (localized)  to  some
       languages,  but the manual is only available in English.  In some situa-
       tions, for comparing output to manual,  it  may  be  helpful  to  switch
       fetchmail  to English output by overriding the locale variables, for in-
       stance:

              env LC_ALL=C fetchmail # add other options before the hash

              env LANG=en fetchmail # other options before the hash

       or similar. Details vary by operating system.

GENERAL OPERATION
       The behavior of fetchmail is controlled by command-line  options  and  a
       run  control  file, ~/.fetchmailrc, the syntax of which we describe in a
       later section (this file is what the fetchmailconf program edits).  Com-
       mand-line options override ~/.fetchmailrc declarations.

       Each server name that you specify following the options on  the  command
       line  will be queried.  If you do not specify any servers on the command
       line, each 'poll' entry in your ~/.fetchmailrc file will be queried, un-
       less the idle option is used, which see.

       To facilitate the use of fetchmail in scripts and pipelines, it  returns
       an appropriate exit code upon termination -- see EXIT CODES below.

       The  following  options  modify the behavior of fetchmail.  It is seldom
       necessary to specify any of these once you have a  working  .fetchmailrc
       file set up.

       Almost all options have a corresponding keyword which can be used to de-
       clare them in a .fetchmailrc file.

       Some special options are not covered here, but are documented instead in
       sections on AUTHENTICATION and DAEMON MODE which follow.

   General Options
       -? | --help
              Displays option help.

       -V | --version
              Displays  the version information for your copy of fetchmail.  No
              mail fetch is performed.  Instead, for each server specified, all
              the option information that would be computed if  fetchmail  were
              connecting  to that server is displayed.  Any non-printable char-
              acters in passwords or other string  names  are  shown  as  back-
              slashed C-like escape sequences.  This option is useful for veri-
              fying that your options are set the way you want them.

       -c | --check
              Return  a  status code to indicate whether there is mail waiting,
              without actually fetching or deleting mail (see  EXIT  CODES  be-
              low).   This  option  turns off daemon mode (in which it would be
              useless).  It does not play well with queries to multiple  sites,
              and does not work with ETRN or ODMR.  It will return a false pos-
              itive if you leave read but undeleted mail in your server mailbox
              and  your fetch protocol cannot tell kept messages from new ones.
              This means it will work with IMAP, not work with  POP2,  and  may
              occasionally flake out under POP3.

       -s | --silent
              Silent  mode.   Suppresses  all progress/status messages that are
              normally echoed to standard output during a fetch (but  does  not
              suppress  actual error messages).  The --verbose option overrides
              this.

       -v | --verbose
              Verbose mode.  All control messages passed between fetchmail  and
              the  mail server are echoed to stdout.  Overrides --silent.  Dou-
              bling this option (-v -v) causes extra diagnostic information  to
              be printed.

       --nosoftbounce
              (since v6.3.10, Keyword: set no softbounce, since v6.3.10)
              Hard bounce mode. All permanent delivery errors cause messages to
              be deleted from the upstream server, see "no softbounce" below.

       --softbounce
              (since v6.3.10, Keyword: set softbounce, since v6.3.10)
              Soft bounce mode. All permanent delivery errors cause messages to
              be  left  on  the  upstream server if the protocol supports that.
              This option is on by default to match historic fetchmail documen-
              tation, and will be changed to  hard  bounce  mode  in  the  next
              fetchmail release.

   Disposal Options
       -a | --all | (since v6.3.3) --fetchall
              (Keyword: fetchall, since v3.0)
              Retrieve  both  old (seen) and new messages from the mail server.
              The default is to fetch only messages the server has  not  marked
              seen.  Under POP3, this option also forces the use of RETR rather
              than  TOP.   Note  that POP2 retrieval behaves as though --all is
              always on (see RETRIEVAL FAILURE MODES  below)  and  this  option
              does not work with ETRN or ODMR.  While the -a and --all command-
              line  and  fetchall rcfile options have been supported for a long
              time, the --fetchall command-line option was added in v6.3.3.

       -k | --keep
              (Keyword: keep)
              Keep retrieved messages on the  remote  mail  server.   Normally,
              messages  are  deleted  from  the folder on the mail server after
              they have been retrieved.  Specifying the keep option causes  re-
              trieved  messages  to  remain  in your folder on the mail server.
              This option does not work with ETRN or ODMR. If used  with  POP3,
              it  is recommended to also specify the --uidl option or uidl key-
              word.

       -K | --nokeep
              (Keyword: nokeep)
              Delete retrieved messages from the remote mail server.  This  op-
              tion  forces  retrieved  mail to be deleted.  It may be useful if
              you have specified a default of keep in your .fetchmailrc.   This
              option is forced on with ETRN and ODMR.

       -F | --flush
              (Keyword: flush)
              POP3/IMAP  only.   This  is a dangerous option and can cause mail
              loss when used improperly. It deletes old  (seen)  messages  from
              the  mail  server  before retrieving new messages.  Warning: This
              can cause mail loss if you check your  mail  with  other  clients
              than  fetchmail,  and  cause fetchmail to delete a message it had
              never fetched before.  It can also cause mail loss  if  the  mail
              server  marks  the  message seen after retrieval (IMAP2 servers).
              You should probably not use this  option  in  your  configuration
              file.  If  you  use it with POP3, you must use the 'uidl' option.
              What you probably want is the default  setting:  if  you  do  not
              specify  '-k',  then fetchmail will automatically delete messages
              after successful delivery.

       --limitflush
              POP3/IMAP only, since version 6.3.0.  Delete  oversized  messages
              from  the  mail  server  before retrieving new messages. The size
              limit should be separately specified  with  the  --limit  option.
              This option does not work with ETRN or ODMR.

   Protocol and Query Options
       -p <proto> | --proto <proto> | --protocol <proto>
              (Keyword: proto[col])
              Specify  the  protocol  to use when communicating with the remote
              mail server.  If no protocol is specified, the default  is  AUTO.
              proto may be one of the following:

              AUTO   Tries  IMAP,  POP3,  and  POP2  (skipping any of these for
                     which support has not been compiled in).

              POP2   Post Office Protocol 2 (legacy, to be removed from  future
                     release)

              POP3   Post Office Protocol 3

              APOP   Use  POP3 with old-fashioned MD5-challenge authentication.
                     Considered not resistant to man-in-the-middle attacks.

              RPOP   Use POP3 with RPOP authentication.

              KPOP   Use POP3 with Kerberos V4 authentication on port 1109.

              SDPS   Use POP3 with Demon Internet's SDPS extensions.

              IMAP   IMAP2bis, IMAP4, or IMAP4rev1 (fetchmail automatically de-
                     tects their capabilities).

              ETRN   Use the ESMTP ETRN option.

              ODMR   Use the On-Demand Mail Relay ESMTP profile.

       All these alternatives work in basically  the  same  way  (communicating
       with  standard server daemons to fetch mail already delivered to a mail-
       box on the server) except ETRN and ODMR.  The ETRN mode  allows  you  to
       ask  a  compliant ESMTP server (such as BSD sendmail at release 8.8.0 or
       higher) to immediately open a sender-SMTP connection to your client  ma-
       chine and begin forwarding any items addressed to your client machine in
       the  server's  queue  of  undelivered  mail.   The ODMR mode requires an
       ODMR-capable server and works similarly to ETRN, except that it does not
       require the client machine to have a static DNS.

       -U | --uidl
              (Keyword: uidl)
              Force UIDL use (effective only  with  POP3).   Force  client-side
              tracking  of  'newness'  of  messages (UIDL stands for "unique ID
              listing" and is described in RFC1939).  Use with 'keep' to use  a
              mailbox  as  a baby news drop for a group of users. The fact that
              seen messages are skipped is logged, unless error logging is done
              through syslog while running in daemon mode.  Note that fetchmail
              may automatically enable this option depending on upstream server
              capabilities.  Note also that this  option  may  be  removed  and
              forced enabled in a future fetchmail version. See also: --idfile.

       --idle (since 6.3.3)
              (Keyword: idle, since before 6.0.0)
              Enable  IDLE use (effective only with IMAP). Note that this works
              with only one account and one folder at a given time, other fold-
              ers or accounts will not be polled when idle is in effect!  While
              the idle rcfile keyword had been supported for a long  time,  the
              --idle  command-line  option was added in version 6.3.3. IDLE use
              means that fetchmail tells the IMAP server to send notice of  new
              messages,  so they can be retrieved sooner than would be possible
              with regular polls.

       -P <portnumber> | --service <servicename>
              (Keyword: service) Since version 6.3.0.
              The service option permits you to specify a service name to  con-
              nect  to.   You  can  specify a decimal port number here, if your
              services database lacks the  required  service-port  assignments.
              See  the  FAQ  item  R12 and the --ssl documentation for details.
              This replaces the older --port option.

       Note that this does not magically switch between TLS-wrapped and  START-
       TLS  modes,  if  you  specify a port number or service name here that is
       TLS-wrapped, meaning it starts to negotiate TLS before sending  applica-
       tion  data  in  the  clear, you may need to specify --ssl on the command
       line or ssl in your rcfile.

       --port <portnumber>
              (Keyword: port)
              Obsolete version of --service that does not take  service  names.
              Note: this option may be removed from a future version.

       --principal <principal>
              (Keyword: principal)
              The  principal  option permits you to specify a service principal
              for mutual authentication.  This is applicable to  POP3  or  IMAP
              with  Kerberos  4 authentication only.  It does not apply to Ker-
              beros 5 or GSSAPI.  This option may be removed in a future fetch-
              mail version.

       -t <seconds> | --timeout <seconds>
              (Keyword: timeout)
              The timeout option allows you to set a server-non-response  time-
              out  in  seconds.  If a mail server does not send a greeting mes-
              sage or respond to commands for  the  given  number  of  seconds,
              fetchmail will drop the connection to it.  Without such a timeout
              fetchmail  might  hang until the TCP connection times out, trying
              to fetch mail from a down host, which may  be  very  long.   This
              would  be  particularly  annoying  for a fetchmail running in the
              background.  There is a default timeout which fetchmail  -V  will
              report.  If a given connection receives too many timeouts in suc-
              cession,  fetchmail  will  consider  it wedged and stop retrying.
              The calling user will be notified by email if this happens.

              Beginning with fetchmail 6.3.10, the SMTP client uses the  recom-
              mended  minimum  timeouts  from  RFC-5321  while  waiting for the
              SMTP/LMTP server it is talking to.  You can  raise  the  timeouts
              even  more,  but  you  cannot  shorten  them.  This is to avoid a
              painful situation where fetchmail  has  been  configured  with  a
              short  timeout  (a  minute  or  less), ships a long message (many
              MBytes) to the local MTA, which then takes longer than timeout to
              respond "OK", which it eventually will; that would mean the  mail
              gets  delivered properly, but fetchmail cannot notice it and will
              thus re-fetch this big message over and over again.

       --plugin <command>
              (Keyword: plugin)
              The plugin option allows you to use an external program to estab-
              lish the TCP connection.  This is useful if you want to use  ssh,
              or  need some special firewall setup.  The program will be looked
              up in $PATH and can optionally be passed the host name  and  port
              as  arguments using "%h" and "%p" respectively (note that the in-
              terpolation logic is rather primitive, and these tokens  must  be
              bounded  by  whitespace or beginning of string or end of string).
              Fetchmail will write to the plugin's stdin and read from the plu-
              gin's stdout.

       --plugout <command>
              (Keyword: plugout)
              Identical to the plugin option above, but this one  is  used  for
              the SMTP connections.

       -r <name> | --folder <name>
              (Keyword: folder[s])
              Causes a specified non-default mail folder on the mail server (or
              comma-separated  list of folders) to be retrieved.  The syntax of
              the folder name is server-dependent.  This option is  not  avail-
              able under POP3, ETRN, or ODMR.

       --tracepolls
              (Keyword: tracepolls)
              Tell fetchmail to poll trace information in the form 'polling ac-
              count  %s'  and  'folder  %s'  to the Received line it generates,
              where the %s parts are replaced by the user's  remote  name,  the
              poll  label,  and  the  folder (mailbox) where available (the Re-
              ceived header also normally includes  the  server's  true  name).
              This  can  be  used to facilitate mail filtering based on the ac-
              count it is being received from. The folder information is  writ-
              ten only since version 6.3.4.

       --ssl  (Keyword: ssl)
              Causes the connection to the mail server to be encrypted via SSL,
              by  negotiating SSL directly after connecting (called SSL-wrapped
              mode, or Implicit TLS by RFC-8314).  Please see  the  description
              of  --sslproto  below!   More  information  is  available  in the
              README.SSL file that ships with fetchmail.

              Note that even if this option is omitted, fetchmail may still ne-
              gotiate SSL in-band for POP3 or IMAP, through the STLS or  START-
              TLS  feature.   You  can use the --sslproto option to modify that
              behavior.

              If no port is specified, the connection is attempted to the  well
              known port of the SSL version of the base protocol.  This is gen-
              erally  a different port than the port used by the base protocol.
              For IMAP, this is port 143 for the clear protocol  and  port  993
              for  the  SSL  secured protocol; for POP3, it is port 110 for the
              clear text and port 995 for the encrypted variant.

              If your system lacks the  corresponding  entries  from  /etc/ser-
              vices, see the --service option and specify the numeric port num-
              ber  as  given in the previous paragraph (unless your ISP had di-
              rected you to different ports, which is uncommon however).

       --sslcert <name>
              (Keyword: sslcert)
              For certificate-based client authentication.  Some SSL  encrypted
              servers require client side keys and certificates for authentica-
              tion.  In most cases, this is optional.  This specifies the loca-
              tion  of the public key certificate to be presented to the server
              at the time the SSL session is established.  It is  not  required
              (but  may be provided) if the server does not require it.  It may
              be the same file as the private key (combined key and certificate
              file) but this is not recommended. Also see --sslkey below.

              NOTE: If you use client authentication, the user name is  fetched
              from the certificate's CommonName and overrides the name set with
              --user.

       --sslkey <name>
              (Keyword: sslkey)
              Specifies the file name of the client side private SSL key.  Some
              SSL  encrypted  servers require client side keys and certificates
              for authentication.  In most cases, this is optional.  This spec-
              ifies the location of the private key used to  sign  transactions
              with  the  server at the time the SSL session is established.  It
              is not required (but may be provided) if the server does not  re-
              quire it. It may be the same file as the public key (combined key
              and certificate file) but this is not recommended.

              If  a password is required to unlock the key, it will be prompted
              for at the time just prior to establishing  the  session  to  the
              server.  This can cause some complications in daemon mode.

              Also see --sslcert above.

       --sslproto <value>
              (Keyword: sslproto, NOTE: semantic changes since v6.4.0)
              This  option has a dual use, out of historic fetchmail behaviour.
              It controls both the SSL/TLS protocol version and,  if  --ssl  is
              not  specified, the STARTTLS behaviour (upgrading the protocol to
              an SSL or TLS connection in-band). Some other options may however
              make TLS mandatory.

              Only if this option and --ssl are both missing for a poll,  there
              will be opportunistic TLS for POP3 and IMAP, where fetchmail will
              attempt to upgrade to TLSv1 or newer.

              Recognized values for --sslproto are given below. You should nor-
              mally choose one of the auto-negotiating options, i. e. 'tls1.2+'
              or  'auto' or one of the other options ending in a plus (+) char-
              acter.  Note that depending on OpenSSL library version  and  con-
              figuration,  some  options  cause run-time errors because the re-
              quested SSL or TLS versions are not supported by  the  particular
              installed OpenSSL library.

              'TLS1.2+'
                     (recommended).  Since  v6.4.0. Require TLS. Auto-negotiate
                     TLSv1.2 or newer.

              'auto' (default). Since v6.4.0. Require TLS. Auto-negotiate TLSv1
                     or newer, disable SSLv3 downgrade.  (fetchmail 6.3.26  and
                     older   have  auto-negotiated  all  protocols  that  their
                     OpenSSL library supported, including the broken SSLv3).

              '', the empty string
                     Disable STARTTLS. If --ssl is given for the  same  server,
                     log  an  error  and  pretend that 'auto' had been used in-
                     stead.

              'SSL23'
                     see 'auto'.

              'SSL3' Require SSLv3 exactly. SSLv3 is broken, not  supported  on
                     all  systems, avoid it if possible.  This will make fetch-
                     mail negotiate SSLv3 only, and is  the  only  way  besides
                     'SSL3+' to have fetchmail 6.4.0 or newer permit SSLv3.

              'SSL3+'
                     same as 'auto', but permit SSLv3 as well. This is the only
                     way besides 'SSL3' to have fetchmail 6.4.0 or newer permit
                     SSLv3.

              'TLS1' Require  TLSv1.  This does not negotiate TLSv1.1 or newer,
                     and is discouraged. Replace by  TLS1+  unless  the  latter
                     chokes your server.

              'TLS1+'
                     Since v6.4.0. See 'auto'.

              'TLS1.1'
                     Since v6.4.0. Require TLS v1.1 exactly.

              'TLS1.1+'
                     Since  v6.4.0.  Require  TLS.  Auto-negotiate  TLSv1.1  or
                     newer.

              'TLS1.2'
                     Since v6.4.0. Require TLS v1.2 exactly.

              'TLS1.3'
                     Since v6.4.0. Require TLS v1.3 exactly.

              'TLS1.3+'
                     Since  v6.4.0.  Require  TLS.  Auto-negotiate  TLSv1.3  or
                     newer.

              Unrecognized parameters
                     are treated the same as 'auto'.

              NOTE:  you  should hardly ever need to use anything other than ''
              (to force an unencrypted connection) or 'auto' (to enforce TLS).

       --sslcertck
              (Keyword: sslcertck, default enabled since v6.4.0)
              --sslcertck causes fetchmail to require that SSL/TLS be used  and
              disconnect unless it can successfully negotiate SSL or TLS, or if
              it  cannot  successfully  verify and validate the certificate and
              follow it to a trust anchor (or trusted  root  certificate).  The
              trust  anchors  are  given as a set of local trusted certificates
              (see the sslcertfile and sslcertpath options). If the server cer-
              tificate cannot be obtained or  is  not  signed  by  one  of  the
              trusted ones (directly or indirectly), fetchmail will disconnect,
              regardless of the sslfingerprint option.

       --nosslcertck
              (Keyword: no sslcertck, only in v6.4.X)
              The  opposite  of  --sslcertck,  this is a discouraged option. It
              permits fetchmail to continue connecting even if the server  cer-
              tificate failed the verification checks.  Should only be used to-
              gether with --sslfingerprint.

       --sslcertfile <file>
              (Keyword: sslcertfile, since v6.3.17)
              Sets  the file fetchmail uses to look up local certificates.  The
              default is empty.  This can be given in addition to --sslcertpath
              below,  and  certificates  specified  in  --sslcertfile  will  be
              processed  before those in --sslcertpath.  The option can be used
              in addition to --sslcertpath.

              The file is a text file. It contains the concatenation of trusted
              CA certificates in PEM format.

              Note that using this option will suppress loading the default SSL
              trusted CA certificates file unless you set the environment vari-
              able  FETCHMAIL_INCLUDE_DEFAULT_X509_CA_CERTS  to   a   non-empty
              value.

       --sslcertpath <directory>
              (Keyword: sslcertpath)
              Sets  the directory fetchmail uses to look up local certificates.
              The default is your OpenSSL default directory. The directory must
              be hashed the way OpenSSL expects it - every time you add or mod-
              ify a certificate in the directory, you need to use the  c_rehash
              tool  (which  comes  with  OpenSSL  in the tools/ sub-directory).
              Also, after OpenSSL upgrades, you may need to run c_rehash.

              This can be given in addition to --sslcertfile above,  which  see
              for precedence rules.

              Note  that using this option will suppress adding the default SSL
              trusted CA certificates directory unless you set the  environment
              variable  FETCHMAIL_INCLUDE_DEFAULT_X509_CA_CERTS  to a non-empty
              value.

       --sslcommonname <common name>
              (Keyword: sslcommonname; since v6.3.9)
              Use of this option is discouraged. Before using it,  contact  the
              administrator  of  your  upstream server and ask for a proper SSL
              certificate to be used. If that cannot be attained,  this  option
              can  be  used to specify the name (CommonName) that fetchmail ex-
              pects on the server certificate.  A correctly  configured  server
              will  have  this set to the host name by which it is reached, and
              by default fetchmail will expect as much. Use  this  option  when
              the  CommonName  is set to some other value, to avoid the "Server
              CommonName mismatch" warning, and only if the  upstream  server's
              operator cannot be made to use proper certificates.

       --sslfingerprint <fingerprint>
              (Keyword: sslfingerprint)
              Specify  the  fingerprint  of  the server key (an MD5 hash of the
              key) in hexadecimal notation with colons separating groups of two
              digits. The letter hex digits must be in upper case. This is  the
              format  that fetchmail uses to report the fingerprint when an SSL
              connection is established. When this is specified, fetchmail will
              compare the server key fingerprint with the given  one,  and  the
              connection  will  fail  if  they  do not match, regardless of the
              sslcertck setting. The connection will  also  fail  if  fetchmail
              cannot  obtain  an  SSL certificate from the server.  This can be
              used to prevent man-in-the-middle attacks, but the  finger  print
              from  the server must be obtained or verified over a secure chan-
              nel, and certainly not over the  same  Internet  connection  that
              fetchmail would use.

              Using  this option will prevent printing certificate verification
              errors as long as --nosslcertck is in effect.

              To obtain the fingerprint of a certificate  stored  in  the  file
              cert.pem, try:

                   openssl x509 -in cert.pem -noout -md5 -fingerprint

              For details, see x509(1ssl).

   Delivery Control Options
       -S <hosts> | --smtphost <hosts>
              (Keyword: smtp[host])
              Specify a hunt list of hosts to forward mail to (one or more host
              names, comma-separated). Hosts are tried in list order; the first
              one that is up becomes the forwarding target for the current run.
              If  this  option is not specified, 'localhost' is used as the de-
              fault.  Each host name may have a port number following the  host
              name.   The  port  number  is  separated  from the host name by a
              slash; the default port is "smtp".  If you  specify  an  absolute
              path  name  (beginning  with  a /), it will be interpreted as the
              name of a UNIX socket accepting LMTP connections (such as is sup-
              ported by the Cyrus IMAP daemon) Example:

                   --smtphost server1,server2/2525,server3,/var/imap/socket/lmtp

              This option can be used with ODMR, and will make fetchmail a  re-
              lay between the ODMR server and SMTP or LMTP receiver.

              WARNING: if you use address numeric IP addresses here, be sure to
              use  --smtpaddress  or  --smtpname  (either  of which see) with a
              valid SMTP address literal!

       --fetchdomains <hosts>
              (Keyword: fetchdomains)
              In ETRN or ODMR mode, this option specifies the list  of  domains
              the  server  should  ship  mail for once the connection is turned
              around.  The default is the FQDN of the  machine  running  fetch-
              mail.

       -D <domain> | --smtpaddress <domain>
              (Keyword: smtpaddress)
              Specify  the  domain to be appended to addresses in RCPT TO lines
              shipped to SMTP. When this is not specified, the name of the SMTP
              server (as specified by --smtphost) is  used  for  SMTP/LMTP  and
              'localhost' is used for UNIX socket/BSMTP.

              NOTE:  if  you  intend to use numeric addresses, or so-called ad-
              dress literals per the SMTP standard, write them in  proper  SMTP
              syntax, for instance --smtpaddress "[192.0.2.6]" or --smtpaddress
              "[IPv6:2001:DB8::6]".

       --smtpname <user@domain>
              (Keyword: smtpname)
              Specify the domain and user to be put in RCPT TO lines shipped to
              SMTP.   The  default  user is the current local user. Please also
              see the NOTE about --smtpaddress and address literals above.

       -Z <nnn> | --antispam <nnn[, nnn]...>
              (Keyword: antispam)
              Specifies the list of numeric SMTP errors that are to  be  inter-
              preted as a spam-block response from the listener.  A value of -1
              disables this option.  For the command-line option, the list val-
              ues  should  be  comma-separated.   Note that the antispam values
              only apply to "MAIL FROM" responses in  the  SMTP/LMTP  dialogue,
              but  several  MTAs  (Postfix in its default configuration, qmail)
              defer the anti-spam response code until after the RCPT TO.  --an-
              tispam  does  not  work in these circumstances.  Also see --soft-
              bounce (default) and its inverse.

       -m <command> | --mda <command>
              (Keyword: mda)
              This option lets fetchmail use a Message or Local Delivery  Agent
              (MDA or LDA) directly, rather than forward via SMTP or LMTP.

              To  avoid  losing mail, use this option only with MDAs like mail-
              drop or MTAs like sendmail that exit with  a  nonzero  status  on
              disk-full  and  other  delivery  errors; the nonzero status tells
              fetchmail that delivery failed and prevents the message from  be-
              ing deleted on the server.

              If fetchmail is running as root, it sets its user id while deliv-
              ering  mail through an MDA as follows:  First, the FETCHMAILUSER,
              LOGNAME, and USER environment variables are checked in  this  or-
              der.  The  value  of the first variable from his list that is de-
              fined (even if it is empty!) is looked  up  in  the  system  user
              database. If none of the variables is defined, fetchmail will use
              the real user id it was started with. If one of the variables was
              defined,  but  the user stated there is not found, fetchmail con-
              tinues running as root, without checking remaining  variables  on
              the  list.   Practically, this means that if you run fetchmail as
              root (not recommended), it is most useful to  define  the  FETCH-
              MAILUSER environment variable to set the user that the MDA should
              run  as.  Some  MDAs (such as maildrop) are designed to be setuid
              root and setuid to the recipient's user id, so you  do  not  lose
              functionality  this  way  even when running fetchmail as unprivi-
              leged user.  Check the MDA's manual for details.

              Some possible MDAs are "/usr/sbin/sendmail -i -f %F -- %T" (Note:
              some several older or vendor sendmail versions mistake -- for  an
              address,  rather  than an indicator to mark the end of the option
              arguments), "/usr/bin/deliver"  and  "/usr/bin/maildrop  -d  %T".
              Local  delivery  addresses  will be inserted into the MDA command
              wherever you place a %T; the mail message's From address will  be
              inserted where you place an %F.

              Do NOT enclose the %F or %T string in single quotes!  For both %T
              and  %F,  fetchmail  encloses the addresses in single quotes ('),
              after removing any single quotes they may contain, before the MDA
              command is passed to the shell.

              Do NOT use an MDA invocation that dispatches on the  contents  of
              To/Cc/Bcc,  like "sendmail -i -t" or "qmail-inject", it will cre-
              ate mail loops and bring the just wrath of many postmasters  down
              upon  your  head.  This is one of the most frequent configuration
              errors!

              Also, do not try to combine multidrop mode with an  MDA  such  as
              maildrop  that  can only accept one address, unless your upstream
              stores one copy of the message per recipient and  transports  the
              envelope recipient in a header; you will lose mail.

              The  well-known  procmail(1)  package  is  very hard to configure
              properly, it has a very nasty "fall through to the next rule" be-
              havior on delivery errors (even temporary ones, such  as  out  of
              disk  space  if  another  user's  mail  daemon copies the mailbox
              around to purge old messages), so your mail will end  up  in  the
              wrong  mailbox sooner or later. The proper procmail configuration
              is outside the scope of this document. Using maildrop(1) is  usu-
              ally  much  easier, and many users find the filter syntax used by
              maildrop easier to understand.

              Finally, we strongly advise that you  do  not  use  qmail-inject.
              The command line interface is non-standard without providing ben-
              efits  for typical use, and fetchmail makes no attempts to accom-
              modate qmail-inject's  deviations  from  the  standard.  Some  of
              qmail-inject's  command-line and environment options are actually
              dangerous and can cause broken  threads,  non-detected  duplicate
              messages and forwarding loops.

       --lmtp (Keyword: lmtp)
              Cause  delivery  via LMTP (Local Mail Transfer Protocol).  A ser-
              vice host and port must be explicitly specified on each  host  in
              the  smtphost  hunt  list (see above) if this option is selected;
              the default port 25 will (in accordance with RFC 2033) not be ac-
              cepted.

       --bsmtp <filename>
              (Keyword: bsmtp)
              Append fetched mail to a BSMTP file.  This  simply  contains  the
              SMTP  commands that would normally be generated by fetchmail when
              passing mail to an SMTP listener daemon.

              An argument of '-' causes the SMTP batch to be written  to  stan-
              dard  output,  which is of limited use: this only makes sense for
              debugging, because fetchmail's regular output is interspersed  on
              the same channel, so this is not suitable for mail delivery. This
              special mode may be removed in a later release.

              Note  that  fetchmail's  reconstruction  of MAIL FROM and RCPT TO
              lines is not guaranteed correct; the caveats discussed under  THE
              USE  AND ABUSE OF MULTIDROP MAILBOXES below apply.  This mode has
              precedence before --mda and SMTP/LMTP.

       --bad-header {reject|accept}
              (Keyword: bad-header; since v6.3.15)
              Specify how fetchmail is supposed  to  treat  messages  with  bad
              headers,  i.e., headers with bad syntax. Traditionally, fetchmail
              has rejected such messages, but some distributors modified fetch-
              mail to accept them. You can now configure fetchmail's  behaviour
              per server.

   Resource Limit Control Options
       -l <maxbytes> | --limit <maxbytes>
              (Keyword: limit)
              Takes  a  maximum octet size argument, where 0 is the default and
              also the special value designating "no limit".  If nonzero,  mes-
              sages  larger than this size will not be fetched and will be left
              on the server (in foreground sessions, the progress messages will
              note that they are "oversized").  If the fetch  protocol  permits
              (in  particular,  under IMAP or POP3 without the fetchall option)
              the message will not be marked seen.

              An explicit --limit of 0 overrides any limits  set  in  your  run
              control  file.  This  option  is  intended  for  those needing to
              strictly control fetch time due to expensive and  variable  phone
              rates.

              Combined  with  --limitflush,  it can be used to delete oversized
              messages waiting on a server.  In daemon mode, oversize notifica-
              tions are mailed to the calling user (see the --warnings option).
              This option does not work with ETRN or ODMR.

       -w <interval> | --warnings <interval>
              (Keyword: warnings)
              Takes an interval in seconds.  When you  call  fetchmail  with  a
              'limit'  option  in  daemon  mode,  this controls the interval at
              which warnings about oversized messages are mailed to the calling
              user (or the user specified by  the  'postmaster'  option).   One
              such  notification  is always mailed at the end of the first poll
              that the oversized message is detected.  Thereafter, re-notifica-
              tion is suppressed until after the warning interval  elapses  (it
              will take place at the end of the first following poll).

       -b <count> | --batchlimit <count>
              (Keyword: batchlimit)
              Specify the maximum number of messages that will be shipped to an
              SMTP listener before the connection is deliberately torn down and
              rebuilt  (defaults to 0, meaning no limit).  An explicit --batch-
              limit of 0 overrides any limits set in  your  run  control  file.
              While  sendmail(8) normally initiates delivery of a message imme-
              diately after receiving the message terminator, some SMTP listen-
              ers are not so prompt.  MTAs like smail(8) may wait till the  de-
              livery socket is shut down to deliver.  This may produce annoying
              delays  when fetchmail is processing very large batches.  Setting
              the batch limit to some nonzero size will prevent  these  delays.
              This option does not work with ETRN or ODMR.

       -B <number> | --fetchlimit <number>
              (Keyword: fetchlimit)
              Limit  the  number  of messages accepted from a given server in a
              single poll.  By default there is no limit. An explicit  --fetch-
              limit  of  0  overrides  any limits set in your run control file.
              This option does not work with ETRN or ODMR.

       --fetchsizelimit <number>
              (Keyword: fetchsizelimit)
              Limit the number of sizes  of  messages  accepted  from  a  given
              server  in a single transaction.  This option is useful in reduc-
              ing the delay in downloading the first mail when  there  are  too
              many mails in the mailbox.  By default, the limit is 100.  If set
              to  0,  sizes  of all messages are downloaded at the start.  This
              option does not work with ETRN or ODMR.  For POP3, the only valid
              non-zero value is 1.

       --fastuidl <number>
              (Keyword: fastuidl)
              Do a binary instead of linear search for the  first  unseen  UID.
              Binary  search  avoids  downloading  the  UIDs of all mails. This
              saves time (especially in daemon mode) where downloading the same
              set of UIDs in each poll is a waste of bandwidth. The number  'n'
              indicates  how  rarely  a linear search should be done. In daemon
              mode, linear search is used once followed by binary  searches  in
              'n-1'  polls  if  'n'  is greater than 1; binary search is always
              used if 'n' is 1; linear search is always used if 'n'  is  0.  In
              non-daemon  mode,  binary  search  is used if 'n' is 1; otherwise
              linear search is used. The default value of 'n' is 4.   This  op-
              tion works with POP3 only.

       -e <count> | --expunge <count>
              (Keyword: expunge)
              Arrange  for  deletions  to be made final after a given number of
              messages.  Under POP2 or POP3, fetchmail  cannot  make  deletions
              final  without  sending  QUIT and ending the session -- with this
              option on, fetchmail will break a  long  mail  retrieval  session
              into  multiple sub-sessions, sending QUIT after each sub-session.
              This is a good defense against line drops on POP3 servers.  Under
              IMAP, fetchmail normally issues an  EXPUNGE  command  after  each
              deletion  in  order to force the deletion to be done immediately.
              This is safest when your connection to the server  is  flaky  and
              expensive,  as  it  avoids re-sending duplicate mail after a line
              hit.  However, on large mailboxes the overhead of re-indexing af-
              ter every message can slam the server pretty  hard,  so  if  your
              connection is reliable it is good to do expunges less frequently.
              Also  note that some servers enforce a delay of a few seconds af-
              ter each quit, so fetchmail may not be able to get back in  imme-
              diately  after  an  expunge  -- you may see "lock busy" errors if
              this happens. If you specify this option  to  an  integer  N,  it
              tells  fetchmail  to only issue expunges on every Nth delete.  An
              argument of zero suppresses expunges entirely (so no expunges  at
              all  will  be  done  until the end of run).  This option does not
              work with ETRN or ODMR.

   Authentication Options
       -u <name> | --user <name> | --username <name>
              (Keyword: user[name])
              Specifies the user identification to be used when logging  in  to
              the  mail  server.   The  appropriate user identification is both
              server and user-dependent.  The default is your login name on the
              client machine that is running fetchmail.  See  USER  AUTHENTICA-
              TION below for a complete description.

       -I <specification> | --interface <specification>
              (Keyword: interface)
              Require  that  a  specific interface device be up and have a spe-
              cific local or remote IPv4 (IPv6 is not supported by this  option
              yet)  address (or range) before polling.  Frequently fetchmail is
              used over a transient point-to-point TCP/IP link established  di-
              rectly  to  a  mail server via SLIP or PPP.  That is a relatively
              secure channel.  But when other TCP/IP routes to the mail  server
              exist  (e.g.,  when  the  link is connected to an alternate ISP),
              your username and password may be vulnerable to  snooping  (espe-
              cially  when daemon mode automatically polls for mail, shipping a
              clear password over the net at predictable intervals).  The --in-
              terface option may be used to prevent this.  When  the  specified
              link  is  not  up  or  is not connected to a matching IP address,
              polling will be skipped.  The format is:

                   interface/iii.iii.iii.iii[/mmm.mmm.mmm.mmm]

              The field before the first slash is  the  interface  name  (i.e.,
              sl0,  ppp0  etc.).   The field before the second slash is the ac-
              ceptable IP address.  The field after the second slash is a  mask
              which specifies a range of IP addresses to accept.  If no mask is
              present  255.255.255.255 is assumed (i.e., an exact match).  This
              option is currently  only  supported  under  Linux  and  FreeBSD.
              Please see the monitor section for below for FreeBSD specific in-
              formation.

              Note that this option may be removed from a future fetchmail ver-
              sion.

       -M <interface> | --monitor <interface>
              (Keyword: monitor)
              Daemon  mode  can  cause  transient links which are automatically
              taken down after a period of inactivity (e.g., PPP links) to  re-
              main up indefinitely.  This option identifies a system TCP/IP in-
              terface  to be monitored for activity.  After each poll interval,
              if the link is up but no other activity has occurred on the link,
              then the poll will be skipped.  However, when fetchmail is  woken
              up  by  a  signal, the monitor check is skipped and the poll goes
              through unconditionally.  This option is currently only supported
              under Linux and FreeBSD.  For the monitor and  interface  options
              to  work  for  non root users under FreeBSD, the fetchmail binary
              must be installed setgid kmem.  This would be  a  security  hole,
              but fetchmail runs with the effective GID set to that of the kmem
              group only when interface data is being collected.

              Note that this option may be removed from a future fetchmail ver-
              sion.

       --auth <type>
              (Keyword: auth[enticate])
              This  option  permits  you to specify an authentication type (see
              USER AUTHENTICATION below for details).  The possible values  are
              any, password, kerberos_v5, kerberos (or, for excruciating exact-
              ness,  kerberos_v4),  gssapi,  cram-md5, otp, ntlm, msn (only for
              POP3), external (only IMAP) and ssh.  When any (the  default)  is
              specified,  fetchmail  tries  first methods that do not require a
              password (EXTERNAL, GSSAPI,  KERBEROS IV,  KERBEROS 5);  then  it
              looks  for methods that mask your password (CRAM-MD5, NTLM, X-OTP
              - note that MSN is only supported for POP3, but not auto-probed);
              and only if the server does not support any of those will it ship
              your password unencrypted.  Other values may  be  used  to  force
              various authentication methods: ssh suppresses authentication and
              is thus useful for IMAP PREAUTH (if you are using a secure --plu-
              gin,  for  instance, a properly configured ssh, you may also need
              to set --sslproto '' or, in the rcfile, sslproto '', in order  to
              avoid  fetchmail  negotiating  STARTTLS over SSH).  external sup-
              presses authentication and is thus useful for IMAP EXTERNAL.  Any
              value other than password, cram-md5, ntlm, msn or otp  suppresses
              fetchmail's  normal inquiry for a password.  Specify ssh when you
              are using an end-to-end secure connection such as an  ssh  tunnel
              (in  this  case you may also want to specify --sslproto '', which
              see); specify external when you use TLS with  client  authentica-
              tion  and specify gssapi or kerberos_v4 if you are using a proto-
              col variant that employs GSSAPI or K4.   Choosing  KPOP  protocol
              automatically  selects Kerberos authentication.  This option does
              not work with ETRN.   GSSAPI  service  names  are  in  line  with
              RFC-2743  and  IANA registrations, see ]8;;https://www.iana.org/assignments/gssapi-service-names/\Generic  Security  Service
              Application  Program  Interface (GSS-    API)/Kerberos/Simple Au-
              thentication  and  Security  Layer  (SASL) Service Names]8;;\.

   Miscellaneous Options
       -f <pathname> | --fetchmailrc <pathname>
              Specify  a  non-default  name  for the ~/.fetchmailrc run control
              file.  The pathname argument must be either "-" (a  single  dash,
              meaning to read the configuration from standard input) or a file-
              name.  Unless the --version option is also on, a named file argu-
              ment  must  have permissions no more open than 0700 (u=rwx,g=,o=)
              or else be /dev/null.

       -i <pathname> | --idfile <pathname>
              (Keyword: idfile)
              Specify an alternate name for the .fetchids  file  used  to  save
              message  UIDs.  NOTE:  since fetchmail 6.3.0, write access to the
              directory containing the idfile is required, as fetchmail  writes
              a temporary file and renames it into the place of the real idfile
              only  if  the  temporary file has been written successfully. This
              avoids the truncation of idfiles when running out of disk space.

       --pidfile <pathname>
              (Keyword: pidfile; since fetchmail v6.3.4)
              Override the default location of the PID file that is used  as  a
              lock  file.   Default:  see  "ENVIRONMENT"  below. Note that many
              places in the code and documentation, the  term  "lock  file"  is
              used.  This file contains the process ID of the running fetchmail
              on the first line and potentially the daemon interval on a second
              line.

       -n | --norewrite
              (Keyword: no rewrite)
              Normally,  fetchmail edits RFC-822 address headers (To, From, Cc,
              Bcc, and Reply-To) in fetched mail so that any mail IDs local  to
              the  server are expanded to full addresses (@ and the mail server
              host name are appended).  This enables replies on the  client  to
              get  addressed  correctly (otherwise your mailer might think they
              should be addressed to local users on the client machine!).  This
              option disables the rewrite.  (This option is provided to  pacify
              people who are paranoid about having an MTA edit mail headers and
              want  to know they can prevent it, but it is generally not a good
              idea to actually turn off rewrite.)  When using ETRN or ODMR, the
              rewrite option is ineffective.

       -E <line> | --envelope <line>
              (Keyword: envelope; Multidrop only)
              In the configuration file, an enhanced syntax is used:
              envelope [<count>] <line>

              This option changes the header fetchmail  assumes  will  carry  a
              copy  of  the mail's envelope address.  Normally this is 'X-Enve-
              lope-To'.  Other typically found headers to carry envelope infor-
              mation are 'X-Original-To' and 'Delivered-To'.  Now, since  these
              headers are not standardized, practice varies. See the discussion
              of  multidrop  address handling below.  As a special case, 'enve-
              lope  "Received"'  enables  parsing  of  sendmail-style  Received
              lines.   This  is  the default, but discouraged because it is not
              fully reliable.

              Note that fetchmail expects the Received-line to be in a specific
              format: It must contain "by host for address",  where  host  must
              match  one of the mail server names that fetchmail recognizes for
              the account in question.

              The optional count argument (only available in the  configuration
              file)  determines how many header lines of this kind are skipped.
              A count of 1 means: skip the first, take the second. A count of 2
              means: skip the first and second, take the third, and so on.

       -Q <prefix> | --qvirtual <prefix>
              (Keyword: qvirtual; Multidrop only)
              The string prefix assigned to this option will  be  removed  from
              the user name found in the header specified with the envelope op-
              tion  (before  doing multidrop name mapping or localdomain check-
              ing, if either is applicable). This option is useful if  you  are
              using fetchmail to collect the mail for an entire domain and your
              ISP  (or  your mail redirection provider) is using qmail.  One of
              the basic features of qmail is the Delivered-To: message  header.
              Whenever  qmail delivers a message to a local mailbox it puts the
              username and host name of the envelope recipient  on  this  line.
              The  major  reason  for this is to prevent mail loops.  To set up
              qmail to batch mail for a disconnected site the ISP-mailhost will
              have normally put that site in its 'Virtualhosts' control file so
              it will add a prefix to all mail addresses for  this  site.  This
              results  in mail sent to 'username@userhost.userdom.dom.com' hav-
              ing a Delivered-To: line of the form:

              Delivered-To: mbox-userstr-username@userhost.example.com

              The ISP can make the 'mbox-userstr-' prefix anything they  choose
              but a string matching the user host name is likely.  By using the
              option  'envelope  Delivered-To:' you can make fetchmail reliably
              identify the original envelope recipient, but you have  to  strip
              the  'mbox-userstr-' prefix to deliver to the correct user.  This
              is what this option is for.

       --configdump
              Parse the ~/.fetchmailrc file, interpret any command-line options
              specified, and dump a configuration report  to  standard  output.
              The  configuration  report  is a data structure assignment in the
              language Python.  This option is meant to be used with an  inter-
              active  ~/.fetchmailrc  editor  like  fetchmailconf,  written  in
              Python.

       -y | --yydebug
              Enables parser debugging, this option is meant to be used by  de-
              velopers only.

   Removed Options
       -T | --netsec
              Removed  before version 6.3.0, the required underlying inet6_apps
              library had been discontinued and is no longer available.

USER AUTHENTICATION AND ENCRYPTION
       All modes except ETRN  require  authentication  of  the  client  to  the
       server.   Normal  user authentication in fetchmail is very much like the
       authentication mechanism of ftp(1).  The correct  user-id  and  password
       depend upon the underlying security system at the mail server.

       If  the mail server is a Unix machine on which you have an ordinary user
       account, your regular login name and password are used  with  fetchmail.
       If  you  use  the  same login name on both the server and the client ma-
       chines, you needn't worry about specifying a user-id with the -u  option
       --  the default behavior is to use your login name on the client machine
       as the user-id on the server machine.  If you use a different login name
       on the server machine, specify that  login  name  with  the  -u  option.
       E.g., if your login name is 'jsmith' on a machine named 'mailgrunt', you
       would start fetchmail as follows:

              fetchmail -u jsmith mailgrunt

       The  default behavior of fetchmail is to prompt you for your mail server
       password before the connection is established.  This is the  safest  way
       to use fetchmail and ensures that your password will not be compromised.
       You may also specify your password in your ~/.fetchmailrc file.  This is
       convenient when using fetchmail in daemon mode or with scripts.

   Using netrc files
       If  you do not specify a password, and fetchmail cannot extract one from
       your ~/.fetchmailrc file, it will look for a ~/.netrc file in your  home
       directory  before requesting one interactively; if an entry matching the
       mail server is found in that file, the password will be used.  Fetchmail
       first looks for a match on poll name; if it finds none, it checks for  a
       match on via name.  See the ftp(1) man page for details of the syntax of
       the  ~/.netrc  file.   To  show a practical example, a .netrc might look
       like this:

              machine hermes.example.org
              login joe
              password topsecret

       You can repeat this block with different user information if you need to
       provide more than one password.

       This feature may allow you to avoid duplicating password information  in
       more than one file.

       On mail servers that do not provide ordinary user accounts, your user-id
       and  password  are usually assigned by the server administrator when you
       apply for a mailbox on the server.  Contact your server administrator if
       you do not know the correct user-id and password for  your  mailbox  ac-
       count.

   Secure Socket Layers (SSL) and Transport Layer Security (TLS)
       All  retrieval  protocols can use SSL or TLS wrapping for the transport.
       Additionally, POP3 and IMAP retrieval  can  also  negotiate  SSL/TLS  by
       means of STARTTLS (or STLS).

       You can access TLS-encrypted services by specifying the options starting
       with --ssl, such as --ssl, --sslproto, --sslcertck, and others.  You can
       also  do  this  using the corresponding user options in the .fetchmailrc
       file.  Some services, such as POP3 and IMAP, have different  well  known
       ports  defined for the SSL encrypted services.  The encrypted ports will
       be selected automatically when SSL is enabled and no  explicit  port  is
       specified.   Also, the --sslcertck command line or sslcertck run control
       file  option  should  be  used to force strict certificate checking with
       older fetchmail versions - see below.

       If TLS or SSL is not configured, fetchmail will usually still try to use
       STARTTLS somewhat opportunistically. In practice, is it still  mandatory
       because  --sslcertck is a default setting and implicitly requires START-
       TLS.

       STARTTLS can be enforced by using --sslproto auto and defeated by  using
       --sslproto  ''.   STARTTLS  connections  use  the same port as the unen-
       crypted version of the protocol and negotiate TLS via  special  command.
       The --sslcertck command line or sslcertck run control file option should
       be used to force strict certificate checking - see below.

       --sslcertck  is  recommended: When connecting to an SSL or TLS encrypted
       server, the server presents a certificate to the client for  validation.
       The  certificate  is  checked to verify that the common name in the cer-
       tificate matches the name of the server being contacted and that the ef-
       fective and expiration dates in the certificate indicate that it is cur-
       rently valid.  If any  of  these  checks  fail,  a  warning  message  is
       printed,  but the connection continues.  The server certificate does not
       need to be signed by any specific Certifying  Authority  and  may  be  a
       "self-signed"  certificate.  If  the  --sslcertck command line option or
       sslcertck run control file option is used, fetchmail will instead  abort
       if any of these checks fail, because it must assume that there is a man-
       in-the-middle  attack  in this scenario, hence fetchmail must not expose
       clear-text passwords. Use of the  sslcertck  or  --sslcertck  option  is
       therefore advised; it has become the default in fetchmail 6.4.0.

       Some  SSL  encrypted  servers  may request a client side certificate.  A
       client side public SSL certificate and private SSL key may be specified.
       If requested by the server, the client certificate is sent to the server
       for validation.  Some servers may require a valid client certificate and
       may refuse connections if a certificate is not provided or if  the  cer-
       tificate  is  not  valid.  Some servers may require client side certifi-
       cates be signed by a recognized Certifying Authority.   The  format  for
       the key files and the certificate files is that required by the underly-
       ing SSL libraries (OpenSSL in the general case).

       A  word  of  care about the use of SSL: While above mentioned setup with
       self-signed server certificates retrieved over the wires can protect you
       from a passive eavesdropper, it does not  help  against  an  active  at-
       tacker.  It  is  clearly  an  improvement  over sending the passwords in
       clear, but you should be aware that a man-in-the-middle attack is  triv-
       ially possible (in particular with tools such as ]8;;https://monkey.org/~dugsong/dsniff/\dsniff]8;;\).  Use of strict
       certificate checking with a certification authority recognized by server
       and client, or perhaps of an SSH tunnel (see below for some examples) is
       preferable  if you care seriously about the security of your mailbox and
       passwords.

POP3 VARIANTS
       Early versions of POP3 (RFC1081, RFC1225) supported a crude form of  in-
       dependent authentication using the .rhosts file on the mail server side.
       Under  this  RPOP  variant, a fixed per-user ID equivalent to a password
       was sent in clear over a link to a reserved port, with the command  RPOP
       rather than PASS to alert the server that it should do special checking.
       RPOP  is supported by fetchmail (you can specify 'protocol RPOP' to have
       the program send 'RPOP' rather than 'PASS') but its use is strongly dis-
       couraged, and support will be removed from a future  fetchmail  version.
       This facility was vulnerable to spoofing and was withdrawn in RFC1460.

       RFC1460  introduced  APOP  authentication.  In this variant of POP3, you
       register an APOP password on your server host (on some servers, the pro-
       gram to do this is called popauth(8)).  You put  the  same  password  in
       your  ~/.fetchmailrc file.  Each time fetchmail logs in, it sends an MD5
       hash of your password and the server greeting time to the server,  which
       can verify it by checking its authorization database.

       Note that APOP is no longer considered resistant against man-in-the-mid-
       dle attacks.

   RETR or TOP
       fetchmail makes some efforts to make the server believe messages had not
       been  retrieved,  by  using the TOP command with a large number of lines
       when possible.  TOP is a command that retrieves the full  header  and  a
       fetchmail-specified  amount  of body lines. It is optional and therefore
       not implemented by all servers, and some are known to implement  it  im-
       properly.  On many servers however, the RETR command which retrieves the
       full message with header and body, sets the "seen" flag  (for  instance,
       in a web interface), whereas the TOP command does not do that.

       fetchmail will always use the RETR command if "fetchall" is set.  fetch-
       mail  will  also use the RETR command if "keep" is set and "uidl" is un-
       set.  Finally, fetchmail  will  use  the  RETR  command  on  Maillennium
       POP3/PROXY servers (used by Comcast) to avoid a deliberate TOP misinter-
       pretation in this server that causes message corruption.

       In  all  other  cases,  fetchmail will use the TOP command. This implies
       that in "keep" setups, "uidl" must be set if "TOP" is desired.

       Note that this description is true for the current version of fetchmail,
       but the behavior may change in future versions. In particular, fetchmail
       may prefer the RETR command because the TOP command causes much grief on
       some servers and is only optional.

ALTERNATE AUTHENTICATION FORMS/METHODS
       If your fetchmail was built with Kerberos support and you  specify  Ker-
       beros  authentication (either with --auth or the .fetchmailrc option au-
       thenticate kerberos_v4) it will try to get a Kerberos  ticket  from  the
       mail server at the start of each query.  Note: if either the pollname or
       via  name  is  'hesiod', fetchmail will try to use Hesiod to look up the
       mail server.

       If you use POP3 or IMAP with GSSAPI authentication, fetchmail  will  ex-
       pect  the  server to have RFC1731- or RFC1734-conforming GSSAPI capabil-
       ity, and will use it.  Currently this has only  been  tested  over  Ker-
       beros 5,  so  you are expected to already have a ticket-granting ticket.
       You may pass a username different from your  principal  name  using  the
       standard --user command or by the .fetchmailrc option user.

       If  your  IMAP daemon returns the PREAUTH response in its greeting line,
       fetchmail will notice this and  skip  the  normal  authentication  step.
       This  can  be useful, e.g., if you start imapd explicitly using ssh.  In
       this case you can declare the authentication value 'ssh'  on  that  site
       entry  to  stop .fetchmail from asking you for a password when it starts
       up.

       If you use client authentication with TLS1 and your IMAP daemon  returns
       the  AUTH=EXTERNAL response, fetchmail will notice this and will use the
       authentication shortcut and will not send the passphrase. In  this  case
       you can declare the authentication value 'external'
        on  that  site to stop fetchmail from asking you for a password when it
       starts up.

       If you are using POP3, and the server issues a  one-time-password  chal-
       lenge  conforming to RFC1938, fetchmail will use your password as a pass
       phrase to generate the required response. This  avoids  sending  secrets
       over the net unencrypted.

       Compuserve's RPA authentication is supported. If you compile in the sup-
       port,  fetchmail  will  try to perform an RPA pass-phrase authentication
       instead of sending over the password unencrypted if  it  detects  "@com-
       puserve.com" in the host name.

       If  you  are  using  IMAP,  Microsoft's NTLM authentication (used by Mi-
       crosoft Exchange) is supported. If you compile in the support, fetchmail
       will try to perform an NTLM authentication (instead of sending over  the
       password unencrypted) whenever the server returns AUTH=NTLM in its capa-
       bility  response.  Specify a user option value that looks like 'user@do-
       main': the part to the left of the @ will be passed as the username  and
       the part to the right as the NTLM domain.

   ESMTP AUTH
       fetchmail also supports authentication to the ESMTP server on the client
       side  according to RFC 2554.  You can specify a name/password pair to be
       used with the keywords 'esmtpname' and 'esmtppassword'; the  former  de-
       faults to the username of the calling user.

DAEMON MODE
   Introducing the daemon mode
       In  daemon mode, fetchmail puts itself into the background and runs for-
       ever, querying each specified host and then sleeping for a given polling
       interval.

   Starting the daemon mode
       There are several ways to make fetchmail work in  daemon  mode.  On  the
       command line, --daemon <interval> or -d <interval> option runs fetchmail
       in  daemon mode.  You must specify a numeric argument which is a polling
       interval (time to wait after completing a whole poll cycle with the last
       server and before starting the next poll cycle with the first server) in
       seconds.

       Example: simply invoking

              fetchmail -d 900

       will, therefore, poll all the hosts  described  in  your  ~/.fetchmailrc
       file  (except those explicitly excluded with the 'skip' verb) a bit less
       often than once every 15 minutes (exactly: 15 minutes +  time  that  the
       poll takes).

       It  is  also  possible  to set a polling interval in your ~/.fetchmailrc
       file by saying 'set daemon <interval>', where <interval> is  an  integer
       number  of seconds.  If you do this, fetchmail will always start in dae-
       mon mode unless you override it with the command-line option --daemon  0
       or -d0.

       Only one daemon process is permitted per user; in daemon mode, fetchmail
       sets  up a per-user lock file to guarantee this.  (You can however cheat
       and set the FETCHMAILHOME environment variable to overcome this setting,
       but in that case, it is your responsibility to make  sure  you  are  not
       polling the same server with two processes at the same time.)

   Awakening the background daemon
       Normally,  calling  fetchmail  with  a  daemon in the background sends a
       wake-up signal to the daemon and quits without  output.  The  background
       daemon then starts its next poll cycle immediately.  The wake-up signal,
       SIGUSR1,  can  also be sent manually. The wake-up action also clears any
       'wedged' flags indicating that connections have wedged due to failed au-
       thentication or multiple timeouts.

   Terminating the background daemon
       The option -q or --quit will kill a running daemon  process  instead  of
       waking  it  up (if there is no such process, fetchmail will notify you).
       If the --quit option appears last on the command  line,  fetchmail  will
       kill the running daemon process and then quit. Otherwise, fetchmail will
       first  kill  a running daemon process and then continue running with the
       other options.

   Useful options for daemon mode
       The -L <filename> or --logfile <filename> option (keyword: set  logfile)
       is  only  effective  when fetchmail is detached and in daemon mode. Note
       that the logfile must exist before fetchmail is run,  you  can  use  the
       touch(1) command with the filename as its sole argument to create it.
       This option allows you to redirect status messages into a specified log-
       file  (follow  the option with the logfile name).  The logfile is opened
       for append, so previous messages are not  deleted.   This  is  primarily
       useful for debugging configurations. Note that fetchmail does not detect
       if  the  logfile is rotated, the logfile is only opened once when fetch-
       mail starts. You need to restart fetchmail after  rotating  the  logfile
       and before compressing it (if applicable).

       The  --syslog option (keyword: set syslog) allows you to redirect status
       and error messages emitted to the syslog(3) system daemon if  available.
       Messages  are logged with an id of fetchmail, the facility LOG_MAIL, and
       priorities LOG_ERR, LOG_ALERT or LOG_INFO.  This option is intended  for
       logging  status and error messages which indicate the status of the dae-
       mon and the results while fetching mail from the server(s).  Error  mes-
       sages  for  command  line  options and parsing the .fetchmailrc file are
       still written to stderr, or to the specified log file.   The  --nosyslog
       option  turns  off  use  of  syslog(3),  assuming it is turned on in the
       ~/.fetchmailrc file.  This option is overridden, in certain  situations,
       by --logfile (which see).

       The  -N  or --nodetach option suppresses backgrounding and detachment of
       the daemon process from its control terminal.  This is useful for debug-
       ging or when fetchmail runs as the child of a supervisor process such as
       init(8) or Gerrit Pape's runit(8).  Note that this also causes the  log-
       file option to be ignored.

       Note  that  while  running  in  daemon  mode  polling a POP2 or IMAP2bis
       server, transient errors (such as DNS failures or sendmail delivery  re-
       fusals)  may  force  the fetchall option on for the duration of the next
       polling cycle.  This is a robustness feature.  It means that if  a  mes-
       sage is fetched (and thus marked seen by the mail server) but not deliv-
       ered  locally  due to some transient error, it will be re-fetched during
       the next poll cycle.  (The IMAP logic does  not  delete  messages  until
       they are delivered, so this problem does not arise.)

       If  you  touch or change the ~/.fetchmailrc file while fetchmail is run-
       ning in daemon mode, this will be detected at the beginning of the  next
       poll  cycle.   When  a  changed  ~/.fetchmailrc  is  detected, fetchmail
       rereads it and restarts from scratch (using exec(2); no  state  informa-
       tion  is retained in the new instance).  Note that if fetchmail needs to
       query for passwords, of that if you break the ~/.fetchmailrc file's syn-
       tax, the new instance will softly and silently vanish away on startup.

ADMINISTRATIVE OPTIONS
       The --postmaster <name> option (keyword: set postmaster)  specifies  the
       last-resort  username  to  which multidrop mail is to be forwarded if no
       matching local recipient can be found. It is also used as destination of
       undeliverable mail if the 'bouncemail' global option is  off  and  addi-
       tionally  for spam-blocked mail if the 'bouncemail' global option is off
       and the 'spambounce' global option is on. This option  defaults  to  the
       user  who invoked fetchmail.  If the invoking user is root, then the de-
       fault of this option is the user 'postmaster'.   Setting  postmaster  to
       the  empty  string causes such mail as described above to be discarded -
       this however is usually a bad idea.  See also  the  description  of  the
       'FETCHMAILUSER' environment variable in the ENVIRONMENT section below.

       The --nobounce behaves like the "set no bouncemail" global option, which
       see.

       The  --invisible option (keyword: set invisible) tries to make fetchmail
       invisible.  Normally, fetchmail behaves like any other MTA would  --  it
       generates  a  Received  header into each message describing its place in
       the chain of transmission, and tells the MTA it  forwards  to  that  the
       mail  came  from the machine fetchmail itself is running on.  If the in-
       visible option is on, the Received header is  suppressed  and  fetchmail
       tries  to  spoof  the  MTA it forwards to into thinking it came directly
       from the mail server host.

       The --showdots option (keyword: set showdots) forces fetchmail  to  show
       progress  dots  even if the output goes to a file or fetchmail is not in
       verbose mode.  Fetchmail shows the dots by default when run in --verbose
       mode and output goes to console. This  option  is  ignored  in  --silent
       mode.

       By  specifying the --tracepolls option, you can ask fetchmail to add in-
       formation to the Received header on the form  "polling  {label}  account
       {user}",  where {label} is the account label (from the specified rcfile,
       normally ~/.fetchmailrc) and {user} is the username which is used to log
       on to the mail server. This header can be used to make  filtering  email
       where  no  useful header information is available and you want mail from
       different accounts sorted into different mailboxes (this could, for  ex-
       ample, occur if you have an account on the same server running a mailing
       list, and are subscribed to the list using that account). The default is
       not  adding  any  such  header.  In .fetchmailrc, this is called 'trace-
       polls'.

RETRIEVAL FAILURE MODES
       The protocols fetchmail uses to talk to mail servers are next to bullet-
       proof.  In normal operation forwarding to port 25, no  message  is  ever
       deleted  (or  even  marked for deletion) on the host until the SMTP lis-
       tener on the client side has acknowledged to fetchmail that the  message
       has been either accepted for delivery or rejected due to a spam block.

       When  forwarding to an MDA, however, there is more possibility of error.
       Some MDAs are 'safe' and reliably return a nonzero status on any  deliv-
       ery  error,  even one due to temporary resource limits.  The maildrop(1)
       program is like this; so are most programs designed  as  mail  transport
       agents,  such  as sendmail(1), including the sendmail wrapper of Postfix
       and exim(1).  These programs give back a reliable positive  acknowledge-
       ment and can be used with the mda option with no risk of mail loss.  Un-
       safe  MDAs, though, may return 0 even on delivery failure.  If this hap-
       pens, you will lose mail.

       The normal mode of fetchmail is to try to download only 'new'  messages,
       leaving  untouched  (and  undeleted)  messages you have already read di-
       rectly on the server (or fetched with a previous fetchmail --keep).  But
       you may find that messages you have already read on the server are being
       fetched (and deleted) even when you do not  specify  --all.   There  are
       several reasons this can happen.

       One  could  be  that  you are using POP2.  The POP2 protocol includes no
       representation of 'new' or 'old' state in messages,  so  fetchmail  must
       treat  all  messages as new all the time.  But POP2 is obsolete, so this
       is unlikely.

       A potential POP3 problem might be servers that insert  messages  in  the
       middle  of mailboxes (some VMS implementations of mail are rumored to do
       this).  The fetchmail code assumes that new messages are appended to the
       end of the mailbox; when this is not true it may treat some old messages
       as new and vice versa.  Using UIDL whilst setting fastuidl 0  might  fix
       this, otherwise, consider switching to IMAP.

       Yet  another POP3 problem is that if they cannot make temporary files in
       the user's home directory, some POP3 servers will hand back  an  undocu-
       mented response that causes fetchmail to spuriously report "No mail".

       The  IMAP  code uses the presence or absence of the server flag \Seen to
       decide whether or not a message is new.  This is not the right thing  to
       do,  fetchmail should check the UIDVALIDITY and use UID, but it does not
       do that yet. Under Unix, it counts on your IMAP  server  to  notice  the
       BSD-style  Status  flags  set by mail user agents and set the \Seen flag
       from them when appropriate.  All Unix IMAP servers we know of  do  this,
       though  it  is  not specified by the IMAP RFCs.  If you ever trip over a
       server that does not, the symptom will be that messages you have already
       read on your host will look new to the server.  In this (unlikely) case,
       only messages you fetched with fetchmail --keep will be  both  undeleted
       and marked old.

       In  ETRN  and ODMR modes, fetchmail does not actually retrieve messages;
       instead, it asks the server's SMTP listener to start a  queue  flush  to
       the client via SMTP.  Therefore it sends only undelivered messages.

SPAM FILTERING
       Many  SMTP  listeners allow administrators to set up 'spam filters' that
       block unsolicited email from specified domains.  A  MAIL  FROM  or  DATA
       line  that triggers this feature will elicit an SMTP response which (un-
       fortunately) varies according to the listener.

       Newer versions of sendmail return an error code of 571.

       According to RFC2821, the correct thing to return in this  situation  is
       550  "Requested  action  not taken: mailbox unavailable" (the draft adds
       "[E.g., mailbox not found, no access, or  command  rejected  for  policy
       reasons].").

       Older versions of the exim MTA return 501 "Syntax error in parameters or
       arguments".

       The postfix MTA runs 554 as an antispam response.

       Zmailer  may  reject  code  with a 500 response (followed by an enhanced
       status code that contains more information).

       Return codes which fetchmail treats as antispam responses  and  discards
       the  message  can be set with the 'antispam' option.  This is one of the
       only three circumstance under which fetchmail ever  discards  mail  (the
       others  are  the 552 and 553 errors described below, and the suppression
       of multi-dropped messages with a message-ID already seen).

       If fetchmail is fetching from an IMAP server, the antispam response will
       be detected and the message rejected immediately after the headers  have
       been  fetched, without reading the message body.  Thus, you will not pay
       for downloading spam message bodies.

       By default, the list of antispam responses is empty.

       If the spambounce global option is on, mail that is  spam-blocked  trig-
       gers  an RFC1892/RFC1894 bounce message informing the originator that we
       do not accept mail from it. See also BUGS.

SMTP/ESMTP ERROR HANDLING
       Besides the spam-blocking described above, fetchmail takes  special  ac-
       tions — that may be modified by the --softbounce option — on the follow-
       ing SMTP/ESMTP error response codes

       452 (insufficient system storage)
            Leave the message in the server mailbox for later retrieval.

       552 (message exceeds fixed maximum message size)
            Delete the message from the server.  Send bounce-mail to the origi-
            nator.

       553 (invalid sending domain)
            Delete  the  message  from  the  server.   Do  not even try to send
            bounce-mail to the originator.

       Other errors greater or equal to 500 trigger bounce  mail  back  to  the
       originator, unless suppressed by --softbounce. See also BUGS.

THE RUN CONTROL FILE
       The preferred way to set up fetchmail is to write a .fetchmailrc file in
       your  home  directory  (you may do this directly, with a text editor, or
       indirectly via fetchmailconf).  When there is  a  conflict  between  the
       command-line  arguments and the arguments in this file, the command-line
       arguments take precedence.

       To protect the security of your passwords, your ~/.fetchmailrc  may  not
       normally  have  more than 0700 (u=rwx,g=,o=) permissions; fetchmail will
       complain and exit otherwise (this check is suppressed when --version  is
       on).

       You  may read the .fetchmailrc file as a list of commands to be executed
       when fetchmail is called with no arguments.

   Run Control Syntax
       Comments begin with a '#' and extend through the end of the line.   Oth-
       erwise  the file consists of a series of server entries or global option
       statements in a free-format, token-oriented syntax.

       There are four kinds of tokens: grammar keywords, numbers (i.e., decimal
       digit sequences), unquoted strings, and quoted strings.  A quoted string
       is bounded by double quotes and may contain whitespace (and quoted  dig-
       its  are  treated as a string).  Note that quoted strings will also con-
       tain line feed characters if they run across two or more  lines,  unless
       you  use  a  backslash to join lines (see below).  An unquoted string is
       any whitespace-delimited token that is neither  numeric,  string  quoted
       nor contains the special characters ',', ';', ':', or '='.

       Any amount of whitespace separates tokens in server entries, but is oth-
       erwise  ignored.  You  may use backslash escape sequences (\n for LF, \t
       for HT, \b for BS, \r for CR, \nnn for decimal (where nnn  cannot  start
       with  a  0),  \0ooo  for octal, and \xhh for hex) to embed non-printable
       characters or string delimiters in strings.  In quoted strings, a  back-
       slash  at the very end of a line will cause the backslash itself and the
       line feed (LF or NL, new line) character to be ignored, so that you  can
       wrap  long strings. Without the backslash at the line end, the line feed
       character would become part of the string.

       Warning: while these resemble C-style escape sequences, they are not the
       same.  fetchmail only supports these eight styles. C supports  more  es-
       cape sequences that consist of backslash (\) and a single character, but
       does not support decimal codes and does not require the leading 0 in oc-
       tal  notation.   Example:  fetchmail  interprets  \233  the same as \xE9
       (Latin small letter e with acute), where C would interpret \233 as octal
       0233 = \x9B (CSI, control sequence introducer).

       Each server entry consists of one of the keywords 'poll' or 'skip', fol-
       lowed by a server name, followed by server options, followed by any num-
       ber of user (or username) descriptions, followed by user options.  Note:
       the most common cause of syntax errors is mixing up user and server  op-
       tions or putting user options before the user descriptions.

       For backward compatibility, the word 'server' is a synonym for 'poll'.

       You  can  use the noise keywords 'and', 'with', 'has', 'wants', and 'op-
       tions' anywhere in an entry to make it resemble English.  They  are  ig-
       nored,  but can make entries much easier to read at a glance.  The punc-
       tuation characters ':', ';' and ',' are also ignored.

   Poll versus Skip
       The 'poll' verb tells fetchmail to query this host when it is  run  with
       no arguments.  The 'skip' verb tells fetchmail not to poll this host un-
       less  it  is explicitly named on the command line.  (The 'skip' verb al-
       lows you to experiment with test entries safely, or easily  disable  en-
       tries for hosts that are temporarily down.)

KEYWORD/OPTION SUMMARY
       Here  are the legal options.  Keyword suffixes enclosed in square brack-
       ets are optional.  Those corresponding to short command-line options are
       followed by '-' and the appropriate option letter.  If  option  is  only
       relevant  to  a  single mode of operation, it is noted as 's' or 'm' for
       singledrop- or multidrop-mode, respectively.

       Here are the legal global options:

       Keyword             Opt   Mode   Function
       ────────────────────────────────────────────────────────────────────
       set daemon          -d           Set a background poll interval  in
                                        seconds.
       set postmaster                   Give  the  name of the last-resort
                                        mail recipient (default: user run-
                                        ning  fetchmail,  "postmaster"  if
                                        run by the root user)
       set    bouncemail                Direct  error  mail  to the sender
                                        (default)
       set no bouncemail                Direct error  mail  to  the  local
                                        postmaster  (as  per the 'postmas-
                                        ter' global option above).
       set no spambounce                Do not  bounce  spam-blocked  mail
                                        (default).
       set    spambounce                Bounce  blocked  spam-blocked mail
                                        (as per the  'antispam'  user  op-
                                        tion)  back  to the destination as
                                        indicated  by   the   'bouncemail'
                                        global  option.   Warning:  Do not
                                        use this to bounce  spam  back  to
                                        the  sender  -  most  spam is sent
                                        with false sender address and thus
                                        this  option  hurts  innocent  by-
                                        standers.
       set no softbounce                Delete  permanently  undeliverable
                                        mail. It  is  recommended  to  use
                                        this  option  if the configuration
                                        has been thoroughly tested.
       set    softbounce                Keep   permanently   undeliverable
                                        mail  as  though a temporary error
                                        had occurred (default).
       set logfile         -L           Name of a file to append error and
                                        status messages to.   Only  effec-
                                        tive  in daemon mode and if fetch-
                                        mail  detaches.    If   effective,
                                        overrides set syslog.
       set pidfile         -p           Name of the PID file.
       set idfile          -i           Name  of  the  file  to  store UID
                                        lists in.
       set    syslog                    Do  error  logging  through   sys-
                                        log(3).  May  be overridden by set
                                        logfile.
       set no syslog                    Turn  off  error  logging  through
                                        syslog(3). (default)
       set properties                   String  value  that  is ignored by
                                        fetchmail (may be used  by  exten-
                                        sion scripts).

       Here are the legal server options:

       Keyword          Opt   Mode   Function
       ─────────────────────────────────────────────────────────────────
       via                           Specify  DNS  name of mail server,
                                     overriding poll name
       proto[col]       -p           Specify  protocol  (case  insensi-
                                     tive):  POP2,  POP3,  IMAP,  APOP,
                                     KPOP
       local[domains]         m      Specify domain(s) to  be  regarded
                                     as local
       port                          Specify TCP/IP service port (obso-
                                     lete, use 'service' instead).
       service          -P           Specify  service  name  (a numeric
                                     value is also allowed and  consid-
                                     ered a TCP/IP port number).
       auth[enticate]                Set  authentication  type (default
                                     'any')
       timeout          -t           Server inactivity timeout in  sec-
                                     onds (default 300)
       envelope         -E    m      Specify   envelope-address  header
                                     name
       no envelope            m      Disable looking for  envelope  ad-
                                     dress
       qvirtual         -Q    m      Qmail virtual domain prefix to re-
                                     move from user name
       aka                    m      Specify  alternate  DNS  names  of
                                     mail server
       interface        -I           specify IP interface(s) that  must
                                     be  up  for  server  poll  to take
                                     place
       monitor          -M           Specify IP address to monitor  for
                                     activity
       plugin                        Specify  command  through which to
                                     make server connections.
       plugout                       Specify command through  which  to
                                     make listener connections.
       dns                    m      Enable  DNS  lookup  for multidrop
                                     (default)
       no dns                 m      Disable DNS lookup for multidrop
       checkalias             m      Do comparison by  IP  address  for
                                     multidrop
       no checkalias          m      Do  comparison  by  name  for mul-
                                     tidrop (default)
       uidl             -U           Force  POP3  to  use   client-side
                                     UIDLs (recommended)
       no uidl                       Turn  off  POP3 use of client-side
                                     UIDLs (default)
       interval                      Only check this site every N  poll
                                     cycles; N is a numeric argument.
       tracepolls                    Add  poll  tracing  information to
                                     the Received header
       principal                     Set Kerberos principal (only  use-
                                     ful with IMAP and kerberos)
       esmtpname                     Set  name  for RFC2554 authentica-
                                     tion to the ESMTP server.
       esmtppassword                 Set password for RFC2554 authenti-
                                     cation to the ESMTP server.
       bad-header                    How to treat messages with  a  bad
                                     header. Can be reject (default) or
                                     accept.

       Here are the legal user descriptions and options:

       Keyword            Opt   Mode               Function
       ───────────────────────────────────────────────────────────────────────────────
       user[name]         -u                       This  is  the user description and
                                                   must come first after  server  de-
                                                   scription   and   after   possible
                                                   server options,  and  before  user
                                                   options.

                                                   It sets the remote user name if by
                                                   itself  or followed by 'there', or
                                                   the local user name if followed by
                                                   'here'.
       is                                          Connect  local  and  remote   user
                                                   names
       to                                          Connect   local  and  remote  user
                                                   names
       pass[word]                                  Specify remote account password
       ssl                                         Connect to server over the  speci-
                                                   fied  base  protocol using SSL en-
                                                   cryption
       sslcert                                     Specify file for client side  pub-
                                                   lic SSL certificate
       sslcertck                                   Enable strict certificate checking
                                                   and  abort  connection on failure.
                                                   Default   only   since   fetchmail
                                                   v6.4.0.
       no sslcertck                                Disable  strict certificate check-
                                                   ing and permit connections to con-
                                                   tinue on failed verification. Dis-
                                                   couraged. Should only be used  to-
                                                   gether with sslfingerprint.
       sslcertfile                                 Specify  file with trusted CA cer-
                                                   tificates
       sslcertpath                                 Specify c_rehash-ed directory with
                                                   trusted CA certificates.
       sslfingerprint           Specify the  ex-
                                pected    server
                                certificate fin-
                                ger  print  from
                                an   MD5   hash.
                                Fetchmail   will
                                disconnect   and
                                log an error  if
                                it    does   not
                                match.
       sslkey                                      Specify file for client side  pri-
                                                   vate SSL key
       sslproto                                    Force ssl protocol for connection
       folder             -r                       Specify remote folder to query
       smtphost           -S                       Specify smtp host(s) to forward to
       fetchdomains             m                  Specify  domains  for  which  mail
                                                   should be fetched
       smtpaddress        -D                       Specify the domain to  be  put  in
                                                   RCPT TO lines
       smtpname                                    Specify  the user and domain to be
                                                   put in RCPT TO lines
       antispam           -Z                       Specify what SMTP returns are  in-
                                                   terpreted as spam-policy blocks
       mda                -m                       Specify MDA for local delivery
       bsmtp                                       Specify BSMTP batch file to append
                                                   to
       preconnect                                  Command to be executed before each
                                                   connection
       postconnect                                 Command  to be executed after each
                                                   connection
       keep               -k                       Do not delete seen  messages  from
                                                   server  (for  POP3, uidl is recom-
                                                   mended)
       flush              -F                       Flush  all  seen  messages  before
                                                   querying (DANGEROUS)
       limitflush                                  Flush  all  oversized messages be-
                                                   fore querying
       fetchall           -a                       Fetch all messages whether seen or
                                                   not
       rewrite                                     Rewrite destination addresses  for
                                                   reply (default)
       stripcr                                     Strip  carriage  returns from ends
                                                   of lines
       forcecr                                     Force carriage returns at ends  of
                                                   lines
       pass8bits                                   Force  BODY=8BITMIME to ESMTP lis-
                                                   tener
       dropstatus                                  Strip Status and  X-Mozilla-Status
                                                   lines out of incoming mail
       dropdelivered                               Strip  Delivered-To  lines  out of
                                                   incoming mail
       mimedecode                                  Convert quoted-printable to  8-bit
                                                   in MIME messages
       idle                                        Idle  waiting for new messages af-
                                                   ter each poll (IMAP only)
       no keep            -K                       Delete seen messages  from  server
                                                   (default)
       no flush                                    Do not flush all seen messages be-
                                                   fore querying (default)
       no fetchall                                 Retrieve  only  new  messages (de-
                                                   fault)
       no rewrite                                  Do not rewrite headers
       no stripcr                                  Do not strip carriage returns (de-
                                                   fault)
       no forcecr                                  Do not force carriage  returns  at
                                                   EOL (default)
       no pass8bits                                Do   not  force  BODY=8BITMIME  to
                                                   ESMTP listener (default)
       no dropstatus                               Do not drop  Status  headers  (de-
                                                   fault)
       no dropdelivered                            Do  not  drop Delivered-To headers
                                                   (default)
       no mimedecode                               Do not convert quoted-printable to
                                                   8-bit in MIME messages (default)
       no idle                                     Do not idle waiting for  new  mes-
                                                   sages after each poll (IMAP only)
       limit              -l                       Set message size limit
       warnings           -w                       Set message size warning interval
       batchlimit         -b                       Max  # messages to forward in sin-
                                                   gle connect
       fetchlimit         -B                       Max # messages to fetch in  single
                                                   connect
       fetchsizelimit                              Max  #  message  sizes to fetch in
                                                   single transaction
       fastuidl                                    Use binary search for first unseen
                                                   message (POP3 only)
       expunge            -e                       Perform an expunge  on  every  #th
                                                   message (IMAP and POP3 only)
       properties                                  String  value is ignored by fetch-
                                                   mail (may  be  used  by  extension
                                                   scripts)

       All  user  options  must begin with a user description (user or username
       option) and follow all server descriptions and options.

       In the .fetchmailrc file, the 'envelope' string argument may be preceded
       by a whitespace-separated number.  This number,  if  specified,  is  the
       number  of  such headers to skip over (that is, an argument of 1 selects
       the second header of the given type).  This is sometimes useful for  ig-
       noring  bogus  envelope headers created by an ISP's local delivery agent
       or internal forwards (through mail inspection systems, for instance).

   Keywords Not Corresponding To Option Switches
       The 'folder' and 'smtphost' options (unlike their  command-line  equiva-
       lents)  can  take  a  space-  or comma-separated list of names following
       them.

       All options correspond to the obvious command-line arguments, except the
       following: 'via', 'interval', 'aka', 'is', 'to', 'dns'/'no dns', 'check-
       alias'/'no checkalias', 'password', 'preconnect', 'postconnect', 'local-
       domains',    'stripcr'/'no     stripcr',     'forcecr'/'no     forcecr',
       'pass8bits'/'no pass8bits' 'dropstatus/no dropstatus', 'dropdelivered/no
       dropdelivered',  'mimedecode/no  mimedecode',  'no  idle', and 'no enve-
       lope'.

       The 'via' option is for if you want to have more than one  configuration
       pointing  at  the same site.  If it is present, the string argument will
       be taken as the actual DNS name of the mail server host to query.   This
       will  override the argument of poll, which can then simply be a distinct
       label for the configuration (e.g., what you would give  on  the  command
       line to explicitly query this host).

       The  'interval'  option  (which  takes a numeric argument) allows you to
       poll a server less frequently than the basic poll interval.  If you  say
       'interval  N' the server this option is attached to will only be queried
       every N poll intervals.

   Singledrop versus Multidrop options
       Please ensure you read the section titled THE USE AND ABUSE OF MULTIDROP
       MAILBOXES if you intend to use multidrop mode.

       The 'is' or 'to' keywords associate the following local (client) name(s)
       (or server-name to client-name mappings separated by =)  with  the  mail
       server  user  name  in  the entry.  If an is/to list has '*' as its last
       name, unrecognized names are simply  passed  through.  Note  that  until
       fetchmail  version 6.3.4 inclusively, these lists could only contain lo-
       cal parts of user names (fetchmail would only look at  the  part  before
       the  @  sign). fetchmail versions 6.3.5 and newer support full addresses
       on the left hand side of these mappings, and they take  precedence  over
       any 'localdomains', 'aka', 'via' or similar mappings.

       A  single  local  name can be used to support redirecting your mail when
       your username on the client machine is different from your name  on  the
       mail  server.  When there is only a single local name, mail is forwarded
       to that local username regardless of the message's Received, To, Cc, and
       Bcc headers.  In this case, fetchmail never does DNS lookups.

       When there is more than one local  name  (or  name  mapping),  fetchmail
       looks  at  the  envelope header, if configured, and otherwise at the Re-
       ceived, To, Cc, and Bcc headers of retrieved mail  (this  is  'multidrop
       mode').   It  looks  for  addresses with host name parts that match your
       poll name or your 'via', 'aka' or 'localdomains'  options,  and  usually
       also  for  host  name  parts  which DNS tells it are aliases of the mail
       server.  See the discussion of 'dns', 'checkalias', 'localdomains',  and
       'aka' for details on how matching addresses are handled.

       If  fetchmail  cannot match any mail server usernames or localdomain ad-
       dresses, the mail will be bounced.  Normally it will be bounced  to  the
       sender,  but  if the 'bouncemail' global option is off, the mail will go
       to the local postmaster instead.  (see the 'postmaster' global  option).
       See also BUGS.

       The 'dns' option (normally on) controls the way addresses from multidrop
       mailboxes  are checked.  On, it enables logic to check each host address
       that does not match an 'aka' or 'localdomains' declaration by looking it
       up with DNS.  When a mail server username is recognized  attached  to  a
       matching host name part, its local mapping is added to the list of local
       recipients.

       The  'checkalias' option (normally off) extends the lookups performed by
       the 'dns' keyword in multidrop mode, providing a way to cope with remote
       MTAs that identify themselves using their canonical name, while they are
       polled using an alias.  When such a server is polled, checks to  extract
       the  envelope  address fail, and fetchmail reverts to delivery using the
       To/Cc/Bcc headers (See below 'Header versus Envelope addresses').  Spec-
       ifying this option instructs fetchmail to retrieve all the IP  addresses
       associated  with  both the poll name and the name used by the remote MTA
       and to do a comparison of the IP addresses.  This comes in handy in sit-
       uations where  the  remote  server  undergoes  frequent  canonical  name
       changes,  that  would  otherwise  require  modifications  to the rcfile.
       'checkalias' has no effect if 'no dns' is specified in the rcfile.

       The 'aka' option is for use with multidrop mailboxes.  It allows you  to
       pre-declare a list of DNS aliases for a server.  This is an optimization
       hack  that  allows  you to trade space for speed.  When fetchmail, while
       processing a multidrop mailbox, grovels through message headers  looking
       for names of the mail server, pre-declaring common ones can save it from
       having  to  do  DNS  lookups.   Note: the names you give as arguments to
       'aka' are matched as suffixes -- if you specify (say) 'aka  netaxs.com',
       this  will match not just a host name netaxs.com, but any host name that
       ends with '.netaxs.com'; such  as  (say)  pop3.netaxs.com  and  mail.ne-
       taxs.com.

       The  'localdomains' option allows you to declare a list of domains which
       fetchmail should consider local.   When  fetchmail  is  parsing  address
       lines  in multidrop modes, and a trailing segment of a host name matches
       a declared local domain, that address is passed through to the  listener
       or MDA unaltered (local-name mappings are not applied).

       If  you are using 'localdomains', you may also need to specify 'no enve-
       lope', which disables fetchmail's normal attempt to deduce  an  envelope
       address  from  the  Received  line  or  X-Envelope-To header or whatever
       header has been previously set by 'envelope'.  If you set 'no  envelope'
       in  the defaults entry it is possible to undo that in individual entries
       by using 'envelope <string>'.  As a special case, 'envelope  "Received"'
       restores the default parsing of Received lines.

       The password option requires a string argument, which is the password to
       be used with the entry's server.

       The 'preconnect' keyword allows you to specify a shell command to be ex-
       ecuted just before each time fetchmail establishes a mail server connec-
       tion.   This  may  be  useful if you are attempting to set up secure POP
       connections with the aid of ssh(1).  If the command  returns  a  nonzero
       status, the poll of that mail server will be aborted.

       Similarly,  the  'postconnect' keyword similarly allows you to specify a
       shell command to be executed just after each time a mail server  connec-
       tion is taken down.

       The  'forcecr'  option  controls whether lines terminated by LF only are
       given CRLF termination before forwarding.  Strictly speaking RFC821  re-
       quires this, but few MTAs enforce the requirement so this option is nor-
       mally  off  (only  one such MTA, qmail, is in significant use at time of
       writing).

       The 'stripcr' option controls whether carriage returns are stripped  out
       of  retrieved mail before it is forwarded.  It is normally not necessary
       to set this, because it defaults to 'on'  (CR  stripping  enabled)  when
       there is an MDA declared but 'off' (CR stripping disabled) when forward-
       ing is via SMTP.  If 'stripcr' and 'forcecr' are both on, 'stripcr' will
       override.

       The  'pass8bits' option exists to cope with Microsoft mail programs that
       stupidly slap a "Content-Transfer-Encoding: 7bit" on  everything.   With
       this  option  off (the default) and such a header present, fetchmail de-
       clares BODY=7BIT to an ESMTP-capable listener; this causes problems  for
       messages actually using 8-bit ISO or KOI-8 character sets, which will be
       garbled  by  having  the  high  bits  of  all  characters  stripped.  If
       'pass8bits' is on, fetchmail is forced to declare BODY=8BITMIME  to  any
       ESMTP-capable  listener.  If the listener is 8-bit-clean (as all the ma-
       jor ones now are) the right thing will probably result.

       The 'dropstatus' option controls whether nonempty Status and  X-Mozilla-
       Status  lines  are  retained in fetched mail (the default) or discarded.
       Retaining them allows your MUA to see what messages (if any) were marked
       seen on the server.  On the other hand, it can confuse some new-mail no-
       tifiers, which assume that anything with a Status line in  it  has  been
       seen.   (Note: the empty Status lines inserted by some buggy POP servers
       are unconditionally discarded.)

       The 'dropdelivered' option controls whether Delivered-To headers will be
       kept in fetched mail (the default) or discarded. These headers are added
       by qmail and Postfix mail servers in order to avoid mail loops  but  may
       get in your way if you try to "mirror" a mail server within the same do-
       main. Use with caution.

       The 'mimedecode' option controls whether MIME messages using the quoted-
       printable  encoding are automatically converted into pure 8-bit data. If
       you are delivering mail to an ESMTP-capable, 8-bit-clean listener  (that
       includes  all of the major MTAs like sendmail), then this will automati-
       cally convert quoted-printable message headers and data into 8-bit data,
       making it easier to understand when reading mail. If  your  e-mail  pro-
       grams  know  how  to  deal  with  MIME messages, then this option is not
       needed.  The mimedecode option is off by default, because doing  RFC2047
       conversion on headers throws away character-set information and can lead
       to  bad results if the encoding of the headers differs from the body en-
       coding.

       The 'idle' option is intended to be used with  IMAP  servers  supporting
       the  RFC2177  IDLE  command extension, but does not strictly require it.
       If it is enabled, and fetchmail detects that IDLE is supported, an  IDLE
       will  be issued at the end of each poll.  This will tell the IMAP server
       to hold the connection open and notify  the  client  when  new  mail  is
       available.   If IDLE is not supported, fetchmail will simulate it by pe-
       riodically issuing NOOP. If you need to poll a link frequently, IDLE can
       save bandwidth by  eliminating  TCP/IP  connects  and  LOGIN/LOGOUT  se-
       quences.  On  the  other hand, an IDLE connection will eat almost all of
       your fetchmail's time, because it will never drop the connection and al-
       low other polls to occur unless the server times out the IDLE.  It  also
       does  not work with multiple folders; only the first folder will ever be
       polled.

       The 'properties' option is an extension mechanism.  It  takes  a  string
       argument, which is ignored by fetchmail itself.  The string argument may
       be used to store configuration information for scripts which require it.
       In  particular, the output of '--configdump' option will make properties
       associated with a user entry readily available to a Python script.

   Miscellaneous Run Control Options
       The words 'here' and  'there'  have  useful  English-like  significance.
       Normally  'user  eric  is  esr' would mean that mail for the remote user
       'eric' is to be delivered to 'esr', but you can  make  this  clearer  by
       saying  'user eric there is esr here', or reverse it by saying 'user esr
       here is eric there'

       Legal protocol identifiers for use with the 'protocol' keyword are:

           auto (or AUTO) (legacy, to be removed from future release)
           pop2 (or POP2) (legacy, to be removed from future release)
           pop3 (or POP3)
           sdps (or SDPS)
           imap (or IMAP)
           apop (or APOP)
           kpop (or KPOP)

       Legal authentication types  are  'any',  'password',  'kerberos',  'ker-
       beros_v4',  'kerberos_v5'  and  'gssapi', 'cram-md5', 'otp', 'msn' (only
       for POP3), 'ntlm', 'ssh', 'external' (only IMAP).  The  'password'  type
       specifies authentication by normal transmission of a password (the pass-
       word  may be plain text or subject to protocol-specific encryption as in
       CRAM-MD5); 'kerberos' tells fetchmail to try to get a Kerberos ticket at
       the start of each query instead, and send an  arbitrary  string  as  the
       password;  and  'gssapi'  tells  fetchmail to use GSSAPI authentication.
       See the description of the 'auth' keyword for more.

       Specifying 'kpop' sets POP3 protocol over port 1109 with Kerberos V4 au-
       thentication.  These defaults may be overridden by later options.

       There are some global option statements: 'set  logfile'  followed  by  a
       string  sets  the  same  global  specified by --logfile.  A command-line
       --logfile option will override this. Note that --logfile is only  effec-
       tive  if fetchmail detaches itself from the terminal and the logfile al-
       ready exists before fetchmail is run, and it overrides --syslog in  this
       case.  Also, 'set daemon' sets the poll interval as --daemon does.  This
       can  be  overridden  by  a  command-line  --daemon option; in particular
       --daemon 0 can be used to force foreground operation. The 'set  postmas-
       ter'  statement  sets  the  address  to which multidrop mail defaults if
       there are no local matches.  Finally, 'set syslog' sends log messages to
       syslogd(8).

DEBUGGING FETCHMAIL
   Fetchmail crashing
       There are various ways in that fetchmail may "crash", i. e. stop  opera-
       tion  suddenly  and  unexpectedly.  A "crash" usually refers to an error
       condition that the software did not handle by itself. A well-known fail-
       ure mode is the "segmentation fault" or "signal 11" or "SIGSEGV" or just
       "segfault" for short. These can be caused by  hardware  or  by  software
       problems.  Software-induced  segfaults  can usually be reproduced easily
       and in the same place, whereas hardware-induced segfaults can go away if
       the computer is rebooted, or powered off for a few hours, and can happen
       in random locations even if you use the software the same way.

       For solving hardware-induced segfaults, find the  faulty  component  and
       repair or replace it.  ]8;;https://www.bitwizard.nl/sig11/\The Sig11 FAQ]8;;\ may help you with details.

       For solving software-induced segfaults, the developers may need a "stack
       backtrace".

   Enabling fetchmail core dumps
       By default, fetchmail suppresses core dumps as these might contain pass-
       words  and other sensitive information. For debugging fetchmail crashes,
       obtaining a "stack backtrace" from a core dump is often the quickest way
       to solve the problem, and when posting your problem on a  mailing  list,
       the developers may ask you for a "backtrace".

       1.  To  get  useful  backtraces, fetchmail needs to be installed without
       getting stripped of its compilation symbols.  Unfortunately, most binary
       packages that are installed are stripped, and core  files  from  symbol-
       stripped programs are worthless. So you may need to recompile fetchmail.
       On many systems, you can type

               file `which fetchmail`

       to  find  out  if fetchmail was symbol-stripped or not. If yours was un-
       stripped, fine, proceed, if it was stripped, you need to  recompile  the
       source code first. You do not usually need to install fetchmail in order
       to debug it.

       2.  The  shell  environment  that  starts fetchmail needs to enable core
       dumps. The key is the "maximum core (file) size"  that  can  usually  be
       configured  with a tool named "limit" or "ulimit". See the documentation
       for your shell for details. In the popular bash shell, "ulimit  -Sc  un-
       limited" will allow the core dump.

       3. You need to tell fetchmail, too, to allow core dumps. To do this, run
       fetchmail  with  the  -d0  -v  options.   It is often easier to also add
       --nosyslog -N as well.

       Finally, you need to reproduce the crash. You can just  start  fetchmail
       from  the  directory where you compiled it by typing ./fetchmail, so the
       complete command line will start with ./fetchmail -Nvd0  --nosyslog  and
       perhaps list your other options.

       After  the crash, run your debugger to obtain the core dump.  The debug-
       ger will often be GNU GDB, you can then type (adjust paths as necessary)
       gdb ./fetchmail fetchmail.core and then, after GDB has  started  up  and
       read  all  its files, type backtrace full, save the output (copy & paste
       will do, the backtrace will be read by a human) and then  type  quit  to
       leave  gdb.  Note: on some systems, the core files have different names,
       they might contain a number instead of the program name, or  number  and
       name, but it will usually have "core" as part of their name.

INTERACTION WITH RFC 822
       When trying to determine the originating address of a message, fetchmail
       looks through headers in the following order:

               Return-Path:
               Resent-Sender: (ignored if it does not contain an @ or !)
               Sender: (ignored if it does not contain an @ or !)
               Resent-From:
               From:
               Reply-To:
               Apparently-From:

       The  originating  address  is used for logging, and to set the MAIL FROM
       address when forwarding to SMTP.  This order is intended to cope  grace-
       fully with receiving mailing list messages in multidrop mode. The intent
       is  that  if a local address does not exist, the bounce message will not
       be returned blindly to the author or to the list itself, but  rather  to
       the list manager (which is less annoying).

       In  multidrop mode, destination headers are processed as follows: First,
       fetchmail looks for the header specified by the 'envelope' option in or-
       der to determine the local recipient address. If the mail  is  addressed
       to  more  than one recipient, the Received line will not contain any in-
       formation regarding recipient addresses.

       Then fetchmail looks for the  Resent-To:,  Resent-Cc:,  and  Resent-Bcc:
       lines.  If they exist, they should contain the final recipients and have
       precedence  over their To:/Cc:/Bcc: counterparts.  If the Resent-* lines
       do not exist, the To:, Cc:, Bcc: and  Apparently-To:  lines  are  looked
       for. (The presence of a Resent-To: is taken to imply that the person re-
       ferred  by the To: address has already received the original copy of the
       mail.)

CONFIGURATION EXAMPLES
       Note that although there are password declarations in a good many of the
       examples below, this is mainly for illustrative purposes.  We  recommend
       stashing  account/password  pairs  in your $HOME/.netrc file, where they
       can be used not just by fetchmail but by ftp(1) and other programs.

       The basic format is:

              poll SERVERNAME protocol PROTOCOL username NAME password PASSWORD

       Example:

              poll pop.provider.net protocol pop3 username "jsmith" password "secret1"

       Or, using some abbreviations:

              poll pop.provider.net proto pop3 user "jsmith" password "secret1"

       Multiple servers may be listed:

              poll pop.provider.net proto pop3 user "jsmith" pass "secret1"
              poll other.provider.net proto pop2 user "John.Smith" pass "My^Hat"

       Here is the same version with more whitespace and some noise words:

              poll pop.provider.net proto pop3
                   user "jsmith", with password secret1, is "jsmith" here;
              poll other.provider.net proto pop2:
                   user "John.Smith", with password "My^Hat", is "John.Smith" here;

       If you need to include whitespace in a parameter  string  or  start  the
       latter with a number, enclose the string in double quotes.  Thus:

              poll mail.provider.net with proto pop3:
                   user "jsmith" there has password "4u but u cannot krak this"
                   is jws here and wants mda "/bin/mail"

       You  may  have  an initial server description headed by the keyword 'de-
       faults' instead of 'poll' followed by a name.  Such a record  is  inter-
       preted  as defaults for all queries to use. It may be overwritten by in-
       dividual server descriptions.  So, you could write:

              defaults proto pop3
                   user "jsmith"
              poll pop.provider.net
                   pass "secret1"
              poll mail.provider.net
                   user "jjsmith" there has password "secret2"

       It is possible to specify more than one user  per  server.   The  'user'
       keyword  leads off a user description, and every user specification in a
       multi-user entry must include it.  Here is an example:

              poll pop.provider.net proto pop3 port 3111
                   user "jsmith" with pass "secret1" is "smith" here
                   user jones with pass "secret2" is "jjones" here keep

       This associates the local username  'smith'  with  the  pop.provider.net
       username   'jsmith'   and   the   local   username   'jjones'  with  the
       pop.provider.net username 'jones'.  Mail for  'jones'  is  kept  on  the
       server after download.

       Here  is  what  a simple retrieval configuration for a multidrop mailbox
       looks like:

              poll pop.provider.net:
                   user maildrop with pass secret1 to golux 'hurkle'='happy' snark here

       This says that the mailbox of account 'maildrop' on the server is a mul-
       tidrop box, and that messages in it should be parsed for the server user
       names 'golux', 'hurkle', and 'snark'.  It further specifies that 'golux'
       and 'snark' have the same name on the client as on the server, but  mail
       for server user 'hurkle' should be delivered to client user 'happy'.

       Note that fetchmail, until version 6.3.4, did NOT allow full user@domain
       specifications here, these would never match.  Fetchmail 6.3.5 and newer
       support  user@domain specifications on the left-hand side of a user map-
       ping.

       Here is an example of another kind of multidrop connection:

              poll pop.provider.net localdomains loonytoons.org toons.org
                   envelope X-Envelope-To
                   user maildrop with pass secret1 to * here

       This also says that the mailbox of account 'maildrop' on the server is a
       multidrop box.  It tells  fetchmail  that  any  address  in  the  loony-
       toons.org  or  toons.org  domains  (including  sub-domain addresses like
       'joe@daffy.loonytoons.org') should be passed through to the  local  SMTP
       listener without modification.  Be careful of mail loops if you do this!

       Here  is  an example configuration using ssh and the plugin option.  The
       queries are made directly on the stdin and  stdout  of  imapd  via  ssh.
       Note that in this setup, IMAP authentication can be skipped.

              poll mailhost.net with proto imap:
                   plugin "ssh %h /usr/sbin/imapd" auth ssh;
                   user esr is esr here

THE USE AND ABUSE OF MULTIDROP MAILBOXES
       Use  the  multiple-local-recipients feature with caution -- it can bite.
       All multidrop features are ineffective in ETRN and ODMR modes.

       Also, note that in multidrop mode duplicate mails may be suppressed.   A
       piece  of mail is considered duplicate if it does not have a discernible
       envelope recipient address, has the same header as the  message  immedi-
       ately  preceding and more than one addressee.  Such runs of messages may
       be generated when copies of a message addressed to  multiple  users  are
       delivered  to  a  multidrop box. (To be precise, fetchmail 6.2.5 through
       6.4.X use an MD5 hash of the raw  message  header,  and  only  fetchmail
       6.4.16+  document  this  properly.  Fetchmail 5.0.8 (1999-09-14) through
       6.2.4 used only the Message-ID header.  5.0.7 and older did not suppress
       duplicates.)

       Note that this duplication killer code checking  the  entire  header  is
       very  restrictive and may not suppress many duplicates in practice - for
       instance, if some X-Original-To or Delivered-To header differs.  This is
       intentional and correct in such situations: wherever  envelope  informa-
       tion  is  available,  it should be used for reliable delivery of mailing
       list and blind carbon copy (Bcc) messages. See the subsection  Duplicate
       suppression below for suggestions.

   Header versus Envelope addresses
       The  fundamental problem is that by having your mail server toss several
       peoples' mail in a single maildrop box, you may have thrown away  poten-
       tially  vital  information about who each piece of mail was actually ad-
       dressed to (the 'envelope address', as opposed to the  header  addresses
       in  the RFC822 To/Cc headers - the Bcc is not available at the receiving
       end).  This 'envelope address' is the  address  you  need  in  order  to
       reroute mail properly.

       Sometimes fetchmail can deduce the envelope address.  If the mail server
       MTA  is  sendmail  and  the item of mail had just one recipient, the MTA
       will have written a 'by/for' clause that gives  the  envelope  addressee
       into  its  Received  header.  But  this does not work reliably for other
       MTAs, nor if there is more than one recipient.   By  default,  fetchmail
       looks  for  envelope  addresses in these lines; you can restore this de-
       fault with -E "Received" or 'envelope Received'.

       As a better alternative, some SMTP listeners and/or mail servers  insert
       a  header  in  each message containing a copy of the envelope addresses.
       This header (when it exists) is often 'X-Original-To', 'Delivered-To' or
       'X-Envelope-To'.  Fetchmail's assumption about this can be changed  with
       the  -E  or  'envelope' option.  Note that writing an envelope header of
       this kind exposes the names of recipients (including blind-copy  recipi-
       ents)  to  all receivers of the messages, so the upstream must store one
       copy of the message per recipient to avoid becoming a privacy problem.

       Postfix, since version 2.0, writes an X-Original-To: header  which  con-
       tains a copy of the envelope as it was received.

       Qmail  and Postfix generally write a 'Delivered-To' header upon deliver-
       ing the message to the mail spool and use it to avoid mail loops.  Qmail
       virtual domains however will prefix the user name  with  a  string  that
       normally  matches  the  user's domain. To remove this prefix you can use
       the -Q or 'qvirtual' option.

       Sometimes, unfortunately, neither of these methods works.  That  is  the
       point  when  you should contact your ISP and ask them to provide such an
       envelope header, and you should not use  multidrop  in  this  situation.
       When  they  all  fail, fetchmail must fall back on the contents of To/Cc
       headers (Bcc headers are not available - see below) to try to  determine
       recipient  addressees -- and these are unreliable.  In particular, mail-
       ing-list software often ships mail with only the list broadcast  address
       in the To: header.

       Note that a future version of fetchmail may remove To/Cc parsing!

       When  fetchmail cannot deduce a recipient address that is local, and the
       intended recipient address was anyone other  than  fetchmail's  invoking
       user,  mail  will  get  lost.   This is what makes the multidrop feature
       risky without proper envelope information.

       A related problem is that when you blind-copy a mail  message,  the  Bcc
       information  is carried only as envelope address (it is removed from the
       headers by the sending mail server, so fetchmail  can  see  it  only  if
       there  is  an X-Envelope-To header).  Thus, blind-copying to someone who
       gets mail over a fetchmail multidrop link  will  fail  unless  the  mail
       server  host routinely writes X-Envelope-To or an equivalent header into
       messages in your maildrop.

       In conclusion, mailing lists and Bcc'd mail can only work if the  server
       you are fetching from

       (1)    stores one copy of the message per recipient in your domain and

       (2)    records  the  envelope  information in a special header (X-Origi-
              nal-To, Delivered-To, X-Envelope-To).

   Good Ways To Use Multidrop Mailboxes
       Multiple local names can be used to administer a mailing list  from  the
       client  side of a fetchmail collection.  Suppose your name is 'esr', and
       you want to both pick up your own  mail  and  maintain  a  mailing  list
       called (say) "fetchmail-friends", and you want to keep the alias list on
       your client machine.

       On  your  server,  you  can alias 'fetchmail-friends' to 'esr'; then, in
       your .fetchmailrc, declare 'to esr fetchmail-friends here'.  Then,  when
       mail  including 'fetchmail-friends' as a local address gets fetched, the
       list name will be appended to the list of recipients your SMTP  listener
       sees.   Therefore  it  will undergo alias expansion locally.  Be sure to
       include 'esr' in the local alias expansion of fetchmail-friends, or  you
       will  never see mail sent only to the list.  Also be sure that your lis-
       tener has the "me-too" option set (sendmail's -oXm  command-line  option
       or OXm declaration) so your name is not removed from alias expansions in
       messages you send.

       This  trick is not without its problems, however.  You will begin to see
       this when a message comes in that is addressed only to  a  mailing  list
       you  do  not have declared as a local name.  Each such message will fea-
       ture an 'X-Fetchmail-Warning' header which is generated  because  fetch-
       mail  cannot  find  a valid local name in the recipient addresses.  Such
       messages default (as was described above) to being  sent  to  the  local
       user  running fetchmail, but the program has no way to know that this is
       actually the right thing.

   Bad Ways To Abuse Multidrop Mailboxes
       Multidrop mailboxes and fetchmail serving multiple users in daemon  mode
       do not mix.  The problem, again, is mail from mailing lists, which typi-
       cally  does  not  have  an  individual recipient address on it.   Unless
       fetchmail can deduce an envelope address, such mail will only go to  the
       account running fetchmail (probably root).  Also, blind-copied users are
       very likely never to see their mail at all.

       If  you are tempted to use fetchmail to retrieve mail for multiple users
       from a single mail drop via POP or IMAP, think  again  (and  reread  the
       section on header and envelope addresses above).  It would be smarter to
       just  let  the  mail  sit in the mail server's queue and use fetchmail's
       ETRN or ODMR modes to trigger SMTP sends periodically (of  course,  this
       means you have to poll more frequently than the mail server's expiry pe-
       riod).  If you cannot arrange this, try setting up a UUCP feed.

       If  you  absolutely  must use multidrop for this purpose, make sure your
       mail server writes an envelope-address header that  fetchmail  can  see.
       Otherwise you will lose mail and it will come back to haunt you.

   Speeding Up Multidrop Checking
       Normally,  when multiple users are declared fetchmail extracts recipient
       addresses as described above and checks each host part with DNS  to  see
       if  it  is  an  alias  of the mail server.  If so, the name mappings de-
       scribed in the "to ... here" declaration are done and the  mail  locally
       delivered.

       This  is a convenient but also slow method.  To speed it up, pre-declare
       mail server aliases with 'aka'; these are checked before DNS lookups are
       done.  If you are certain your aka list contains all DNS aliases of  the
       mail server (and all MX names pointing at it - note this may change in a
       future  version)  you  can  declare 'no dns' to suppress DNS lookups en-
       tirely and only match against the aka list.

   Duplicate suppression on multidrop
       If fetchmail's duplicate suppression code does not kick in for your mul-
       tidrop mail account, other options  is  using  sieve,  or  for  instance
       Courier's  maildrop  package  (and  in particular, its reformail program
       with the -D option) as the delivery agent  (either  from  fetchmail,  or
       from your local mail server that fetchmail injects into).

SOCKS
       Support  for  socks4/5 is a compile time configuration option. Once com-
       piled in, fetchmail will always use the socks libraries  and  configura-
       tion  on  your system, there are no run-time switches in fetchmail - but
       you can still configure SOCKS: you can specify which SOCKS configuration
       file is used in the SOCKS_CONF environment variable.

       For instance, if you wanted to bypass the  SOCKS  proxy  altogether  and
       have    fetchmail    connect    directly,    you    could    just   pass
       SOCKS_CONF=/dev/null in the environment, for  example  (add  your  usual
       command line options - if any - to the end of this line):

       env SOCKS_CONF=/dev/null fetchmail

EXIT CODES
       To facilitate the use of fetchmail in shell scripts, an exit status code
       is  returned  to give an indication of what occurred during a given con-
       nection.

       The exit codes returned by fetchmail are as follows:

       0      One or more messages were successfully retrieved (or, if  the  -c
              option was selected, were found waiting but not retrieved).

       1      There  was  no mail awaiting retrieval.  (There may have been old
              mail still on the server but not selected for retrieval.) If  you
              do not want "no mail" to be an error condition (for instance, for
              cron jobs), use a POSIX-compliant shell and add

              || [ $? -eq 1 ]

              to the end of the fetchmail command line, note that this leaves 0
              untouched,  maps  1 to 0, and maps all other codes to 1. See also
              item #C8 in the FAQ.

       2      An error was encountered when attempting to open a socket to  re-
              trieve  mail.   If you do not know what a socket is, do not worry
              about it -- just treat this as an  'unrecoverable  error'.   This
              error  can  also  be because a protocol fetchmail wants to use is
              not listed in /etc/services.

       3      The user authentication step failed.  This usually means  that  a
              bad  user-id, password, or APOP id was specified.  Or it may mean
              that you tried to run fetchmail under circumstances where it  did
              not  have  standard  input  attached  to a terminal and could not
              prompt for a missing password.

       4      Some sort of fatal protocol error was detected.

       5      There was a syntax error in the arguments to fetchmail, or a pre-
              or post-connect command failed.

       6      The run control file had bad permissions.

       7      There was an error condition reported by the  server.   Can  also
              fire if fetchmail timed out while waiting for the server.

       8      Client-side  exclusion  error.  This means fetchmail either found
              another copy of itself already running, or failed in such  a  way
              that it is not sure whether another copy is running.

       9      The  user authentication step failed because the server responded
              "lock busy".  Try again after a brief pause!  This error  is  not
              implemented  for  all protocols, nor for all servers.  If not im-
              plemented for your server, "3"  will  be  returned  instead,  see
              above.   May be returned when talking to qpopper or other servers
              that can respond with "lock busy" or some similar text containing
              the word "lock".

       10     The fetchmail run failed while trying to do an SMTP port open  or
              transaction.

       11     Fatal DNS error.  Fetchmail encountered an error while performing
              a DNS lookup at startup and could not proceed.

       12     BSMTP batch file could not be opened.

       13     Poll terminated by a fetch limit (see the --fetchlimit option).

       14     Server busy indication.

       23     Internal  error.  You should see a message on standard error with
              details.

       24 - 26, 28, 29
              These are internal codes and should not appear externally.

       When fetchmail queries more than one host, return status  is  0  if  any
       query  successfully  retrieved mail. Otherwise the returned error status
       is that of the last host queried.

FILES
       ~/.fetchmailrc, $HOME/.fetchmailrc, $HOME_ETC/.fetchmailrc, $FETCHMAIL-
       HOME/fetchmailrc
            default run control file (location can be overridden with  environ-
            ment variables)

       ~/.fetchids, $HOME/.fetchids, $HOME_ETC/.fetchids, $FETCHMAIL-
       HOME/.fetchids
            default location of file recording last message UIDs seen per host.
            (location can be overridden with environment variables)

       ~/.fetchmail.pid, $HOME/.fetchmail.pid, $HOME_ETC/.fetchmail.pid,
       $FETCHMAILHOME/fetchmail.pid
            default  location  of  lock  file  (sometimes called pidfile or PID
            file, see option pidfile) to help prevent concurrent runs (non-root
            mode).  (location can be overridden with environment variables)

       ~/.netrc, $HOME/.netrc, $HOME_ETC/.netrc
            your FTP run control file, which (if present) will be searched  for
            passwords  as a last resort before prompting for one interactively.
            (location can be overridden with environment variables)

       /var/run/fetchmail.pid
            lock file (pidfile) to help prevent  concurrent  runs  (root  mode,
            Linux systems).

       /etc/fetchmail.pid
            lock  file  (pidfile)  to  help prevent concurrent runs (root mode,
            systems without /var/run).

ENVIRONMENT
       Fetchmail's behavior can be altered by  providing  it  with  environment
       variables.   Some  may  alter  the operation of libraries that fetchmail
       links against, for instance, OpenSSL.  Note that  in  daemon  mode,  you
       will  need  to quit the background daemon process and start a new fetch-
       mail daemon for environment changes to take effect.

       FETCHMAILHOME
              If this environment variable is set to a valid and  existing  di-
              rectory name, fetchmail will read $FETCHMAILHOME/fetchmailrc (the
              dot  is  missing in this case), $FETCHMAILHOME/.fetchids (keeping
              its dot) and $FETCHMAILHOME/fetchmail.pid  (without  dot)  rather
              than  from  the user's home directory.  The .netrc file is always
              looked for in the invoking user's home directory  (or  $HOME_ETC)
              regardless of FETCHMAILHOME's setting.

       FETCHMAILUSER
              If  this  environment  variable is set, it is used as the name of
              the calling user (default local name) for purposes such as  mail-
              ing  error  notifications.   Otherwise,  if either the LOGNAME or
              USER variable is  correctly  set  (e.g.,  the  corresponding  UID
              matches  the  session  user ID) then that name is used as the de-
              fault local name.  Otherwise getpwuid(3) must be able to retrieve
              a password entry for the session ID (this elaborate logic is  de-
              signed  to  handle  the case of multiple names per user ID grace-
              fully).

       FETCHMAIL_DISABLE_CBC_IV_COUNTERMEASURE
              (since v6.3.22): If this environment  variable  is  set  and  not
              empty, fetchmail will disable a countermeasure against an SSL CBC
              IV  attack (by setting SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS).  This
              is a security risk, but may be necessary for connecting  to  cer-
              tain non-standards-conforming servers.  See fetchmail's NEWS file
              and fetchmail-SA-2012-01.txt for details.  Earlier fetchmail ver-
              sions  (v6.3.21  and  older) used to disable this countermeasure,
              but v6.3.22 no longer does that as a safety precaution.

       FETCHMAIL_POP3_FORCE_RETR
              (since v6.3.9): If this environment variable is  defined  at  all
              (even  if  empty),  fetchmail will forgo the POP3 TOP command and
              always use RETR. This can be used as a workaround when  TOP  does
              not work properly.

       FETCHMAIL_INCLUDE_DEFAULT_X509_CA_CERTS
              (since  v6.3.17):  If  this  environment  variable is set and not
              empty, fetchmail will always load the default X.509 trusted  cer-
              tificate   locations   for   SSL/TLS  CA  certificates,  even  if
              --sslcertfile and --sslcertpath are given.  The latter  locations
              take  precedence over the system default locations.  This is use-
              ful in case there are broken certificates in the system  directo-
              ries  and  the user has no administrator privileges to remedy the
              problem.

       FETCHMAIL_WOLFSSL_DEBUG
              (since v6.4.25): If fetchmail is compiled and linked  with  wolf-
              SSL,  if wolfSSL was built with --enable-debug, and if this envi-
              ronment variable is set and not empty, then enable wolfSSL's  de-
              bug mode. This will emit huge amounts of debug output to stderr.

       HOME   (documented  since  6.4.1):  This variable is normally set to the
              user's home directory. If it is set to a different directory than
              what is in the password database, HOME takes precedence.

       HOME_ETC
              (documentation corrected to match behaviour of code since 6.4.1):
              If the HOME_ETC variable is set,  it  will  override  fetchmail's
              idea of $HOME, i. e. fetchmail will read .fetchmailrc, .fetchids,
              .fetchmail.pid  and .netrc from $HOME_ETC instead of $HOME (or if
              HOME is also unset, from the passwd file's home  directory  loca-
              tion).

              If  HOME_ETC  and FETCHMAILHOME are both set, FETCHMAILHOME takes
              precedence and HOME_ETC will be ignored.

       SOCKS_CONF
              (only if SOCKS support is compiled in) this variable is  used  by
              the  socks library to find out which configuration file it should
              read. Set this to /dev/null to bypass the SOCKS proxy.

       SSL_CERT_DIR
              (with  truly  OpenSSL  1.1.1   compatible   library):   overrides
              OpenSSL's idea of the default trust directory or path (which con-
              tains  individual certificate files and hashed symlinks), see the
              SSL_CTX_set_default_verify_paths(3) manual page for  details,  it
              may  be in the openssl development package.  If using another li-
              brary's OpenSSL  compatibility  interface,  this  may  not  work.
              Since  this  variable  only specifies a default value, the option
              --sslcertpath takes precedence if given.

       SSL_CERT_FILE
              (with  truly  OpenSSL  1.1.1   compatible   library):   overrides
              OpenSSL's  idea  of  the  default  trust  certificate bundle file
              (which contains a concatenation of base64-encoded certificates in
              PEM format), see the  SSL_CTX_set_default_verify_paths(3)  manual
              page  for  details, it may be in the openssl development package.
              If using another library's OpenSSL compatibility interface,  this
              may  not  work.   Since  this  variable  only specifies a default
              value, the option --sslcertfile takes precedence if given.

SIGNALS
       If a fetchmail daemon is running as root, SIGUSR1 wakes it up  from  its
       sleep  phase  and forces a poll of all non-skipped servers. For compati-
       bility reasons, SIGHUP can also be used in 6.3.X but may not  be  avail-
       able in future fetchmail versions.

       If  fetchmail is running in daemon mode as non-root, use SIGUSR1 to wake
       it (this is so SIGHUP due to logout can retain  the  default  action  of
       killing it).

       Running  fetchmail in foreground while a background fetchmail is running
       will do whichever of these is appropriate to wake it up.

BUGS, LIMITATIONS, AND KNOWN PROBLEMS
       Please check the NEWS file that shipped with fetchmail  for  more  known
       bugs than those listed here.

       Fetchmail cannot handle user names that contain blanks after a "@" char-
       acter, for instance "demonstr@ti on". These are rather uncommon and only
       hurt when using UID-based --keep setups, so the 6.X.Y versions of fetch-
       mail will not be fixed.

       Fetchmail  cannot handle configurations where you have multiple accounts
       that use the same server name and the same login. Any user@server combi-
       nation must be unique.

       The assumptions that the DNS and in particular  the  checkalias  options
       make are not often sustainable. For instance, it has become uncommon for
       an MX server to be a POP3 or IMAP server at the same time. Therefore the
       MX lookups may go away in a future release.

       The  mda  and  plugin options interact badly.  In order to collect error
       status from the MDA, fetchmail has to change its normal signal  handling
       so  that  dead  plugin  processes do not get reaped until the end of the
       poll cycle.  This can cause resource starvation if too many zombies  ac-
       cumulate.  So either do not deliver to a MDA using plugins or risk being
       overrun by an army of undead.

       The  --interface  option  does not support IPv6 and it is doubtful if it
       ever will, since there is no portable way to query  interface  IPv6  ad-
       dresses.

       The  RFC822  address  parser used in multidrop mode chokes on some @-ad-
       dresses that are technically legal but bizarre.  Strange uses of quoting
       and embedded comments are likely to confuse it.

       In a message with multiple envelope headers, only the last one processed
       will be visible to fetchmail.

       Use of some of these protocols requires  that  the  program  send  unen-
       crypted  passwords  over the TCP/IP connection to the mail server.  This
       creates a risk that name/password pairs might be snaffled with a  packet
       sniffer  or  more  sophisticated  monitoring  software.  Under Linux and
       FreeBSD, the --interface option can  be  used  to  restrict  polling  to
       availability of a specific interface device with a specific local or re-
       mote IP address, but snooping is still possible if (a) either host has a
       network device that can be opened in promiscuous mode, or (b) the inter-
       vening  network link can be tapped.  We recommend the use of ssh(1) tun-
       nelling to not only shroud your passwords but encrypt the entire conver-
       sation.

       Use of the %F or %T escapes in an mda option could open a security hole,
       because they pass text manipulable by an attacker to  a  shell  command.
       Potential  shell  characters  are replaced by '_' before execution.  The
       hole is further reduced by the fact that fetchmail temporarily  discards
       any  set-uid  privileges it may have while running the MDA.  For maximum
       safety, however, do not use an mda command  containing  %F  or  %T  when
       fetchmail is run from the root account itself.

       Fetchmail's method of sending bounces due to errors or spam-blocking and
       spam bounces requires that port 25 of localhost be available for sending
       mail via SMTP.

       If  you modify ~/.fetchmailrc while a background instance is running and
       break the syntax, the background instance will die  silently.   Unfortu-
       nately,  it cannot die noisily because we do not yet know whether syslog
       should be enabled.  On some systems,  fetchmail  dies  quietly  even  if
       there  is no syntax error; this seems to have something to do with buggy
       terminal ioctl code in the kernel.

       The -f - option (reading a configuration  from  stdin)  is  incompatible
       with the plugin option.

       The 'principal' option only handles Kerberos IV, not V.

       Interactively  entered  passwords  are truncated after 63 characters. If
       you really need to use a longer password, you will have to use a config-
       uration file.

       A backslash as the last  character  of  a  configuration  file  will  be
       flagged as a syntax error rather than ignored.

       The  BSMTP  error handling is virtually nonexistent and may leave broken
       messages behind.

       Send comments, bug reports, gripes, and the like to the  ]8;;mailto:fetchmail-devel@lists.sourceforge.net\fetchmail-devel
       list]8;;\

       An ]8;;https://fetchmail.sourceforge.io/fetchmail-FAQ.html\fetchmail FAQ (in HTML form)]8;;\ is available at the fetchmail home page,
       it should also accompany your installation.

AUTHOR
       Fetchmail  is  currently maintained by Matthias Andree and Rob Funk with
       major assistance from Sunil Shetye (for code) and Rob MacGregor (for the
       mailing lists).

       Most of the code is from ]8;;mailto:esr@snark.thyrsus.com\Eric S. Raymond]8;;\.  Too many other people to name
       here have contributed code and patches.

       This program is descended from and replaces popclient,  by  ]8;;mailto:ceharris@mal.com\Carl Harris]8;;\;
       the internals have become quite different, but some of its interface de-
       sign is directly traceable to that ancestral program.

       This  manual  page has been improved by Matthias Andree, R. Hannes Bein-
       ert, and Héctor García.

SEE ALSO
       README,  README.SSL,  README.SSL-SERVER,   ]8;;https://www.fetchmail.info/fetchmail-FAQ.html\The Fetchmail FAQ]8;;\,   mutt(1),
       elm(1), mail(1), sendmail(8), popd(8), imapd(8), netrc(5), ]8;;https://www.fetchmail.info/\the fetchmail
       home page]8;;\, ]8;;https://fetchmail.sourceforge.io/\(alternative URI)]8;;\; ]8;;https://www.courier-mta.org/maildrop/\the maildrop home page.]8;;\

APPLICABLE STANDARDS
       Note  that this list is just a collection of references and not a state-
       ment as to the actual protocol conformance or requirements in fetchmail.

       SMTP/ESMTP:
            RFC 821, RFC 2821, RFC 1869, RFC 1652,  RFC  1870,  RFC  1983,  RFC
            1985, RFC 2554.

       mail:
            RFC 822, RFC 2822, RFC 1123, RFC 1892, RFC 1894.

       POP2:
            RFC 937

       POP3:
            RFC  1081,  RFC  1225,  RFC 1460, RFC 1725, RFC 1734, RFC 1939, RFC
            1957, RFC 2195, RFC 2449.

       APOP:
            RFC 1939.

       RPOP:
            RFC 1081, RFC 1225.

       IMAP2/IMAP2BIS:
            RFC 1176, RFC 1732.

       IMAP4/IMAP4rev1:
            RFC 1730, RFC 1731, RFC 1732, RFC 2060, RFC  2061,  RFC  2195,  RFC
            2177, RFC 2683.

       ETRN:
            RFC 1985.

       ODMR/ATRN:
            RFC 2645.

       OTP: RFC 1938.

       LMTP:
            RFC 2033.

       GSSAPI:
            RFC  1508, RFC 1734, ]8;;https://www.iana.org/assignments/gssapi-service-names/\Generic   Security  Service  Application  Pro-
            gram  Interface  (GSS-  API)/Kerberos/Simple Authentication and Se-
            curity Layer (SASL)  Ser- vice Names]8;;\.

       TLS: RFC 2595.

fetchmail 6.4.38                   2022-10-30                      FETCHMAIL(1)

Generated by dwww version 1.16 on Tue Dec 16 06:05:35 CET 2025.