<hr/>
<h1 id="FAQ">Frequently Asked Questions About Fetchmail</h1>
-<p>Before reporting any bug, please read <a href="#G3">G3</a> for
-advice on how to include diagnostic information that will get your
-bug fixed as quickly as possible.</p>
+<p><strong>Support? Bug reports?</strong> Please read <a
+href="#G3">G3</a> for what information is required to get your problem
+solved as quickly as possible.</p>
-<p>Note that this FAQ is occasionally updated from the SVN repository
+<p>Note that this FAQ is occasionally updated from the Git repository
and speaks in the past tense ("since") about a fetchmail release that is
not yet available. Please try a release candidate for that version in
case you need the new option.</p>
<a href="#G1">G1. What is fetchmail and why should I bother?</a><br/>
<a href="#G2">G2. Where do I find the latest FAQ and fetchmail sources?</a><br/>
-<a href="#G3">G3. I think I've found a bug. Will you fix it?</a><br/>
+<a href="#G3">G3. Something doesn't work/I think I've found a bug. Will you fix it?</a><br/>
<a href="#G4">G4. I have this idea for a neat feature. Will you add it?</a><br/>
-<a href="#G5">G5. I want to make fetchmail behave like Outlook Express.</a><br/>
+<a href="#G5">G5. I want to make fetchmail remove kept mail after some days.</a><br/>
<a href="#G6">G6. Is there a mailing list for exchanging tips?</a><br/>
<a href="#G7">G7. So, what's this I hear about a fetchmail paper?</a><br/>
<a href="#G8">G8. What is the best server to use with fetchmail?</a><br/>
<a href="#C6">C6. Fetchmail works OK started up manually, but not
from an init script.</a><br/>
<a href="#C7">C7. How can I forward mail to another
-host?.</a><br/>
-
+host?</a><br/>
+<a href="#C8">C8. Why is "NOMAIL" an error?/I frequently get messages
+from cron!</a><br/>
<h2 id="C_T">How to make fetchmail play nice with various MTAs</h2>
<a href="#R11">R11. My server is hanging or emitting errors on CAPA.</a><br/>
<a href="#R12">R12. Fetchmail isn't working and reports getaddrinfo
errors.</a><br />
-<a href="#R13">R13. What does "Interrupted system call" mean?</a>
+<a href="#R13">R13. What does "Interrupted system call" mean?</a><br />
+<a href="#R14">R14. Since upgrading fetchmail/OpenSSL, I can no longer connect!</a><br />
+<a href="#R15">R15. Help, I'm getting Authorization failure!</a><br />
<h2 id="C_H">Hangs and lockups</h2>
messages.</a><br/>
<a href="#X9">X9. Missing "Content-Transfer-Encoding" header
with Domino IMAP</a><br/>
+<a href="#X10">X10. Fetchmail delivers partial messages</a><br/>
+
+
<h2 id="C_O">Other problems</h2>
<a href="#O1">O1. The --logfile option doesn't work if the logfile
<a href="#O16">O16. Why is the Fetchmail FAQ only available in
ISO-216 A4 format? How do I get the FAQ in Letter
format?</a><br/>
+<a href="#O17">O17. Linux logs "TCP(fetchmail:...): Application bug, race
+ in MSG_PEEK."</a><br/>
<hr/>
<h1 id="G">General problems</h1>
not audit itself.</p>
<p>Fetchmail is licensed under the <a
-href="http://www.gnu.org/copyleft/gpl.html">GNU General Public
-License</a>.</p>
+href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public
+License v2</a>. Details, including an exception that allows linking
+against OpenSSL, are in the COPYING file in the fetchmail
+distribution.</p>
<p>If you found this FAQ in the distribution, see the README for
fetchmail's full feature list.</p>
distribution. Because it freezes at distribution release time, it
may not be completely current.</p>
-<h2><a id="G3" name="G3">G3. I think I've found a bug. Will you fix
-it?</a></h2>
+<h2><a id="G3" name="G3">G3. Something does not work/I think I've found a bug. Will you fix it?</a></h2>
<p>The first thing you should to is to upgrade to the newest version of
fetchmail, and then see if the problem reproduces. So you'll probably
<p>Bugs will be fixed, provided you include enough diagnostic information
for me to go on. Send bugs to <a
href="mailto:fetchmail-users@lists.berlios.de">fetchmail-users</a>.
-When reporting bugs, please include the following:</p>
+When sending bugs or asking for help, please <strong>do not make up
+ information except your password</strong> and please
+<strong>report</strong> the following:</p>
<ol>
<li>Your operating system.</li>
name and origin of the RPM or other binary package you
installed.</li>
-<li>A copy of your POP or IMAP server's greeting line.</li>
-
<li>The name and version of the SMTP listener or MDA you are
forwarding to.</li>
<li>Any command-line options you used.</li>
-<li>The output of fetchmail -V called with whatever other
-command-line options you used.</li>
+<li>The output of <kbd>env LC_ALL=C fetchmail -V</kbd> called with
+whatever other command-line options you used.</li>
-<li><strong>The output of <kbd>fetchmail --nodetach -vvv --nosyslog</kbd> with whatever other command-line options you use routinely.</strong></li>
+<li><strong>The output of <kbd>env LC_ALL=C fetchmail --nodetach -vvv
+--nosyslog</kbd> with whatever other command-line options you use
+routinely.</strong>
+ <p>It is very important that the transcript include your
+POP/IMAP server's greeting line, so I can identify it in case of server
+problems. This transcript will not reveal your passwords, which are
+specially masked out precisely so transcripts can be passed around.</p>
+</li>
</ol>
<p>If you have FTP access to your remote mail account, and you have
failure was introduced in the lower half. Now bisect that half in
the same way. In a very few tries, you should be able to identify
the exact adjacent pair of versions between which your bug was
-introduced – and with information like that, I can usually come up
-with a fix very quickly.</p>
-
-<p>Another useful thing you can do, if you're using POP3, is to
-test for IMAP4 support on your mailserver using the autoprobe
-function of fetchmailconf. If you have IMAP4, and fetchmailconf
-doesn't tell you it's broken, switch immediately. POP3 is a weak,
-poorly-designed protocol with chronic problems, and the later
-versions after RFC1725 actually get worse rather than better.
-Changing over to IMAP4 may well make your problem go away – and if
-your ISP doesn't have IMAP4 support, bug them to supply it.</p>
-
-<p>It is helpful if you include your .fetchmailrc file, but not
+introduced. <strong>Please</strong> include session transcripts (as
+described in the last bullet point above) of <strong>both
+the working and failing versions.</strong> Often, the source of the problem
+can instantly identified by looking at the differences in protocol
+transactions.</p>
+
+<p>It may helpful if you include your .fetchmailrc file, but not
necessary unless your symptom seems to involve an error in
configuration parsing. If you do send in your .fetchmailrc, mask
-the passwords first!</p>
+the passwords first! Otherwise, fetchmail -V – as directed above
+– will usually suffice.</p>
<p>If fetchmail seems to run and fetch mail, but the headers look
mangled (that is, headers are missing or blank lines are inserted
mail chain to screw up that look like fetchmail's fault, but you
may be able to fix these by tweaking your configuration.</p>
-<p>A transcript of the failed session with "--nosyslog --nodetach -vvv"
-(yes, that's <em>three</em> -v options, enabling debug mode) will almost
-always be useful. It is very important that the transcript include your
-POP/IMAP server's greeting line, so I can identify it in case of server
-problems. This transcript will not reveal your passwords, which are
-specially masked out precisely so transcripts can be passed around.</p>
-
-<p>If you upgraded your fetchmail and something broke, you should
-include session transcripts with "--nosyslog --nodetach -vvv" of both
-the working and failing versions. Very often, the source of the problem
-can instantly identified by looking at the differences in protocol
-transactions.</p>
-
<p>If the bug involves a core dump or hang, a gdb stack trace is
good to have. (Bear in mind that you can attach gdb to a running
but hung process by giving the process ID as a second argument.)
notes</a>. Note that this document is partially obsoleted by the
<a href="design-notes.html">updated design notes.</a></p>
-<h2><a id="G5" name="G5">G5. I want to make fetchmail behave like
-Outlook Express.</a></h2>
+<h2><a id="G5" name="G5">G5. I want to make fetchmail remove kept mail after
+some days.</a></h2>
<p>The second-most-requested feature for fetchmail, after
content-based filtering, is the ability to have it remove messages
from a maildrop after N days, typically to be used with the
-<code>keep</code> option as a sort of poor man's newsgroup
-facility. Microsoft's Outlook Express supports this.</p>
+<code>keep</code> option. Several messaging programs with graphical
+user interface support this feature.</p>
<p>This feature is not yet implemented. It may be at a future date,
spare time of developers permitting.</p>
+<p>For the time being, the contrib/ directory contains some <em>unsupported</em>
+ tools that may help, namely mold-remover.py and delete-later.</p>
+
<h2><a id="G6" name="G6">G6. Is there a mailing list for exchanging
tips?</a></h2>
<p>There is a fetchmail-users list
<fetchmail-users@lists.berlios.de>
for bug reports and people who want to discuss configuration issues of
-fetchmail. It's a Mailman list, see <a
- href="http://lists.berlios.de/mailman/listinfo/fetchmail-users">http://lists.berlios.de/mailman/listinfo/fetchmail-users</a>.</p>
+fetchmail. Please see <a href="#G3">G3 above for information you need to
+report.</a> It's a Mailman list, see <a
+ href="http://lists.berlios.de/mailman/listinfo/fetchmail-users">http://lists.berlios.de/mailman/listinfo/fetchmail-users</a>
+for info and subscription.</p>
<p>There is a fetchmail-devel list
<fetchmail-devel@lists.berlios.de> for people who want to discuss
fixes and improvements in fetchmail and help co-develop it. It's a
Mailman list, which you can sign up for at <a
-href="http://lists.berlios.de/mailman/listinfo/fetchmail-devel">http://lists.berlios.de/mailman/listinfo/fetchmail-devel</a>.
-There is also an announcements-only list,
+href="http://lists.berlios.de/mailman/listinfo/fetchmail-devel">http://lists.berlios.de/mailman/listinfo/fetchmail-devel</a>.</p>
+<p>There is also an announcements-only list,
<fetchmail-announce@lists.berlios.de>, which you can sign up for at <a
href="http://lists.berlios.de/mailman/listinfo/fetchmail-announce">http://lists.berlios.de/mailman/listinfo/fetchmail-announce</a>.</p>
utility - unfortunately it does not detect SSL-wrapped variants).</p>
<p>If you have the option, we recommend using or installing an
-IMAP4rev1 or UIDL- and TOP-capable POP3 server. IMAP enables some
-significant performance optimizations.</p>
-
-<p>Don't be fooled by NT/Exchange propaganda. M$ Exchange is just
-plain 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://unix-vs-nt.org/kirch/">white
-paper</a> on Unix vs. NT performance.</p>
+IMAP4rev1 or UIDL-capable POP3 server.</p>
<p>A decent POP3/IMAP server that has recently become popular is <a
href="http://dovecot.org/">Dovecot</a>.</p>
every 5 minutes means that secondary.example.com will be polled
every 30 minutes.</p>
-<h2><a id="C6" name="C6">Fetchmail works OK started up manually,
+<h2><a id="C6" name="C6">C6. Fetchmail works OK started up manually,
but not from an init script.</a></h2>
<p>Often, startup scripts have a different environment than an
fetchmail on, use the <code>smtphost</code> or
<code>smtpname</code> option. See the manual page for details.</p>
+<h2><a id="C8" name="C8">C8. Why is "NOMAIL" an error?/I frequently get messages
+from cron!</a></h2>
+
+<p>Some users want to write scripts that take action only if mail
+could/could not be retrieved, thus fetchmail reports if it has retrieved
+messages or not.</p>
+
+<p>If you do not want "no mail" to be an error condition (for instance,
+for cron jobs), use a POSIX-compliant shell and add this to the end of
+the fetchmail command line, it will change an exit code of 1 to 0 and
+others to 1:</p>
+<pre>
+|| [ $? -eq 1 ]
+</pre>
+
+<p>If you want to map more than one code to 0, you cannot cascade multiple
+<strong>|| [ $? -eq N ]</strong>, but you must instead use the
+<strong>-o</strong> operator inside the brackets, (see the test(1)
+manpage for details), such as:</p>
+
+<pre>
+|| [ $? -eq 1 -o $? -eq 9 ]
+</pre>
+
+<p>A full cron line might then look like this:</p>
+
+<pre>
+*/15 * * * * fetchmail -s || [ $? -eq 1 ]
+</pre>
+
+
<hr/>
<h1>How to make fetchmail play nice with various MTAs</h1>
<h2><a id="T1" name="T1">T1. How can I use fetchmail with
attachments on the floor, though. Microsoft acknowledges this
as a known bug and apparently has no plans to fix it.</p>
-<p>Fetchmail using IMAP supports the proprietary NTLM mode used
-with M$ Exchange servers. To enable this, configure fetchmail with
+<p>Fetchmail using IMAP usually supports the proprietary NTLM mode used
+with Microsoft Exchange servers. "Usually" here means that it fails on some
+servers for reasons that we haven't been able to debug yet, perhaps it's
+related to the NTLM domain.</p>
+
+<p>To enable this NTLM mode, configure fetchmail with
the --enable-NTLM option and recompile it. Specify a user option
value that looks like 'user@domain': the part to the left of the @
will be passed as the username and the part to the right as the
NTLM domain.</p>
-<p>M$ Exchange violates the POP3 and IMAP RFCs. Its LIST command
+<p>Microsoft Exchange violates the POP3 and IMAP 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>
-<p>Fetchmail works with M$ Exchange, despite this brain damage. Two
-features are compromised. One is that the --limit option will not
+<p>Fetchmail works with Microsoft 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
ESMTP listener, assuming you're using one (this should not be a
problem unless the actual size of the message is above the
listener's configured length limit).</p>
-<p>Somewhat belatedly, I've learned that there's supposed to be a
+<p>ESR learned that there's supposed to be a
registry bit that can fix this breakage:</p>
<pre>
deleted.</dd>
</dl>
-<p>The Microsoft pod-person who revealed this information to me
+<p>The Microsoft employee who revealed this information to ESR
admitted that he couldn't find it anywhere in their public
knowledge base.</p>
as its symptom a response to LOGIN that says "NO Ambiguous Alias".
Grant Edwards writes:</p>
-<p>This means that Exchange Server is too f*&#ing stupid to
+<blockquote><p>This means that Exchange Server is too [...] stupid to
figure out which mailbox belongs to you. Instead of actually
keeping track of which inbox belongs to which user, it uses some
half-witted, guess-o-matic heuristic to try to guess your mailbox
<p>In your case it doesn't work because your username maps to more
than one mailbox. For some people it doesn't work because their
-username maps to zero mailboxes. This is yet another inept, lame,
-almost criminally negligent design decision from our friends in
-Redmond.</p>
+username maps to zero mailboxes.</p>
<p>You've got several options:</p>
<li>Get your administrator to add an alias that maps your username
explicitly to your mailbox name.</li>
</ul>
+</blockquote>
<p>But, the best option involves finding a server that runs better
software.</p>
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>
-
-<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.
-OpenMail's project manager claims these bugs have been fixed in
+<p>OpenMail's project manager claims these bugs have been fixed in
6.0.</p>
<p>We've had a more recent report (December 2001) that the TOP
<h2><a id="S4" name="S4">S4. How can I use fetchmail with Novell GroupWise?</a></h2>
-<p>The Novell GroupWise IMAP server would be better named
-GroupFoolish; it is (according to the designer of IMAP) unusably
-broken. Among other things, it doesn't include a required content
-length in its BODY[TEXT] response.</p>
+<p>The Novell GroupWise IMAP server is (according to the designer of
+IMAP) unusably broken. Among other things, it doesn't include a required
+content length in its BODY[TEXT] response.</p>
-<p>Fetchmail works around this problem, but we strongly recommend
-voting with your dollars for a server that isn't brain-dead.</p>
+<p>Fetchmail works around this problem to some extent, but no guarantees.</p>
<h2><a id="S5" name="S5">S5. How can I use fetchmail with
InterChange?</a></h2>
it reports the message length with attachments but doesn't download
them on TOP or RETR.</p>
-<p>On Jan 9 2001, the people at InfiniteMail sent me mail informing
-me that their new 3.61.08 release of InterChange fixes this
-problem. I don't have any reports one way or the other yet.</p>
+<p>On Jan 9 2001, the people at InfiniteMail sent ESR mail informing
+him that their new 3.61.08 release of InterChange fixed this
+problem.</p>
<h2><a id="S6" name="S6">S6. How can I use fetchmail with MailMax?</a></h2>
the mail that fetchmail fetches. It's best to avoid fetching mail from
Google until they are using standards-compliant software.</p>
+<p>If you still need to use Google's mail service, these links may help (valid as of 2011-04-13):</p>
+<ul>
+ <li><a href="http://mail.google.com/support/bin/topic.py?hl=en&topic=12805">Other ways to access Gmail > POP</a></li>
+ <li><a href="http://mail.google.com/support/bin/topic.py?hl=en&topic=12806">Other ways to access Gmail > IMAP</a></li>
+<li><a href="http://mail.google.com/support/bin/answer.py?hl=en&answer=47948">Using POP on multiple clients or mobile devices</a></li>
+<li><a href="http://mail.google.com/support/bin/answer.py?hl=en&answer=13291">Some [POP3] mail was not downloaded</a></li>
+<li><a href="http://mail.google.com/support/bin/answer.py?hl=en&answer=78774">I'm having problems downloading [IMAP] mail</a></li>
+</ul>
+
<hr/>
<h1>How to set up well-known security and authentication
methods</h1>
<p>Fetchmail can use RFC1731 GSSAPI authorization to safely
identify you to your IMAP server, as long as you can share
Kerberos V credentials with your mail host and you have a GSSAPI-capable
-IMAP server - those are few.</p>
+IMAP server.</p>
<p>fetchmail does not compile in support for GSS by
-default, since it requires libraries from the Kerberos V
-distribution (available via FTP at <a
-href="ftp://athena-dist.mit.edu/pub/ATHENA/kerberos">athena-dist.mit.edu</a>).
-If you have these, compiling in GSS support is simple: add a
+default, since it requires libraries from a Kerberos V
+distribution, such as <a href="http://web.mit.edu/Kerberos/">MIT
+ Kerberos</a> or <a href="http://www.h5l.org/">Heimdal
+ Kerberos</a>.</p>
+
+<p>If you have these, compiling in GSS support is simple: add a
<code>--with-gssapi=[/path/to/krb5/root]</code> option to
configure. For instance, I have all of my Kerberos V libraries
installed under /usr/krb5 so I run <code>configure
<p>You'll need to have the <a
href="http://www.openssl.org/">OpenSSL</a> libraries installed, and they
-should at least be version 0.9.6.
+should at least be version 0.9.7.
Configure with --with-ssl. If you have the OpenSSL libraries
-installed in the default location (/usr/local/ssl) ths will
+installed in commonly-used default locations, this will
suffice. If you have them installed in a non-default location,
-you'll need to specify it as an argument to --with-ssl after an
-equal sign.</p>
+you'll need to specify the OpenSSL installation directory as an argument
+to --with-ssl after an equal sign.</p>
<p>Fetchmail binaries built this way support <code>ssl</code>,
<code>sslkey</code>, and <code>sslcert</code> options that control
interrupt long-running functions and will then be reported as
"Interrupted system call". These can sometimes be timeouts.</p>
+<h2><a id="R14" name="R14">R14. Since upgrading fetchmail/OpenSSL, I can no longer connect!</a></h2>
+
+<p>If the upgrade you did encompassed an upgrade to OpenSSL 1.0.0 or newer, you
+may need to run <code>c_rehash</code> on your certificate directories,
+particularly if you are using local certs directories (f. i. through fetchmail's <code>--sslcertpath</code> option).</p>
+
+<p>Reason: OpenSSL 1.0.0, relative to earlier versions, uses a different hash
+for the symbolic links (symlinks) in its <code>certs/</code> directory, so you
+need to recreate the symlinks by running <kbd>c_rehash
+ /etc/ssl/certs</kbd> (adjust this to where your installation keeps its
+certificates), and you cannot easily share this certs directory with
+applications linked against older OpenSSL versions.</p>
+
+<p>Note: OpenSSL's <code>c_rehash</code> script is broken in several versions,
+which can cause malfunction if several OpenSSL tools versions are installed in
+parallel in separate directories. In such cases, you may need a workaround to
+get things going. Assuming your OpenSSL 1.0.0 is installed in
+<code>/opt/openssl1.0.0</code> and your certificates are in
+<code>/home/hans/certs</code>, you'd do this (the corresponding fetchmail
+option is <kbd>--sslcertpath /home/hans/certs</kbd> on the commandline and
+<kbd>sslcertpath /home/hans/cert</kbd> in the rcfile):</p>
+
+<pre>
+env PATH=/opt/openssl1.0.0/bin /opt/openssl1.0.0/bin/c_rehash /home/hans/certs
+</pre>
+
+<h2><a id="R15" name="R15">R15. Help, I'm getting Authorization failure!</a></h2>
+
+<p>First, try upgrading to fetchmail 6.3.18 or newer. Release 6.3.18 has
+received a considerable number of bug fixes for the authentication
+feature (AUTH, AUTHENTICATE, SASL). Most notably, fetchmail aborts SASL
+authentication attempts properly with an asterisk if it detects that it
+cannot make progress with a particular authentication scheme. This fixes
+issues where GSSAPI-enabled fetchmail cannot authenticate against
+Microsoft Exchange 2007 and 2010. <strong>Note</strong> that this is a
+bug in old fetchmail versions!</p>
+
+<p>Fetchmail by default attempts to authenticate using various schemes.
+Fetchmail tries these schemes in order of descending security, meaning
+the most secure schemes are tried first.</p>
+
+<p>However, sometimes the server offers a secure authentication scheme
+that is not properly configured, or an authentication scheme such as
+GSSAPI does requires credentials to be acquired externally. In some
+situations, fetchmail cannot know the scheme will fail without trying
+it. In most cases, fetchmail should proceed to the next authentication
+scheme automatically, but this sometimes does not work.</p>
+
+<p><strong>Solution:</strong> Configure the right authentication scheme
+explicitly, for instance, with <kbd>--auth cram-md5</kbd> or <kbd>--auth
+ password</kbd> on the command line or <code>auth "cram-md5"</code> or
+ <code>auth "password"</code> in the rcfile. Details can be found
+ in the manual page.<br />
+ <strong>Note</strong> that auth password should only be used
+ across secure links (see the sslcertck and ssl/sslproto options).
+ </p>
+
<hr/>
<h1>Hangs and lockups</h1>
<h2><a id="H1" name="H1">H1. Fetchmail hangs when used with
<h2><a id="H3" name="H3">H3. Fetchmail hangs while fetching
mail.</a></h2>
-<p>The symption: 'fetchmail -v' retrieves the first few messages,
+<p>Symptom: 'fetchmail -v' retrieves the first few messages,
but hangs returning:</p>
<pre>
<h2><a id="M4" name="M4"><strike>M4. My multidrop fetchmail seems to be
having DNS problems.</strike></a></h2>
-<p>The answer that used to be here no longer applies to fetchmail.</p>
+<p><em>The answer that used to be here no longer applies to
+ fetchmail.</em></p>
<h2><a id="M5" name="M5">M5. I'm seeing long DNS delays before each
message is processed.</a></h2>
<h2><a id="X5" name="X5"><strike>X5. Using POP3, retrievals seems to be
fetching too much!</strike></a></h2>
-<p>The information that used to be here pertained to fetchmail 4.4.7 or
-older, which should not be used. Use a recent fetchmail version.</p>
-
-<p>Workaround: set the <code>fetchall</code> option. Under POP3
-this has the side effect of forcing RETR use.</p>
+<p><em>The information that used to be here pertained to fetchmail 4.4.7 or
+ older, which should not be used. Use a recent fetchmail version.</em></p>
<h2><a id="X6" name="X6">X6. My mail attachments are being dropped
or mangled.</a></h2>
<h2><a id="X7" name="X7">X7. Some mail attachments are hanging
fetchmail.</a></h2>
-<p>This isn't fetchmail's problem either; fetchmail doesn't know
-anything about mail attachments and doesn't treat them any
-differently from plain message data.</p>
+<p>Fetchmail doesn't know anything about mail attachments and doesn't
+treat them any differently from plain message data.</p>
<p>The most usual cause of this problem seems to be bugs in your
network transport layer's capability to handle the very large
<h2><a id="X8" name="X8">X8. A spurious ) is being appended to my
messages.</a></h2>
-<p>Blame it on that rancid pile of dung and offal called Microsoft
-Exchange. Due to the problem described in <a href="#S2">S2</a>, the
-IMAP support in fetchmail cannot follow the IMAP protocol 100%.
+<p>Due to the problem described in <a href="#S2">S2</a>, the
+IMAP support in fetchmail cannot follow the IMAP protocol 100 %.
Most of the time it doesn't matter, but if you combine it with an
SMTP server that behaves unusually, you'll get a spurious ) at
-message end.</p>
+the message end.</p>
<p>One piece of software that can trigger this is the Interchange
mail server, as used by, e.g., mailandnews.com. Here's what
happens:</p>
-<p>1. Someone sends mail to your account. The last line of the
+<ol><li>Someone sends mail to your account. The last line of the
message contains text. So at the SMTP level, the message ends with,
-e.g. "blahblah\r\n.\r\n"</p>
+e.g. "blahblah\r\n.\r\n"</li>
-<p>2. The SMTP handler sees the final "\r\n.\r\n" and recognizes
+<li>The SMTP handler sees the final "\r\n.\r\n" and recognizes
the end of the message. However, instead of doing the normal thing,
which is tossing out the ".\r\n" and leaving the first '\r\n' as
part of the email body, Interchange throws out the whole
"\r\n.\r\n", and leaves the email body without any line terminator
at the end of it. RFC821 does not forbid this, though it probably
-should.</p>
+should.</li>
-<p>3. Fetchmail, or some other IMAP client, asks for the message.
+<li>Fetchmail, or some other IMAP client, asks for the message.
IMAP returns it, but it's enclosed inside parentheses, according to
the protocol. The message size in bytes is also present. Because
the message doesn't end with a line terminator, the IMAP client
-sees:</p>
+sees:
<pre>
-
....blahblah)...
</pre>
-<p>where the ')' is from IMAP.</p>
+<p>where the ')' is from IMAP.</p></li>
-<p>4. Fetchmail only deals with complete lines, and can't trust the
-stated message size because Microsoft Exchange fscks it up.</p>
+<li>Fetchmail only deals with complete lines, and can't trust the
+stated message size because Microsoft Exchange goofs it up.</li>
-<p>5. As a result, fetchmail takes the final 'blahblah)' and puts
+<li>As a result, fetchmail takes the final 'blahblah)' and puts
it at the end of the message it forwards on. If you have verbosity
-on, you'll get a message about actual != expected.</p>
+on, you'll get a message about actual != expected.</li>
+</ol>
-<p>There is no fix for this. The nuke mentioned in <a
-href="#S2">S2</a> looks more tempting all the time.</p>
+<p>There is no fix for this.</p>
<h2><a id="X9" name="X9">X9. Missing "Content-Transfer-Encoding" header
with Domino IMAP</a></h2>
Kim's list post</a>
</p>
+<h2><a id="X10" name="X10">X10. Fetchmail delivers partial
+ messages</a></h2>
+
+<p>Fetchmail is sometimes reported to deliver partial messages. This
+is usually related to network outages that occur while fetchmail is
+downloading a message body. In such cases, fetchmail has downloaded a
+complete header, so your header will be intact. The message body will be
+truncated, and fetchmail will later attempt to redownload the
+message (providing the server is standards conformant).</p>
+
+<p>The reason for the truncation is that fetchmail streams the body
+directly from the POP3/IMAP server into the SMTP/LMTP server or MDA (in
+order to save memory), so fetchmail has already written a part of the
+message before it notices it will be incomplete, and fetchmail cannot
+abort a transaction it has started, and it's unclear if it ever will be
+able to, because this is not standardized and the outcome will depend on
+the receiving software (be it SMTP/LMTP or MDA).</p>
+
<hr/>
<h1>Other problems</h1>
<h2><a id="O1" name="O1">O1. The --logfile option doesn't work if
for the other client to finish, or (b) terminate it.</p>
<h2><a id="O10" name="O10"><strike>O10. Why is the received date on all my
- messages the same?i</strike></a></h2>
+ messages the same?</strike></a></h2>
-<p>The answer that used to be here made no sense.</p>
+<p><em>The answer that used to be here made no sense and was dropped.</em></p>
<h2><a name="O11">O11. I keep getting messages that say "Repoll
immediately" in my logs.</a></h2>
make fetchmail-FAQ.pdf
</pre>
+<h2><a name="O17">O17. Linux logs "TCP(fetchmail:...): Application bug, race
+ in MSG_PEEK."</a></h2>
+<p>That's in fact a bug in Linux kernels around the late 2.6.2X versions,
+rather than fetchmail. Fetchmail has no race bugs around MSG_PEEK,
+as of version 6.3.9. The message can safely be ignored.</p>
<hr/>
<table width="100%" cellpadding="0" summary="Canned page footer">