<table width="100%" cellpadding=0><tr>
<td width="30%">Back to <a href="index.html">Fetchmail Home Page</a>
<td width="30%" align=center>To <a href="/~esr/sitemap.html">Site Map</a>
-<td width="30%" align=right>$Date: 1998/11/29 02:03:48 $
+<td width="30%" align=right>$Date: 1999/08/21 06:04:18 $
</table>
<HR>
<H1>Frequently Asked Questions About Fetchmail</H1>
<a href="#G9">G9. Is any special configuration needed to use a dynamic
IP address?</a><br>
<a href="#G10">G10. Is any special configuration needed to use firewalls?</a><br>
+<a href="#G11">G11. Is any special configuration needed to <em>send</em> mail?</a><br>
+
+<a href="#G12">G12. Is fetchmail Y2K-compliant?</a><br>
<h1>Build-time problems:</h1>
<a href="#T5">T5. How can I use fetchmail with SCO's MMDF?</a><br>
<a href="#T6">T6. How can I use fetchmail with Lotus Notes?</a><br>
-<h1>How to make fetchmail work with nonstandard servers:</h1>
+<h1>How to make fetchmail work with various servers:</h1>
-<a href="#S1">S1. How can I use fetchmail with Microsoft Exchange?</a><br>
-<a href="#S2">S2. How can I use fetchmail with Compuserve RPA?</a><br>
-<a href="#S3">S3. How can I use fetchmail with Demon Internet's SDPS?</a><br>
-<a href="#S4">S4. How can I use fetchmail with usa.net's servers?</a><br>
-<a href="#S5">S5. How can I use fetchmail with HP OpenMail?</a><br>
-<a href="#S6">S6. How can I use fetchmail with geocities POP3 servers?</a><br>
+<a href="#S1">S1. How can I use fetchmail with qpopper?</a><br>
+<a href="#S2">S2. How can I use fetchmail with Microsoft Exchange?</a><br>
+<a href="#S3">S3. How can I use fetchmail with Compuserve RPA?</a><br>
+<a href="#S4">S4. How can I use fetchmail with Demon Internet's SDPS?</a><br>
+<a href="#S5">S5. How can I use fetchmail with usa.net's servers?</a><br>
+<a href="#S6">S6. How can I use fetchmail with HP OpenMail?</a><br>
+<a href="#S7">S7. How can I use fetchmail with geocities POP3 servers?</a><br>
+<a href="#S8">S8. How can I use fetchmail with Hotmail?</a><br>
+<a href="#S9">S9. How can I use fetchmail with MSN?</a><br>
+<a href="#S10">S10. How can I use fetchmail with SpryNet?</a><br>
<h1>How to set up well-known security and authentication methods:</h1>
<a href="#R2">R2. When I try to configure an MDA, fetchmail doesn't work.</a><br>
<a href="#R3">R3. Fetchmail dumps core when given an invalid rc file.</a><br>
<a href="#R4">R4. Fetchmail dumps core in -V mode, but operates normally otherwise.</a><br>
-<a href="#R5">R5. Fetchmail dumps core when I use a .netrc file but works otherwise.</a><br>
-<a href="#R6">R6. Running fetchmail in daemon mode doesn't work.</a><br>
-<a href="#R7">R7. Fetchmail hangs when used with pppd.</a><br>
-<a href="#R8">R8. Fetchmail randomly dies with socket errors.</a><br>
+<a href="#R5">R5. Running fetchmail in daemon mode doesn't work.</a><br>
+<a href="#R6">R6. Fetchmail hangs when used with pppd.</a><br>
+<a href="#R7">R7. Fetchmail randomly dies with socket errors.</a><br>
+<a href="#R8">R8. Fetchmail running as root stopped working after an OS upgrade</a><br>
+<a href="#R9">R9. Fetchmail is timing out after fetching certain
+messages but before deleting them</a><br>
<h1>Disappearing mail</h1>
<a href="#D1">D1. I think I've set up fetchmail correctly, but I'm not getting any mail.</a><br>
-<a href="#D2">D2. All my mail seems to disappear after an interrupt.</a><br>
-<a href="#D3">D3. Mail that was being fetched when I interrupted my fetchmail seems to have been vanished.</a></br>
+<a href="#D2">D2. All my mail seems to disappear after a dropped connection.</a><br>
+<a href="#D3">D3. Mail that was being fetched when I interrupted my fetchmail seems to have been vanished.</a><br>
<h1>Multidrop-mode problems:</h1>
<a href="#M3">M3. I tried to run a mailing list using multidrop, and I have a mail loop!</a><br>
<a href="#M4">M4. My multidrop fetchmail seems to be having DNS problems.</a><br>
<a href="#M5">M5. I'm seeing long DNS delays before each message is processed.</a><br>
-<a href="#M6">M6. How do I get multidrop mode to work with majordomo?</a>
+<a href="#M6">M6. How do I get multidrop mode to work with majordomo?</a><br>
<a href="#M7">M7. Multidrop mode isn't parsing envelope addresses from
-my Received headers as it should.</a>
+my Received headers as it should.</a><br>
<h1>Mangled mail:</h1>
<a href="#O5">O5. Why is fetched mail being logged with my name, not the real From address?</a><br>
<a href="#O6">O6. I'm seeing long sendmail delays or hangs near the start of each poll cycle.</a><br>
<a href="#O7">O7. Why doesn't fetchmail deliver mail in date-sorted order?</a><br>
+<a href="#O8">O8. I'm using pppd. Why isn't my monitor option working?</a><br>
<h1>Answers:</h1>
<hr>
multi-platform user community has shown that fetchmail is as near
bulletproof as the underlying protocols permit.<p>
+Fetchmail is licensed under the <a
+href="http://gnu.org//copyleft/gpl.html">GNU General Public
+License</a>.<p>
+
If you found this FAQ in the distribution, see the README for fetchmail's
full feature list.<p>
<ol>
<li>Your operating system and compiler version.
+<li>A copy of your POP or IMAP server's greeting line.
<li>The name and version of the SMTP listener or MDA you are forwarding to.
<li>Any command-line options you used.
<li>The output of fetchmail -V called with whatever other
the latest version <em>before</em> sending in a bug report.<P>
It is helpful if you include your .fetchmailrc file, but not necessary
-unless your symptom seems to involve an error in configuration parsing.<p>
+unless your symptom seems to involve an error in configuration
+parsing. If you do send in your .fetchmailrc, mask the passwords
+first! <p>
If fetchmail seems to run and fetch mail, but the headers look mangled
-(that is headers are missing, or blank lines are inserted in the
+(that is, headers are missing or blank lines are inserted in the
headers) then read the FAQ items in section <a href="#X1">X</a>
before submitting a bug report. Pay special attention to the item on
<a href="#generic_mangling">diagnosing mail mangling</a>. There are
(the most common one, which I used to get about four million times a week
and got <em>really</em> tired of, is for tin-like kill files).<p>
-You can do spam filtering better with procmail or mailagent on the
+You can do spam filtering better with procmail or maildrop on the
server side and (if you're the server sysadmin) sendmail.cf domain
exclusions. You can do other policy things better with the
<CODE>mda</CODE> option and script wrappers around fetchmail. If
Furthermore, since about version 4.3.0 fetchmail has passed out of active
development and been essentially stable. It is no longer my top
project, and I am going to be quite reluctant to add features that
-might either jeopardize its stability or or involve me in large
+might either jeopardize its stability or involve me in large
amounts of coding.<p>
All that said, if you have a feature idea that really is about a transport
<hr>
<h2><a name="G6">G6. So, what's this I hear about a fetchmail paper?</a></h2>
-Now it can be told! The fetchmail development was also a sociological
-experiment, an extended test to see if my theory about the critical
-features of the Linux development model is correct.<p>
+The fetchmail development was also a sociological experiment, an
+extended test to see if my theory about the critical features of the
+Linux development model is correct.<p>
The experiment was a success. I wrote a paper about it titled <a
href="http://www.tuxedo.org/~esr/writings/cathedral.html">The
presentation at Usenix '98. The folks at Netscape tell me it helped
them decide to <a
href="http://www.netscape.com/newsref/pr/newsrelease558.html"> give
-away the source for Netscape Communicator</a>).<p>
+away the source for Netscape Communicator</a>.<p>
If you're reading a non-HTML dump of this FAQ, you can find the paper
on the Web with a search for that title.<p>
Fetchmail will work with any POP, IMAP, or ESMTP/ETRN server that
conforms to the relevant RFCs (and even some outright broken ones like
-<a href="#S1">Microsoft Exchange</a>). This doesn't mean it works
+<a href="#S2">Microsoft Exchange</a>). This doesn't mean it works
equally well with all, however. POP2 servers, and POP3 servers
without LAST, limit fetchmail's capabilities in various ways described
on the manual page.<P>
POP3, and enables some significant performance optimizations.<P>
Don't be fooled by NT/Exchange propaganda. M$ Exchange is just plain
-broken (see item <a href="#S1">S1</a>) and NT cannot handle the
+broken (see item <a href="#S2">S2</a>) and NT cannot handle the
sustained load of a high-volume remote mail server. Even Microsoft
itself knows better than to try this; their own Hotmail service runs
over Solaris! For extended discussion, see John Kirch's excellent <a
-href="http://www.kirch.net/unix-nt.html">white paper</a> on Unix
+href="http://unix-vs-nt.org/kirch/">white paper</a> on Unix
vs. NT performance.<P>
You can find sources for IMAP software at <a
from deleting your mail, and require him to either tap your connection
continuously or crack root on the server in order to read it.<P>
-You can deduce what encryptions your mail server has available by
+You can deduce what encryptions your mail server has available
by looking at the server greeting line (and, for IMAP, the
response to a CAPABILITY query). Do a <code>fetchmail -v</code>
to see these, or telnet direct to the server port (110 for POP3, 143 for
If you are fetching mail from a CompuServe POP3 account, you can use
their RPA authentication (which works much like APOP). See <a
-href="#S2">S2</a> for details.<P>
+href="#S3">S3</a> for details.<P>
Your POP3 server may have the RFC1938 OTP capability to use one-time
passwords (if it doesn't, you can get OTP patches for the 2.2 version
Yes. In order to avoid giving indigestion to certain picky MTAs
(notably <a href="#T3">exim</a>), fetchmail always makes the RCPT TO
address it feeds the MTA a fully qualified one with a hostname part.
-Normally it does this by appending @ and your client machine's
-hostname.<P>
+Normally it does this by appending @ and "localhost", but when you are
+using Kerberos or ETRN mode it will append @ and your machine's
+fully-qualified domain name (FQDN).<P>
-This, however, can create problems when fetchmail is running in daemon
+Appending the FQDN can create problems when fetchmail is running in daemon
mode and outlasts the dynamic IP address assignment your client
machine had when it started up.<P>
`<code>interface</code>'. This option can be used to set the gateway
device and restrict the IP address range fetchmail will use. Such a
restriction is sometimes useful for security reasons, especially on
-multihomed sites. See <a href="http:#C3">C3</a>.<P>
+multihomed sites. See <a href="#C3">C3</a>.<P>
I recommend against trying to set up the <code>interface</code> option
when initially developing your poll configuration -- it's never
indirecting TCP/IP through a firewall. You can find out about SOCKS,
and download the SOCKS software including server and client code, at
the <a href="http://www.socks.nec.com/">SOCKS distribution
-site</a>.)<P>
+site</a>.<P>
The specific recipe for using fetchmail with a firewall is at <a
href="#K1">K1</a><P>
I couldn't have put it better myself, and ain't going to try now.<P>
+<hr>
+<h2><a name="G11">G11. Is any special configuration needed to <em>send</em> mail?</a></h2>
+
+A user asks: but how do we send mail out to the POP3 server? Do I need
+to implement another tool or will fetchmail do this too?<p>
+
+Fetchmail only handles the receiving side. The sendmail or other
+preinstalled MTA on your client machine will handle sending mail
+automatically; it will ship mail that is submitted while the
+connection is active, and put mail that is submitted while
+the connection is inactive into the outgoing queue.<P>
+
+Normally, sendmail is also run periodically (every 15 minutes on most
+Linux systems) in a mode that tries to ship all the mail in the
+outgoing queue. If you have set up something like pppd to
+automatically dial out when your kernel is called to open a TCP/IP
+connection, this will ensure that the mail gets out.<P>
+
+<hr>
+<h2><a name="G12">G12. Is fetchmail Y2K-compliant?</a></h2>
+
+Fetchmail is fully Y2K-compliant.<P>
+
+Fetchmail could theoretically have problems when the 32-bit time_t's roll
+over in 2038, but I doubt it. Timestamps aren't used for anything but
+log entry generation.<P>
+
<hr>
<h2><a name="B2">B2. I get link failures when I try to build fetchmail.</a></h2>
<hr>
<h2><a name="F2">F2. The .fetchmailrc parser won't accept my all-numeric user name.</a></h2>
-So put string quotes around it. :-)<p>
+Either upgrade to a post-5.0.5 fetchmail or put string quotes around it. :-)<p>
+
+The configuration file parser in older fetchmail versions treated any
+all-numeric token as a number, which confused it when it was
+expecting a name. String quoting forces the token's class.<p>
-The configuration file parser treats any all-numeric token as a
-number, which will confuse it when it's expecting a name. String
-quoting forces the token's class.<p>
+The lexical analyzer in 5.0.6 and beyond is smarter and assumes
+any token following "username" or "password" is a string.
<hr>
<h2><a name="F3">F3. The .fetchmailrc parser won't accept my host or username beginning with `no'.</a></h2>
-You're caught in an unfortunate crack between the newer-style syntax
-for negated options (`no keep', `no rewrite' etc.) and the older style
-run-on syntax (`nokeep', `norewrite' etc.).<p>
+See <a href="#F2">F2</a> You're caught in an unfortunate crack between
+the newer-style syntax for negated options (`no keep', `no rewrite'
+etc.) and the older style run-on syntax (`nokeep', `norewrite'
+etc.).<p>
-You can work around this easily. Just put string quotes around your
+Upgrade to a 5.0.6 or later fetchmail, or put string quotes around your
token.<p>
-I haven't fixed this because there is no good fix for it short of
-implementing a token pushback stack in the lexer. That's more
-additional complexity than I'm willing to add to banish a very
-marginal bug with an easy workaround.<p>
-
<hr>
<h2><a name="F4">F4. I'm migrating from popclient. How do I need to modify my .poprc?</a></h2>
It won't work if the second line is just "<CODE>user itz</CODE>". This is silly.<p>
-It seems fetchmail decides to RECP the `default local user' (ie. the
+It seems fetchmail decides to RECP the `default local user' (i.e. the
uid running fetchmail) unless there are local aliases, and the
-`default' aliases (itz->itz) don't count. They should.<p>
+`default' aliases (itz->itz) don't count. They should.<p>
Answer:<p>
<h2><a name="C2">C2. How can I arrange for a fetchmail daemon to get killed when I log out?</a></h2>
The easiest way to dispatch fetchmail on logout (which will work
-reliably onlif you have just one login going at any time) is to
+reliably only if you have just one login going at any time) is to
arrange for the command `fetchmail -q' to be called on logout. Under
bash, you can arrange this by putting `fetchmail -q' in the file
`~/.bash_logout'. Most csh variants execute `~/.logout' on logout.
accomplish this. Thank James Laferriere <babydr@nwrain.net> for
it.<p>
+Some people start up and shut down fetchmail using the ppp-up and
+ppp-down scripts of pppd.<p>
+
<hr>
<h2><a name="C3">C3. How do I know what interface and address to use with --interface?</a></h2>
<tt>/etc/mail/deny</tt>. The database itself is at
<tt>/etc/mail/deny.db</tt>.<P>
-<P>The table itself uses email addresses, domain names, and network
+The table itself uses email addresses, domain names, and network
numbers as keys. For example,</P>
<PRE>
spammer@aol.com REJECT
any host on the 192.168.212.* network. (This feature can be used to
do other things as well; see the <a
href="http://www.sendmail.org/m4/anti-spam.html">sendmail
-documentattion</a> for details)</P>
+documentation</a> for details)</P>
To actually set up the database, run
in sendmail's configuration, you can leave the <code>rewrite</code>
option off.<P>
+If your sendmail complains ``sendmail does not relay'', make sure
+your sendmail,cf file says
+
+<code>
+Cwlocalhost
+</code>
+
+so that sendmail recognizes `localhost' as a name of its host.<p>
+
+If you're mailing from another machine on your local network, also
+ensure that its IP address is listed in ip_allow or name in name_allow
+(usually in /etc/mail/)<p>
+
+If you find that your sendmail doesn't like the address
+`FETCHMAIL-DAEMON@localhost' (which is used in the bouncemail
+that fetchmail generates), you may have to set
+<code>FEATURE(accept_unqualified_senders)</code>.<P>
+
Günther Leber reports that Digital Unix sendmails won't work with
fetchmail. The symptom is an error message "<code>553 Local configuration
error, hostname not recognized as local</code>". The problem is that
The ISP can make the 'mbox-userstr-' prefix anything they choose
but a string matching the user host name is likely.<p>
-
+
To use this line you must:<p>
<ol>
in the alias directory (normally /var/qmail/alias) with the contents:<p>
<pre>
- | ../bin/qmail-inject -a -f"$SENDER" "${LOCAL#mbox-userstr-}@$HOST}"
+ | ../bin/qmail-inject -a -f"$SENDER" "${LOCAL#mbox-userstr-}@$HOST"
</pre>
Note this <em>does</em> require a modern /bin/sh.<p>
+Peter Wilson adds: <P>
+
+``My ISP uses "alias-unzzippedcom-" as the prefix, which means that I
+need to name my file ".qmail-unzzippedcom-default". This is due to
+qmail's assumption that a message sent to user-xyz is handled by the
+file ~user/.qmail-xyz (or ~user/.qmail-default).''<p>
+
Luca Olivetti adds:<P>
If you aren't using qmail locally, or you don't want to set up the
<hr>
<h2><a name="T3">T3. How can I use fetchmail with exim?</a></h2><p>
-By default, the exim listener enforces the the RFC1123 requirement
-that MAIL FROM and RCPT TO addresses you pass to it have to be canonical
-(e.g. with a fully qualified hostname part). <p>
+If you have <CODE>rewrite</CODE> on: <P>
+
+There is an RFC1123 requirement that MAIL FROM and RCPT TO addresses
+you pass to it have to be canonical (e.g. with a fully qualified
+hostname part). Therefore fetchmail tries to pass fully qualified
+RCPT TO addresses. But exim does not by default accept `localhost' as
+a fully qualified domain. This can be fixed.<P>
+
+In exim.conf, add `localhost' to your local_domains declaration if it's not
+already present. For example, the author's site at thyrsus.com would
+have a line reading:<P>
+
+<pre>
+ local_domains = thyrsus.com:localhost
+</pre>
+
+If you have <CODE>rewrite</CODE> off:<P>
-Fetchmail always passes fully qualified RCPT TO addresses. But
MAIL FROM is a potential problem if the MTAs upstream from your fetchmail
don't necessarily pass canonicalized From and Return-Path addresses,
and fetchmail's <CODE>rewrite</CODE> option is off. The specific case
ones. Use `forcecr'.<P>
<hr>
-<h2><a name="S1">S1. How can I use fetchmail with Microsoft Exchange?</a></h2><p>
+<h2><a name="S1">S1. How can I use fetchmail with qpopper?</a></h2>
+
+Qualcomm's qpopper is probably the best-of-breed among POP3 servers, and
+is very widely deployed. Nevertheless, it has some problems which
+fetchmail exposes. We recommend using <a href="#G7">IMAP</a> instead if at
+all possible. If you must talk to qpopper, here are some problems to
+be aware of:<p>
+
+<h3>Problems with retrieving large messages from qpopper 2.53</h3>
+
+Tony Tang <a href="mailto:tyw@atnhk.com"><tyw@atnhk.com></a>
+reports that there is a bad intercation between fetchmail and qpopper
+2.5.3 under Red Hat Linux versions 5.0 to 5.2, kernels 2.0.34 to
+2.0.35. When fetching very large messages (over 700K) from 2.5.3,
+fetchmail will hang with a socket error.<p>
+
+This is probably not a fetchmail bug, but rather a symptom of some
+problem in the networking stack that qpopper's transmission pattern is
+tickling, as fetchpop (another Linux POP client) also displays the hang
+but Netscape running under Win95 does not. The problem can also be
+banished by <a
+href="http://www.eudora.com/freeware/qpop.html">upgrading to qpopper
+3.0b1</a>.<p>
+
+<h3>Bad interaction with fetchmail 4.4.2 to 4,4.7</h3>
+
+Versions of fetchmail from 4.4.2 through 4.4.7 had a bad interaction
+with Eudora qpopper versions 2.3 and later. See <a href="#X5">X5</a>
+for details. The solution is to upgrade your fetchmail.<p>
+
+<hr>
+<h2><a name="S2">S2. How can I use fetchmail with Microsoft Exchange?</a></h2>
M$ Exchange violates the POP3 RFCs. Its LIST command does not reveal
the real sizes of mail in the pop mailbox, but the sizes of the
compressed versions in the exchange mail database (thanks to Arjan De
Vet and Guido Van Rooij for alerting us to this problem).<P>
-Fetchmail works with M$ Exchange, despite this braindamage. Two
+Fetchmail works with M$ Exchange, despite this brain damage. Two
features are compromised. One is that the --limit option will not
work right (it will check against compressed and not actual sizes).
The other is that a too-small SIZE argument may be passed to your
mailserver.<P>
<hr>
-<h2><a name="S2">S2. How can I use fetchmail with CompuServe RPA?</a></h2>
+<h2><a name="S3">S3. How can I use fetchmail with CompuServe RPA?</a></h2>
First, make sure your fetchmail has the RPA support compiled in.
Stock fetchmail binaries (such as you might get from an RPM) don't.
</pre>
<hr>
-<h2><a name="S3">S3. How can I use fetchmail with Demon Internet's SDPS?</a></h2>
+<h2><a name="S4">S4. How can I use fetchmail with Demon Internet's SDPS?</a></h2>
+
+<h3>Single-drop mode</h3>
+
+You can get fetchmail to download the email for just one user from
+Demon Internet's POP3 server by giving it a username consisting of your
+Demon user name followed by your account name, with an at-sign between
+them.<P>
+
+For example, to download email for the user <philh@vision25.demon.co.uk>,
+you could use the following .fetchmailrc file:<P>
+
+<pre>
+set postmaster "philh"
+poll pop3.demon.co.uk with protocol POP3:
+ user "philh@vision25" is philh
+</pre>
+
+<h3>Multi-drop mode</h3>
Demon Internet's SDPS service is an implementation of POP3. All messages
have a Received: header added when they enter the maildrop, like this:
want to leave mail on the server use `uidl' and `keep'; Demon does not
implement the obsolete `top' command, because SDPS combines messages
residing on two separate punt clusters into a single POP3 maildrop.
+If you do use UIDL, be aware that the "user@host" form for fetching
+mail from a particular Demon host will confuse fetchmail's UIDL code;
+use user+host.<P>
+
Note that Demon may delete mail on the server which is more than 30
days old; see their <a
href="http://www.demon.net/services/mail/pop3.html">POP3 page</a> for
<h3>The SDPS extension</h3>
-There's a different way to solve this problem. It's not necessary on
-Demon Internet, since fetchmail can parse Received addresses, but the
-person who implemented this didn't know that. It may be useful if
-Demon Internet ever changes mail transports.<P>
+There's a different way to do multidrop. It's not necessary on Demon
+Internet, since fetchmail can parse Received addresses, but the person
+who implemented this didn't know that. It may be useful if Demon
+Internet ever changes mail transports.<P>
SDPS includes a non-standard extension for retrieving the envelope of a
message (*ENV), which fetchmail optionally supports if compiled with the
may fail. To force SDPS mode, pick "sdps" as your protocol.<P>
<hr>
-<h2><a name="S4">S4. How can I use fetchmail with usa.net's servers?</a></h2>
+<h2><a name="S5">S5. How can I use fetchmail with usa.net's servers?</a></h2>
Enable `<CODE>fetchall</CODE>'. A user reports that the 2.2 version
of USA.NET's POP server reports that you must use the
provider.)<P>
<hr>
-<h2><a name="S5">S5. How can I use fetchmail with HP OpenMail?</a></h2>
+<h2><a name="S6">S6. How can I use fetchmail with HP OpenMail?</a></h2>
-No special configuration is required, but OpenMail has an annoying bug
-similar to the big one in <a href="#S1">Microsoft Exchange</a>.
-The message sizes it gives in the LIST are rounded to the nearest 1024
-bytes. It also has a nasty habit of discarding headers it doesn't
-recognize, such as X- and Resent- headers.<P>
+No special configuration is required, but OpenMail versions prior to
+6.0 have an annoying bug similar to the big one in <a
+href="#S2">Microsoft Exchange</a>. The message sizes it gives in the
+LIST are rounded to the nearest 1024 bytes. It also has a nasty habit
+of discarding headers it doesn't recognize, such as X- and Resent-
+headers.<P>
As with M$ Exchange, the only real fix for these problems is to get a
-POP (or preferably IMAP) server that isn't brain-dead.<P>
+POP (or preferably IMAP) server that isn't brain-dead. OpenMail's
+project manager claims these bugs have been fixed in 6.0<P>
+
+<hr>
+<h2><a name="S8">S8. How can I use fetchmail with Hotmail?</a></h2>
+
+You can't, yet. But Hugo Rabson has written a script called `hotmole'
+that can retrieve Hotmail mail via the web using Lynx. The script
+is available on <a
+href="http://www.jin-sei-kai.demon.co.uk/hugo/linux.html">
+Hugo Rabson's Linux page</a>.<P>
+
+<hr>
+<h2><a name="S9">S9. How can I use fetchmail with MSN?</a></h2>
+
+You can't. MSN uses something that looks like POP3, except the
+authentication part is nonstandard. And of course they don't
+document it, so nobody but their Windows clients can speak it.<p>
+
+This is a customer lock-in tactic; we recommend boycotting MSN as the
+only appropriate response.<p>
+
+<hr>
+<h2><a name="S10">S10. How can I use fetchmail with SpryNet?</a></h2>
+
+The SpryNet POP3 servers mark a message queried with TOP as seen.
+This means that if your connection drops in mid-message, it may end
+up invisibly stuck on your mail spool. Use the <code>fetchall</code>
+flag to ensure that it's recovered on the next cycle.<p>
<hr>
<h2><a name="K1">K1. How can I use fetchmail with SOCKS?</a></h2>
want the "runsocks" program.
<LI> Set the environment variable SOCKS_SERVER to the server you'll be
using. Alternatively, you may set SOCKS4_SERVER and/or
- SOCKS5_SERVER. Eg:
+ SOCKS5_SERVER. E.g.:
<pre>
export SOCKS5_SERVER=socks.my.domain.com
</pre>
containing the Rconnect library.<p>
<hr>
-<h2><a name="#S6">S6. How can I use fetchmail with geocities POP3 servers?</a></h2>
+<h2><a name="S7">S7. How can I use fetchmail with geocities POP3 servers?</a></h2>
Nathan Cutler reports that the the mail.geocities.com POP3 servers
fail to include the first Received line of the message in the send to
continuations as body lines and doesn't parse any of the following
headers.<P>
-Workaround:
+Workaround is to use "mda" keyword or "-mda" switch:
<pre>
-mda "sed -e1,2D | formail | /usr/bin/procmail -d <user>
+mda "sed -e '1s/^\t/Received: /' | formail | /usr/bin/procmail -d <user>"
</pre>
+Replace \t with exactly one tabulation character.
+
+You should also consider using "fetchall" option because Geocities' servers
+sometimes think that the first 45 messages have already been read.<P>
-Fix: Get an email provider that doesn't suck. Geocities's pop-up adds
+Fix: Get an email provider that doesn't suck. Geocities' pop-up adds
are lame, you should boycott them anyway.<P>
<hr>
experimental kernel and net-tools. It should not be hard to build fetchmail on
other IPv6 implementations if you can port the inet6-apps kit.<P>
-To use fetchmail with network security (read: IPsec), you need a system that
+To use fetchmail with networking security (read: IPsec), you need a system that
supports IPsec, the API described in the "Network Security API for Sockets"
(draft-metz-net-security-api-01.txt), and the inet6-apps kit. This currently
means that you need to have a BSD/OS or NetBSD system with the NRL IPv6+IPsec
mailhost. Let's call this account "noddy".
<LI>
On mailhost, set up no-password access for noddy@yourhost. Add to your
-SSH authorised_keys file:
+SSH authorized_keys file:
<PRE>
command="socket localhost 110",no-port-forwarding 1024 ......
<a href="ftp://athena-dist.mit.edu/pub/ATHENA/kerberos">athena-dist.mit.edu</a>
but mind the export restrictions). If you have these, compiling in GSS support
is simple: add a <pre>--with-gssapi=[/path/to/krb5/root]</pre> option to
-configure. For instance, I have all of my kerberos V libraries installed under
+configure. For instance, I have all of my Kerberos V libraries installed under
/usr/krb5 so I run <pre>configure --with-gssapi=/usr/krb5</pre><p>
Setting up Kerberos V authentication is beyond the scope of this FAQ
After that things are very simple. Set your protocol to imap-gss in your
.fetchmailrc, and omit the password, since imap-gss doesn't need one. You
can specify a username if you want, but this is only useful if your mailbox
-belongs to a username different from your kerberos principal. <p>
+belongs to a username different from your Kerberos principal. <p>
Now you don't have to worry about your password appearing in cleartext in
your .fetchmailrc, or across the network.<p>
eviscerated (not yet, anyway -- our would-be totalitarians are
working on trashing the Second Amendment first).<P>
+<h3>Option 1:</h3>
+
I can therefore safely <em>tell</em> you, in documentation, that there
appears to be a way to set up an SSL command chain using the `plugin'
option (originally designed for handling proxy connections across
Now add `plugin ssl_connect' to the server options for your connection.<P>
+<h3>Option 2:</h3>
+
+For those in the U.S., there is a set of SSL patches for fetchmail
+available from the <a href="http://www.cryptography.org">North
+American Cryptographic Archives</a>, in the SSL directory. You have
+to answer three questions about your qualification to access the
+archive, before you are allowed in. You can enter through the main
+page for the server and browse the archive, or you can go <a
+href="http://www.cryptography.org/cgi-bin/crypto.cgi/SSL">straight to
+the SSL directory</a>. There you will find patch files against the
+fetchmail release sources as well as patched source tarballs.<P>
+
+While we cannot make the SSL sources available to anyone outside of the
+U.S. at this time, if the patches do leak out of the U.S. through no
+fault of our own, and someone informs us of their location, we can
+provide the URL pointing to archive sites outside of the U.S.<P>
+
+Newer versions of the SSL patches make appear in the `new' directory
+and stay there a while until they can be processed and moved to the SSL
+directory. Check for patches in `new' if you do not find patches
+for the latest fetchmail release.<P>
+
<hr>
<h2><a name="R1">R1. Fetchmail isn't working, and -v shows `SMTP connect failed' messages.</a></h2>
</pre>
so your <code>/etc/hosts</code> file is checked first. If you're
-running GNU libc6, check your <code>/etc/nsswitch</code> file. Make
+running GNU libc6, check your <code>/etc/nsswitch.conf</code> file. Make
sure it says something like
<pre>
- order hosts,bind
+ hosts: files dns
</pre>
again, in order to make sure <code>/etc/hosts</code> is seen first.<P>
+If you have a hostname set for your machine, and this hostname does
+not appear in /etc/hosts, you will be able to telnet to port 25 and
+even send a mail with rcpt to: user@host-not-in-/etc/hosts, but
+fetchmail can't seem to get in touch with sendmail, no matter what you
+set smtpaddress to.<p>
+
We had another report from a Linux user of fetchmail 2.1 who solved his SMTP
connection problem by removing the reference to -lresolv from his link
line and relinking. Apparently in some older Linux distributions the
broken.<p>
<hr>
-<h2><a name="#R3">R3. Fetchmail dumps core when given an invalid rc file.</a></h2>
+<h2><a name="R3">R3. Fetchmail dumps core when given an invalid rc file.</a></h2>
This is usually reported from AIX or Ultrix, but has even been known
to happen on Linuxes without a recent version of <code>flex</code>
Unfortunately it appears from doing gdb traces that whatever free()
calls producing the problem are being made by the C library itself, not the
fetchmail code (they're all from within fclose, and not an fclose called
-by fetchmail, either).<p>
+directly by fetchmail, either).<p>
<hr>
-<h2><a name="R5">R5. Fetchmail dumps core when I use a .netrc file but works otherwise.</a></h2>
+<h2><a name="R5">R5. Running fetchmail in daemon mode doesn't work.</a><br></h2>
-We have a report that under Solaris 2.5 using gcc-2.7.2, if fetchmail
-is compiled with -O or -O2, it segfaults on startup when reading a
-.netrc.<p>
-
-You can work around this by disabling optimization.<p>
-
-There may be an actual bug here that the optimizer exposes; the stack
-trace says the segfault is in free() and has all the earmarks of a heap-
-corruption screw. But the symptom doesn't reproduce under Linux with the
-same .fetchmailrc and .netrc.<p>
-
-<hr>
-<h2><a name="R6">R6. Running fetchmail in daemon mode doesn't work.</a><br></h2>
-
-We have one report from a Solaris 4.1.4 user that trying to run
+We have one report from a SunOS 4.1.4 user that trying to run
fetchmail in detached daemon mode doesn't work, but that using the
same options with -N (nodetach) is OK.<P>
This should not happen under Linux or any truly POSIX-conformant Unix.<P>
<hr>
-<h2><a name="R7">R7. Fetchmail hangs when used with pppd.</a></h2>
+<h2><a name="R6">R6. Fetchmail hangs when used with pppd.</a></h2>
Your problem may be with pppd's `demand' option. We have a report that
fetchmail doesn't play well with it, but works with pppd if `demand'
is turned off. We have no idea why this is.<p>
<hr>
-<h2><a name="R8">R8. Fetchmail randomly dies with socket errors.</a></h2>
+<h2><a name="R7">R7. Fetchmail randomly dies with socket errors.</a></h2>
Check the MTU value in your PPP interface reported by
<code>/sbin/ifconfig</code>. If it's over 600, change it in your PPP
mru 552
</pre>
+<hr>
+<a name="R8">R8. Fetchmail running as root stopped working after an OS upgrade</a></h2>
+
+In RH 6.0, the HOME value in the boot-time root environment changed
+from /root to / as the result of a change in init. Move your
+.fetchmailrc or use a -f option to explicitly point at the file.
+(Oddly, a similar problem has been reported from Debian systems.)<P>
+
+<hr>
+<h2><a name="#R9">R9. Fetchmail is timing out after fetching certain
+messages but before deleting them</a></h2>
+
+There's a TCP/IP stalling problem under Redhat 6.0 (and possibly other
+recent Linuxes) that can cause this symptom. Brian Boutel writes:<p>
+
+<blockquote>
+TCP timestamps are turned on on my Linux boxes (I assume it's now the
+default). This uses 12 extra bytes per segment.
+When the tcp connection starts, the other end agrees a MSS of 1460,
+and then fragments 1460 byte chunks into 1448 and 12, because
+is is not allowing for the timestamp.<p>
+
+Then, for reasons I can't explain, it waits a long time (typically 2
+minutes) after the ack is sent before sending the next (fragmented)
+packet. Turning off tcp timestamps avoids the fragmentation and
+restores normal behaviour. To do this, [execute]<p>
+
+echo 0 > /proc/sys/net/ipv4/tcp_timestamps<p>
+
+I'm still unclear about the details of why this is happening. At least
+[now] I am now getting good performance and no queue blocking.
+</blockquote>
+
<hr>
<h2><a name="D1">D1. I think I've set up fetchmail correctly, but I'm not getting any mail.</a></h2>
and see <a href="#R1">R1</a>.<p>
<hr>
-<h2><a name="D2">D2. All my mail seems to disappear after an interrupt.</a></h2>
+<h2><a name="D2">D2. All my mail seems to disappear after a dropped connection.</a></h2>
One POP3 daemon used in the Berkeley Unix world that reports itself as
POP3 version 1.004 actually throws the queue away. 1.005 fixed that.
<h2><a name="D3">D3. Mail that was being fetched when I interrupted my fetchmail seems to have been vanished.</a></h2>
Fetchmail only sends a delete mail request to the server when either
-(a) it gets a positive delivery acknowledgement from the SMTP
+(a) it gets a positive delivery acknowledgment from the SMTP
listener, or (b) it gets an error 571 (the spam-filter error) from the
listener. No interrupt can cause it to lose mail.<p>
<h2><a name="M1">M1. I've declared local names, but all my multidrop
mail is going to root anyway.</a></h2>
-Somehow your fetchmail is never matching the hostname part of
-recipient names to the name of the mailserver machine. This probably
-means it is unable to recognize hostname parts as being DNS names of
-the mailserver, and indicates some kind of DNS configuration
-problem either on the server or your client machine. <p>
+Somehow your fetchmail is never recognizing the hostname part of
+recipient names it parses out of To/Cc/envelope-header lines as
+matching the name of the mailserver machine. To check this, run
+fetchmail in foreground with -v -v on. You will probably see a lot of
+messages with the format ``line rejected, %s is not an alias of the
+mailserver'' or ``no address matches; forwarding to %s.'' <p>
+
+These errors usually indicate some kind of DNS configuration problem
+either on the server or your client machine. <p>
The easiest workaround is to add a `<CODE>via</CODE>' option (if
necessary) and add enough aka declarations to cover all of your
you in lots of ways, for example by making your machines
intermittently or permanently unreachable to the rest of the net.<P>
+Occasionally these errors indicate the sort of header-parsing problem
+described in <a href="#M7">M7</a>.<P>
+
<hr>
<h2><a name="M2">M2. I can't seem to get fetchmail to route to a local domain properly.</a></h2>
In general, this is not really a good idea. It would be smarter to
just let the mail sit in the mailserver's queue and use fetchmail's
ETRN mode to trigger SMTP sends periodically (of course, this means
-you have to poll more frequently than the mailserver's expiry period).
+you have to poll more frequently than the mailserver's expiration period).
If you can't arrange this, try setting up a UUCP feed.<P>
If neither of these alternatives is available, multidrop mode may do
Normally, multidrop mode tries to deduce an envelope address from a message
before parsing the To/Cc/Bcc lines (this enables it to avoid losing to mailing
-list software that doesn't put a recipient addess in the To lines).<p>
+list software that doesn't put a recipient address in the To lines).<p>
Some ways of accumulating a whole domain's messages in a single server
mailbox mean it all ends up with a single envelope address that is
mailserver's DNS names as you can. When an address's host part
matches an aka name, no DNS lookup needs to be done to check it.<p>
-If you're sure you've pre-declared all of your mailserver's DNS dames,
+If you're sure you've pre-declared all of your mailserver's DNS names,
you can use the `<CODE>no dns</CODE>' option to prevent other hostname
parts from being looked up at all.<p>
<BLOCKQUOTE>
I use this scheme with 2 virtual domains and the default ISP
user+domain and service about 30 mail accounts + majordomo on my
-inside pop3 server with fetchmail and sendmail 8.83<P>
+inside pop3 server with fetchmail and sendmail 8.83
</BLOCKQUOTE>
<hr>
<pre>
Received: from send103.yahoomail.com (send103.yahoomail.com [205.180.60.92])
by iserv.ttns.net (8.8.5/8.8.5) with SMTP id RAA10088
- for <ksturgeon@fbceg.org>; Wed, 9 Sep 1998 17:01:59 -0700
+ for <ksturgeon@fbceg.org>; Wed, 9 Sep 1998 17:01:59 -0700
</pre>
it checks to see if `iserv.ttns.net' is a DNS alias of your mailserver
describing your local delivery agent. Try inserting the `E' option in the
flags part (the F= string). This will make sendmail turn each dangerous
-start-of-line From into a >From, preventing programs further downstream
+start-of-line From into a >From, preventing programs further downstream
from acting up.<p>
<hr>
the equivalent command-line options):<P>
<pre>
- mda "cat >MBOX" keep fetchall
+ mda "cat >MBOX" keep fetchall
</pre>
This will capture what fetchmail gets from the server, except for (a)
simulation along with the other things described in the FAQ entry on
<a href="#G3">reporting bugs</a>.
-<hr>
-<h2><a name="O1">O1. The --logfile option doesn't work if the logfile doesn't exist.</a></h2>
-
-This is a feature, not a bug. It's in line with normal practice for
-system daemons and allows you to suppress logging by removing the log,
-without hacking potentially fragile startup scripts. To get around
-it, just touch(1) the logfile before you run fetchmail (this will have
-no effect on the contents of the logfile if it already exists).<P>
-
<hr>
<h2><a name="X5">X5. Using POP3, retrievals seems to be fetching too much!</a></h2>
fetchmail version only, this had the side effect of forcing RETR
use.<P>
+<hr>
+<h2><a name="O1">O1. The --logfile option doesn't work if the logfile doesn't exist.</a></h2>
+
+This is a feature, not a bug. It's in line with normal practice for
+system daemons and allows you to suppress logging by removing the log,
+without hacking potentially fragile startup scripts. To get around
+it, just touch(1) the logfile before you run fetchmail (this will have
+no effect on the contents of the logfile if it already exists).<P>
+
<hr>
<h2><a name="O2">O2. Every time I get a POP or IMAP message the header
is dumped to all my terminal sessions.</a></h2>
Your resolver configuration may be causing one of these lookups to
fail and time out. Check <code>/etc/resolv.conf</code> and
<code>/etc/hosts</code> file. Make sure your hostname and
-fully-qualified doman name are both in <code>/etc/hosts</code>, and
+fully-qualified domain name are both in <code>/etc/hosts</code>, and
that hosts is looked at before DNS is queried. You probably also want
your remote mail server(s) to be in the hosts file.<p>
Re-ordering messages is a user-agent function, anyway.<P>
+<hr>
+<h2><a name="O8">O8. I'm using pppd. Why isn't my monitor option working?</a></h2>
+
+There is a combination of circumstances that can confuse fetchmail.
+If you have set up demand dialing with pppd, and pppd has an idle
+timeout, and you have lcp-echo-interval set, then the
+lcp-echo-interval time must be longer than the pppd idle timeout.
+Otherwise it is going keep increasing the packet counters that fetchmail
+relies upon, triggering fetchmail into polling after its own delay
+interval and thus preventing the pppd link from ever reaching its
+inactivity timeout.<p>
+
<HR>
<table width="100%" cellpadding=0><tr>
<td width="30%">Back to <a href="index.html">Fetchmail Home Page</a>
<td width="30%" align=center>To <a href="/~esr/sitemap.html">Site Map</a>
-<td width="30%" align=right>$Date: 1998/11/29 02:03:48 $
+<td width="30%" align=right>$Date: 1999/08/21 06:04:18 $
</table>
<P><ADDRESS>Eric S. Raymond <A HREF="mailto:esr@thyrsus.com"><esr@snark.thyrsus.com></A></ADDRESS>