| 1 |
<?xml version="1.0" encoding="ISO-8859-1"?> |
| 2 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| 3 |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| 4 |
<!-- |
| 5 |
|
| 6 |
########################################################################## |
| 7 |
WARNING! |
| 8 |
|
| 9 |
Be sure that <h1> tags are in the leftmost column so that the awk |
| 10 |
postprocessor can elide the Contents section - HTMLDOC will insert |
| 11 |
a much better one. |
| 12 |
########################################################################## |
| 13 |
|
| 14 |
--> |
| 15 |
<html xmlns="http://www.w3.org/1999/xhtml"> |
| 16 |
<head> |
| 17 |
<title>The Fetchmail FAQ</title> |
| 18 |
<meta name="description" |
| 19 |
content="Frequently asked questions about fetchmail."/> |
| 20 |
<meta name="keywords" content="fetchmail, POP, POP2, POP3, IMAP, remote mail"/> |
| 21 |
</head> |
| 22 |
<body> |
| 23 |
<table width="100%" cellpadding="0" summary="Canned page footer"> |
| 24 |
<tr> |
| 25 |
<td width="30%">Back to <a href="index.html">Fetchmail Home |
| 26 |
Page</a></td> |
| 27 |
<td width="30%" align="right">$Date$</td> |
| 28 |
</tr> |
| 29 |
</table> |
| 30 |
|
| 31 |
<hr/> |
| 32 |
<h1 id="FAQ">Frequently Asked Questions About Fetchmail</h1> |
| 33 |
|
| 34 |
<p><strong>Support? Bug reports?</strong> Please read <a |
| 35 |
href="#G3">G3</a> for what information is required to get your problem |
| 36 |
solved as quickly as possible.</p> |
| 37 |
|
| 38 |
<p>Note that this FAQ is occasionally updated from the Git repository |
| 39 |
and speaks in the past tense ("since") about a fetchmail release that is |
| 40 |
not yet available. Please try a release candidate for that version in |
| 41 |
case you need the new option.</p> |
| 42 |
|
| 43 |
<p>If you have a question or answer you think ought to be added to |
| 44 |
this FAQ list, file it to one of the trackers at <a |
| 45 |
href="http://developer.berlios.de/projects/fetchmail/">our BerliOS |
| 46 |
project site</a> or post to one of the fetchmail mailing lists (see |
| 47 |
below).</p> |
| 48 |
|
| 49 |
<h1 id="Contents">Contents</h1> |
| 50 |
|
| 51 |
<a href="#Contentdetail">Detailed Contents</a><br/> |
| 52 |
<a href="#C_G">G. General problems</a><br/> |
| 53 |
<a href="#C_B">B. Build-time problems</a><br/> |
| 54 |
<a href="#C_F">F. Fetchmail configuration file grammar questions</a><br/> |
| 55 |
<a href="#C_C">C. Configuration questions</a><br/> |
| 56 |
<a href="#C_T">T. How to make fetchmail play nice with various MTAs</a><br/> |
| 57 |
<a href="#C_S">S. How to make fetchmail work with various servers</a><br/> |
| 58 |
<a href="#C_I">I. How to fetchmail work with specific ISPs</a><br/> |
| 59 |
<a href="#C_K">K. How to set up well-known security and authentication</a><br/> |
| 60 |
<a href="#C_R">R. Runtime fatal errors</a><br/> |
| 61 |
<a href="#C_H">H. Hangs and lockups</a><br/> |
| 62 |
<a href="#C_D">D. Disappearing mail</a><br/> |
| 63 |
<a href="#C_M">M. Multidrop-mode problems</a><br/> |
| 64 |
<a href="#C_X">X. Mangled mail</a><br/> |
| 65 |
<a href="#C_O">O. Other problems</a><br/> |
| 66 |
|
| 67 |
<h1 id="Contentdetail">Detailed Contents</h1> |
| 68 |
|
| 69 |
<h2 id="C_G">General problems</h2> |
| 70 |
|
| 71 |
<a href="#G1">G1. What is fetchmail and why should I bother?</a><br/> |
| 72 |
<a href="#G2">G2. Where do I find the latest FAQ and fetchmail sources?</a><br/> |
| 73 |
<a href="#G3">G3. Something doesn't work/I think I've found a bug. Will you fix it?</a><br/> |
| 74 |
<a href="#G4">G4. I have this idea for a neat feature. Will you add it?</a><br/> |
| 75 |
<a href="#G5">G5. I want to make fetchmail remove kept mail after some days.</a><br/> |
| 76 |
<a href="#G6">G6. Is there a mailing list for exchanging tips?</a><br/> |
| 77 |
<a href="#G7">G7. So, what's this I hear about a fetchmail paper?</a><br/> |
| 78 |
<a href="#G8">G8. What is the best server to use with fetchmail?</a><br/> |
| 79 |
<a href="#G9">G9. What is the best mail program to use with fetchmail?</a><br/> |
| 80 |
<a href="#G10">G10. How can I avoid sending my password en clair?</a><br/> |
| 81 |
<a href="#G11">G11. Is any special configuration needed to use a dynamic IP address?</a><br/> |
| 82 |
<a href="#G12">G12. Is any special configuration needed to use firewalls?</a><br/> |
| 83 |
<a href="#G13">G13. Is any special configuration needed to <em>send</em> mail?</a><br/> |
| 84 |
<a href="#G14">G14. Is fetchmail Y2K-compliant?</a><br/> |
| 85 |
<a href="#G15">G15. Is there a way in fetchmail to support disconnected IMAP mode?</a><br/> |
| 86 |
<a href="#G16">G16. How will fetchmail perform under heavy loads?</a><br/> |
| 87 |
|
| 88 |
|
| 89 |
<h2 id="C_B">Build-time problems</h2> |
| 90 |
|
| 91 |
<a href="#B1"><strike>B1. Make coughs and dies when building on FreeBSD.</strike></a><br/> |
| 92 |
<a href="#B2">B2. Lex bombs out while building the fetchmail lexer.</a><br/> |
| 93 |
<a href="#B3">B3. I get link failures when I try to build fetchmail.</a><br/> |
| 94 |
<a href="#B4">B4. I get build failures in the intl directory.</a><br/> |
| 95 |
|
| 96 |
<h2 id="C_F">Fetchmail configuration file grammar questions</h2> |
| 97 |
|
| 98 |
<a href="#F1">F1. Why does my old .fetchmailrc no longer work?</a><br/> |
| 99 |
<a href="#F2">F2. The .fetchmailrc parser won't accept my all-numeric user name.</a><br/> |
| 100 |
<a href="#F3">F3. The .fetchmailrc parser won't accept my host or username beginning with 'no'.</a><br/> |
| 101 |
<a href="#F4">F4. I'm getting a 'parse error' message I don't understand.</a><br/> |
| 102 |
|
| 103 |
<h2 id="C_C">Configuration questions</h2> |
| 104 |
|
| 105 |
<a href="#C1">C1. Why do I need a .fetchmailrc when running as root |
| 106 |
on my own machine?</a><br/> |
| 107 |
<a href="#C2">C2. How can I arrange for a fetchmail daemon to get |
| 108 |
killed when I log out?</a><br/> |
| 109 |
<a href="#C3">C3. How do I know what interface and address to use |
| 110 |
with --interface?</a><br/> |
| 111 |
<a href="#C4">C4. How can I set up support for sendmail's anti-spam |
| 112 |
features?</a><br/> |
| 113 |
<a href="#C5">C5. How can I poll some of my mailboxes more/less |
| 114 |
often than others?</a><br/> |
| 115 |
<a href="#C6">C6. Fetchmail works OK started up manually, but not |
| 116 |
from an init script.</a><br/> |
| 117 |
<a href="#C7">C7. How can I forward mail to another |
| 118 |
host?</a><br/> |
| 119 |
<a href="#C8">C8. Why is "NOMAIL" an error?/I frequently get messages |
| 120 |
from cron!</a><br/> |
| 121 |
|
| 122 |
<h2 id="C_T">How to make fetchmail play nice with various MTAs</h2> |
| 123 |
|
| 124 |
<a href="#T1">T1. How can I use fetchmail with sendmail?</a><br/> |
| 125 |
<a href="#T2">T2. How can I use fetchmail with qmail?</a><br/> |
| 126 |
<a href="#T3">T3. How can I use fetchmail with exim?</a><br/> |
| 127 |
<a href="#T4">T4. How can I use fetchmail with smail?</a><br/> |
| 128 |
<a href="#T5">T5. How can I use fetchmail with SCO's MMDF?</a><br/> |
| 129 |
<a href="#T6">T6. How can I use fetchmail with Lotus Notes?</a><br/> |
| 130 |
<a href="#T7">T7. How can I use fetchmail with Courier IMAP?</a><br/> |
| 131 |
<a href="#T8">T8. How can I use fetchmail with vbmailshield?</a><br/> |
| 132 |
|
| 133 |
<h2 id="C_S">How to make fetchmail work with various servers</h2> |
| 134 |
|
| 135 |
<a href="#S1"><strike>S1. How can I use fetchmail with qpopper?</strike></a><br/> |
| 136 |
<a href="#S2">S2. How can I use fetchmail with Microsoft Exchange?</a><br/> |
| 137 |
<a href="#S3">S3. How can I use fetchmail with HP OpenMail?</a><br/> |
| 138 |
<a href="#S4">S4. How can I use fetchmail with Novell GroupWise?</a><br/> |
| 139 |
<a href="#S5">S5. How can I use fetchmail with InterChange?</a><br/> |
| 140 |
<a href="#S6">S6. How can I use fetchmail with MailMax?</a><br/> |
| 141 |
<a href="#S7">S7. How can I use fetchmail with FTGate?</a><br/> |
| 142 |
|
| 143 |
<h2 id="C_I">How to fetchmail work with specific ISPs</h2> |
| 144 |
|
| 145 |
<a href="#I1">I1. How can I use fetchmail with Compuserve RPA?</a><br/> |
| 146 |
<a href="#I2">I2. How can I use fetchmail with Demon Internet's SDPS?</a><br/> |
| 147 |
<a href="#I3">I3. How can I use fetchmail with usa.net's servers?</a><br/> |
| 148 |
<a href="#I4">I4. How can I use fetchmail with geocities POP3 servers?</a><br/> |
| 149 |
<a href="#I5">I5. How can I use fetchmail with Hotmail or Lycos Webmail?</a><br/> |
| 150 |
<a href="#I6">I6. How can I use fetchmail with MSN?</a><br/> |
| 151 |
<a href="#I7">I7. How can I use fetchmail with SpryNet?</a><br/> |
| 152 |
<a href="#I8">I8. How can I use fetchmail with comcast.net or other |
| 153 |
Maillennium servers?</a><br/> |
| 154 |
<a href="#I9">I9. How can I use fetchmail with GMail/Google Mail?</a><br/> |
| 155 |
|
| 156 |
<h2 id="C_K">How to set up well-known security and authentication |
| 157 |
methods</h2> |
| 158 |
|
| 159 |
<a href="#K1">K1. How can I use fetchmail with SOCKS?</a><br/> |
| 160 |
<a href="#K2">K2. How can I use fetchmail with IPv6 and IPsec?</a><br/> |
| 161 |
<a href="#K3">K3. How can I get fetchmail to work with ssh?</a><br/> |
| 162 |
<a href="#K4">K4. What do I have to do to use the IMAP-GSS protocol?</a><br/> |
| 163 |
<a href="#K5">K5. How can I use fetchmail with SSL?</a><br/> |
| 164 |
<a href="#K6">K6. How can I tell fetchmail not to try TLS if the server |
| 165 |
advertises it? Why does fetchmail use SSL even though not configured?</a><br/> |
| 166 |
|
| 167 |
<h2 id="C_R">Runtime fatal errors</h2> |
| 168 |
|
| 169 |
<a href="#R1">R1. Fetchmail isn't working, and -v shows 'SMTP |
| 170 |
connect failed' messages.</a><br/> |
| 171 |
<a href="#R2">R2. When I try to configure an MDA, fetchmail doesn't |
| 172 |
work.</a><br/> |
| 173 |
<a href="#R3">R3. Fetchmail dumps core when given an invalid rc |
| 174 |
file.</a><br/> |
| 175 |
<a href="#R4"><strike>R4. Fetchmail dumps core in -V mode, but operates |
| 176 |
normally otherwise.</strike></a><br/> |
| 177 |
<a href="#R5">R5. Running fetchmail in daemon mode doesn't |
| 178 |
work.</a><br/> |
| 179 |
<a href="#R6">R6. Fetchmail randomly dies with socket errors.</a><br/> |
| 180 |
<a href="#R7">R7. Fetchmail running as root stopped working after |
| 181 |
an OS upgrade</a><br/> |
| 182 |
<a href="#R8">R8. Fetchmail is timing out after fetching certain |
| 183 |
messages but before deleting them</a><br/> |
| 184 |
<a href="#R9">R9. Fetchmail is timing out during message fetches</a><br/> |
| 185 |
<a href="#R10"><strike>R10. Fetchmail is dying with SIGPIPE.</strike></a><br/> |
| 186 |
<a href="#R11">R11. My server is hanging or emitting errors on CAPA.</a><br/> |
| 187 |
<a href="#R12">R12. Fetchmail isn't working and reports getaddrinfo |
| 188 |
errors.</a><br /> |
| 189 |
<a href="#R13">R13. What does "Interrupted system call" mean?</a><br /> |
| 190 |
<a href="#R14">R14. Since upgrading fetchmail/OpenSSL, I can no longer connect!</a><br /> |
| 191 |
<a href="#R15">R15. Help, I'm getting Authorization failure!</a><br /> |
| 192 |
|
| 193 |
<h2 id="C_H">Hangs and lockups</h2> |
| 194 |
|
| 195 |
<a href="#H1">H1. Fetchmail hangs when used with pppd.</a><br/> |
| 196 |
<a href="#H2">H2. Fetchmail hangs during the MAIL FROM |
| 197 |
exchange.</a><br/> |
| 198 |
<a href="#H3">H3. Fetchmail hangs while fetching mail.</a><br/> |
| 199 |
|
| 200 |
|
| 201 |
<h2 id="C_D">Disappearing mail</h2> |
| 202 |
|
| 203 |
<a href="#D1">D1. I think I've set up fetchmail correctly, but I'm |
| 204 |
not getting any mail.</a><br/> |
| 205 |
<a href="#D2">D2. All my mail seems to disappear after a dropped |
| 206 |
connection.</a><br/> |
| 207 |
<a href="#D3">D3. Mail that was being fetched when I interrupted my |
| 208 |
fetchmail seems to have been vanished.</a><br/> |
| 209 |
|
| 210 |
|
| 211 |
<h2 id="C_M">Multidrop-mode problems</h2> |
| 212 |
|
| 213 |
<a href="#M1">M1. I've declared local names, but all my multidrop |
| 214 |
mail is going to root anyway.</a><br/> |
| 215 |
<a href="#M2">M2. I can't seem to get fetchmail to route to a local |
| 216 |
domain properly.</a><br/> |
| 217 |
<a href="#M3">M3. I tried to run a mailing list using multidrop, |
| 218 |
and I have a mail loop!</a><br/> |
| 219 |
<a href="#M4"><strike>M4. My multidrop fetchmail seems to be having DNS |
| 220 |
problems.</strike></a><br/> |
| 221 |
<a href="#M5">M5. I'm seeing long DNS delays before each message is |
| 222 |
processed.</a><br/> |
| 223 |
<a href="#M6">M6. How do I get multidrop mode to work with |
| 224 |
majordomo?</a><br/> |
| 225 |
<a href="#M7">M7. Multidrop mode isn't parsing envelope addresses |
| 226 |
from my Received headers as it should.</a><br/> |
| 227 |
<a href="#M8">M8. Users are getting multiple copies of |
| 228 |
messages.</a><br/> |
| 229 |
|
| 230 |
|
| 231 |
<h2 id="C_X">Mangled mail</h2> |
| 232 |
|
| 233 |
<a href="#X1">X1. Spurious blank lines are appearing in the headers |
| 234 |
of fetched mail.</a><br/> |
| 235 |
<a href="#X2">X2. My mail client can't see a Subject |
| 236 |
line.</a><br/> |
| 237 |
<a href="#X3">X3. Messages containing "From" at start of line are |
| 238 |
being split.</a><br/> |
| 239 |
<a href="#X4">X4. My mail is being mangled in a new and different |
| 240 |
way.</a><br/> |
| 241 |
<a href="#X5"><strike>X5. Using POP3, retrievals seems to be fetching too |
| 242 |
much!</strike></a><br/> |
| 243 |
<a href="#X6">X6. My mail attachments are being dropped or |
| 244 |
mangled.</a><br/> |
| 245 |
<a href="#X7">X7. Some mail attachments are hanging |
| 246 |
fetchmail.</a><br/> |
| 247 |
<a href="#X8">X8. A spurious ) is being appended to my |
| 248 |
messages.</a><br/> |
| 249 |
<a href="#X9">X9. Missing "Content-Transfer-Encoding" header |
| 250 |
with Domino IMAP</a><br/> |
| 251 |
<a href="#X10">X10. Fetchmail delivers partial messages</a><br/> |
| 252 |
|
| 253 |
|
| 254 |
<h2 id="C_O">Other problems</h2> |
| 255 |
|
| 256 |
<a href="#O1">O1. The --logfile option doesn't work if the logfile |
| 257 |
doesn't exist.</a><br/> |
| 258 |
<a href="#O2">O2. Every time I get a POP or IMAP message the header |
| 259 |
is dumped to all my terminal sessions.</a><br/> |
| 260 |
<a href="#O3">O3. Does fetchmail reread its rc file every poll |
| 261 |
cycle?</a><br/> |
| 262 |
<a href="#O4">O4. Why do deleted messages show up again when I take |
| 263 |
a line hit while downloading?</a><br/> |
| 264 |
<a href="#O5">O5. Why is fetched mail being logged with my name, |
| 265 |
not the real From address?</a><br/> |
| 266 |
<a href="#O6">O6. I'm seeing long sendmail delays or hangs near the |
| 267 |
start of each poll cycle.</a><br/> |
| 268 |
<a href="#O7">O7. Why doesn't fetchmail deliver mail in date-sorted |
| 269 |
order?</a><br/> |
| 270 |
<a href="#O8">O8. I'm using pppd. Why isn't my monitor option |
| 271 |
working?</a><br/> |
| 272 |
<a href="#O9">O9. Why does fetchmail keep retrieving the same |
| 273 |
messages over and over?</a><br/> |
| 274 |
<a href="#O10"><strike>O10. Why is the received date on all my messages the |
| 275 |
same?</strike></a><br/> |
| 276 |
<a href="#O11">O11. I keep getting messages that say "Repoll |
| 277 |
immediately" in my logs.</a><br/> |
| 278 |
<a href="#O12">O12. Fetchmail no longer expunges mail on a 451 SMTP response.</a><br/> |
| 279 |
<a href="#O13">O13. I want timestamp information in my fetchmail logs.</a><br/> |
| 280 |
<a href="#O14">O14. Fetchmail no longer deletes oversized mails with |
| 281 |
--flush.</a><br/> |
| 282 |
<a href="#O15">O15. Fetchmail always retains the first message in the |
| 283 |
mailbox.</a><br/> |
| 284 |
<a href="#O16">O16. Why is the Fetchmail FAQ only available in |
| 285 |
ISO-216 A4 format? How do I get the FAQ in Letter |
| 286 |
format?</a><br/> |
| 287 |
<a href="#O17">O17. Linux logs "TCP(fetchmail:...): Application bug, race |
| 288 |
in MSG_PEEK."</a><br/> |
| 289 |
|
| 290 |
<hr/> |
| 291 |
<h1 id="G">General problems</h1> |
| 292 |
<h2><a id="G1" name="G1">G1. What is fetchmail and why should I |
| 293 |
bother?</a></h2> |
| 294 |
|
| 295 |
<p>Fetchmail is a one-stop solution to the remote mail retrieval |
| 296 |
problem for Unix machines, quite useful to anyone with an |
| 297 |
intermittent or dynamic-IP connection to a remote mailserver, SLIP or |
| 298 |
PPP dialup, or leased line when SMTP isn't desired. Fetchmail can |
| 299 |
collect mail using any variant of POP or IMAP and forwards to a the |
| 300 |
local SMTP (via TCP socket) or LMTP (via TCP or Unix socket) listener or |
| 301 |
into an MDA program, enabling all the normal |
| 302 |
forwarding/filtering/aliasing mechanisms that would apply to local mail |
| 303 |
or mail arriving via a full-time TCP/IP connection.</p> |
| 304 |
|
| 305 |
<p>Fetchmail is not a toy or a coder's learning exercise, but an |
| 306 |
industrial-strength tool capable of transparently handling every |
| 307 |
retrieval demand from those of a simple single-user ISP connection |
| 308 |
up to mail retrieval and rerouting for an entire client domain. |
| 309 |
Fetchmail is easy to configure, unobtrusive in operation, powerful, |
| 310 |
feature-rich, and well documented.</p> |
| 311 |
|
| 312 |
<p>Fetchmail is <a href="http://www.opensource.org/">Open Source</a> |
| 313 |
Software. The openness of the sources enables you to review and |
| 314 |
customize the code, and contribute your changes.</p> |
| 315 |
|
| 316 |
<p>A former fetchmail maintainer once claimed that Open Source software |
| 317 |
were the strongest quality assurance, but the current maintainers do not |
| 318 |
believe that open source alone is a criterion for quality – <a |
| 319 |
href="fetchmail-SA-2005-01.txt">the remotely exploitable POP3 |
| 320 |
vulnerability (CVE-2005-2335)</a> lingered undiscovered in |
| 321 |
fetchmail's code for years, which is a hint that open source code does |
| 322 |
not audit itself.</p> |
| 323 |
|
| 324 |
<p>Fetchmail is licensed under the <a |
| 325 |
href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public |
| 326 |
License v2</a>. Details, including an exception that allows linking |
| 327 |
against OpenSSL, are in the COPYING file in the fetchmail |
| 328 |
distribution.</p> |
| 329 |
|
| 330 |
<p>If you found this FAQ in the distribution, see the README for |
| 331 |
fetchmail's full feature list.</p> |
| 332 |
|
| 333 |
<h2><a id="G2" name="G2">G2. Where do I find the latest FAQ and |
| 334 |
fetchmail sources?</a></h2> |
| 335 |
|
| 336 |
<p>The latest HTML FAQ is available alongside the latest fetchmail |
| 337 |
sources at the fetchmail home page: <a |
| 338 |
href="http://www.fetchmail.info/">http://www.fetchmail.info/</a>. |
| 339 |
You can also usually find both in the <a |
| 340 |
href="http://www.ibiblio.org/pub/Linux/system/mail/pop/!INDEX.short.html"> |
| 341 |
POP mail tools directory on iBiblio</a>.</p> |
| 342 |
|
| 343 |
<p>A text dump of this FAQ is included in the fetchmail |
| 344 |
distribution. Because it freezes at distribution release time, it |
| 345 |
may not be completely current.</p> |
| 346 |
|
| 347 |
<h2><a id="G3" name="G3">G3. Something does not work/I think I've found a bug. Will you fix it?</a></h2> |
| 348 |
|
| 349 |
<p>The first thing you should to is to upgrade to the newest version of |
| 350 |
fetchmail, and then see if the problem reproduces. So you'll probably |
| 351 |
save us both time if you upgrade and test with <a href="#G2">the latest |
| 352 |
version</a> <em>before</em> sending in a bug report.</p> |
| 353 |
|
| 354 |
<p>Bugs will be fixed, provided you include enough diagnostic information |
| 355 |
for me to go on. Send bugs to <a |
| 356 |
href="mailto:fetchmail-users@lists.berlios.de">fetchmail-users</a>. |
| 357 |
When sending bugs or asking for help, please <strong>do not make up |
| 358 |
information except your password</strong> and please |
| 359 |
<strong>report</strong> the following:</p> |
| 360 |
|
| 361 |
<ol> |
| 362 |
<li>Your operating system.</li> |
| 363 |
|
| 364 |
<li>Your compiler version, if you built from source; otherwise, the |
| 365 |
name and origin of the RPM or other binary package you |
| 366 |
installed.</li> |
| 367 |
|
| 368 |
<li>The name and version of the SMTP listener or MDA you are |
| 369 |
forwarding to.</li> |
| 370 |
|
| 371 |
<li>Any command-line options you used.</li> |
| 372 |
|
| 373 |
<li>The output of <kbd>env LC_ALL=C fetchmail -V</kbd> called with |
| 374 |
whatever other command-line options you used.</li> |
| 375 |
|
| 376 |
<li><strong>The output of <kbd>env LC_ALL=C fetchmail --nodetach -vvv |
| 377 |
--nosyslog</kbd> with whatever other command-line options you use |
| 378 |
routinely.</strong> |
| 379 |
<p>It is very important that the transcript include your |
| 380 |
POP/IMAP server's greeting line, so I can identify it in case of server |
| 381 |
problems. This transcript will not reveal your passwords, which are |
| 382 |
specially masked out precisely so transcripts can be passed around.</p> |
| 383 |
</li> |
| 384 |
</ol> |
| 385 |
|
| 386 |
<p>If you have FTP access to your remote mail account, and you have |
| 387 |
any suspicion that the bug was triggered by a particular message, |
| 388 |
please include a copy of the message that triggered the bug.</p> |
| 389 |
|
| 390 |
<p>If your bug is something that used to work but stopped working |
| 391 |
when you upgraded, then you can help pin the bug down by trying <a |
| 392 |
href="http://download.berlios.de/fetchmail/">intermediate versions |
| 393 |
of fetchmail</a> until you identify the revision that broke your |
| 394 |
feature. The smart way to do this is by binary search on the |
| 395 |
version sequence. First, try the version halfway between your last |
| 396 |
good one and the current one. If it works, the failure was |
| 397 |
introduced in the upper half of the sequence; if it doesn't, the |
| 398 |
failure was introduced in the lower half. Now bisect that half in |
| 399 |
the same way. In a very few tries, you should be able to identify |
| 400 |
the exact adjacent pair of versions between which your bug was |
| 401 |
introduced. <strong>Please</strong> include session transcripts (as |
| 402 |
described in the last bullet point above) of <strong>both |
| 403 |
the working and failing versions.</strong> Often, the source of the problem |
| 404 |
can instantly identified by looking at the differences in protocol |
| 405 |
transactions.</p> |
| 406 |
|
| 407 |
<p>It may helpful if you include your .fetchmailrc file, but not |
| 408 |
necessary unless your symptom seems to involve an error in |
| 409 |
configuration parsing. If you do send in your .fetchmailrc, mask |
| 410 |
the passwords first! Otherwise, fetchmail -V – as directed above |
| 411 |
– will usually suffice.</p> |
| 412 |
|
| 413 |
<p>If fetchmail seems to run and fetch mail, but the headers look |
| 414 |
mangled (that is, headers are missing or blank lines are inserted |
| 415 |
in the headers) then read the FAQ items in section <a |
| 416 |
href="#X1">X</a> before submitting a bug report. Pay special |
| 417 |
attention to the item on <a href="#generic_mangling">diagnosing |
| 418 |
mail mangling</a>. There are lots of ways for other programs in the |
| 419 |
mail chain to screw up that look like fetchmail's fault, but you |
| 420 |
may be able to fix these by tweaking your configuration.</p> |
| 421 |
|
| 422 |
<p>If the bug involves a core dump or hang, a gdb stack trace is |
| 423 |
good to have. (Bear in mind that you can attach gdb to a running |
| 424 |
but hung process by giving the process ID as a second argument.) |
| 425 |
You will need to reconfigure with:</p> |
| 426 |
|
| 427 |
<pre> |
| 428 |
CFLAGS=-g LDFLAGS=" " ./configure |
| 429 |
</pre> |
| 430 |
|
| 431 |
<p>Then rebuild in order to generate a version that can be |
| 432 |
traced with a debugger such as gdb, dbx or idb.</p> |
| 433 |
|
| 434 |
<p>Best of all is a mail file which, when fetched, will reproduce |
| 435 |
the bug under the latest (current) version.</p> |
| 436 |
|
| 437 |
<p>Any bug I can reproduce will usually get fixed quite quickly. |
| 438 |
Bugs I can't reproduce are a crapshoot. If the solution isn't obvious |
| 439 |
when I first look, it may evade me for a long time (or to put it another |
| 440 |
way, fetchmail is well enough tested that the easy bugs have long since |
| 441 |
been found). So if you want your bug fixed rapidly, it is not just |
| 442 |
sufficient but <em>necessary</em> that you give me a way to |
| 443 |
easily reproduce it.</p> |
| 444 |
|
| 445 |
<h2><a id="G4" name="G4">G4. I have this idea for a neat feature. |
| 446 |
Will you add it?</a></h2> |
| 447 |
|
| 448 |
<p>If it's reasonable for fetchmail and cannot be solved with reasonable |
| 449 |
effort outside of fetchmail, perhaps.</p> |
| 450 |
|
| 451 |
<p>You can do spam filtering better with procmail or maildrop on |
| 452 |
the server side and (if you're the server sysadmin) sendmail.cf |
| 453 |
domain exclusions. If you really want fetchmail to do it from the |
| 454 |
client side, use a <code>preconnect</code> command to call |
| 455 |
<a href='http://mailfilter.sourceforge.net/'>mailfilter</a>.</p> |
| 456 |
|
| 457 |
<p>You can do other policy things better with the |
| 458 |
<code>mda</code> option and script wrappers around fetchmail. If |
| 459 |
it's a prime-time-vs.-non-prime-time issue, ask yourself whether a |
| 460 |
wrapper script called from crontab would do the job.</p> |
| 461 |
|
| 462 |
<p>fetchmail's first job is transport though, and it should do this |
| 463 |
well. If a feature would cause fetchmail to deteriorate in other |
| 464 |
respects, the feature will probably not be added.</p> |
| 465 |
|
| 466 |
<p>For reasons fetchmail doesn't have other commonly-requested |
| 467 |
features (such as password encryption, or multiple concurrent polls |
| 468 |
from the same instance of fetchmail) see <a |
| 469 |
href="esrs-design-notes.html">ESR's design |
| 470 |
notes</a>. Note that this document is partially obsoleted by the |
| 471 |
<a href="design-notes.html">updated design notes.</a></p> |
| 472 |
|
| 473 |
<h2><a id="G5" name="G5">G5. I want to make fetchmail remove kept mail after |
| 474 |
some days.</a></h2> |
| 475 |
|
| 476 |
<p>The second-most-requested feature for fetchmail, after |
| 477 |
content-based filtering, is the ability to have it remove messages |
| 478 |
from a maildrop after N days, typically to be used with the |
| 479 |
<code>keep</code> option. Several messaging programs with graphical |
| 480 |
user interface support this feature.</p> |
| 481 |
|
| 482 |
<p>This feature is not yet implemented. It may be at a future date, |
| 483 |
spare time of developers permitting.</p> |
| 484 |
|
| 485 |
<p>For the time being, the contrib/ directory contains some <em>unsupported</em> |
| 486 |
tools that may help, namely mold-remover.py and delete-later.</p> |
| 487 |
|
| 488 |
<h2><a id="G6" name="G6">G6. Is there a mailing list for exchanging |
| 489 |
tips?</a></h2> |
| 490 |
|
| 491 |
<p>There is a fetchmail-users list |
| 492 |
<fetchmail-users@lists.berlios.de> |
| 493 |
for bug reports and people who want to discuss configuration issues of |
| 494 |
fetchmail. Please see <a href="#G3">G3 above for information you need to |
| 495 |
report.</a> It's a Mailman list, see <a |
| 496 |
href="http://lists.berlios.de/mailman/listinfo/fetchmail-users">http://lists.berlios.de/mailman/listinfo/fetchmail-users</a> |
| 497 |
for info and subscription.</p> |
| 498 |
<p>There is a fetchmail-devel list |
| 499 |
<fetchmail-devel@lists.berlios.de> for people who want to discuss |
| 500 |
fixes and improvements in fetchmail and help co-develop it. It's a |
| 501 |
Mailman list, which you can sign up for at <a |
| 502 |
href="http://lists.berlios.de/mailman/listinfo/fetchmail-devel">http://lists.berlios.de/mailman/listinfo/fetchmail-devel</a>.</p> |
| 503 |
<p>There is also an announcements-only list, |
| 504 |
<fetchmail-announce@lists.berlios.de>, which you can sign up for at <a |
| 505 |
href="http://lists.berlios.de/mailman/listinfo/fetchmail-announce">http://lists.berlios.de/mailman/listinfo/fetchmail-announce</a>.</p> |
| 506 |
|
| 507 |
<h2><a id="G7" name="G7">G7. So, what's this I hear about a |
| 508 |
fetchmail paper?</a></h2> |
| 509 |
|
| 510 |
<p>Eric S. Raymond also considered fetchmail development a sociological |
| 511 |
experiment, an extended test to see if my theory about the critical |
| 512 |
features of the Linux development model is correct.</p> |
| 513 |
|
| 514 |
<p>He considers the experiment a success. He wrote a paper about it titled <a |
| 515 |
href="http://www.catb.org/~esr/writings/cathedral.html">The |
| 516 |
Cathedral and the Bazaar</a> which was first presented at Linux |
| 517 |
Kongress '97 in Bavaria and very well received there. It was also |
| 518 |
given at Atlanta Linux Expo, Linux Pro '97 in Warsaw, and the first |
| 519 |
Perl Conference, at UniForum '98, and was the basis of an invited |
| 520 |
presentation at Usenix '98. The folks at Netscape told ESR it helped |
| 521 |
them decide to <a |
| 522 |
href="http://wp.netscape.com/newsref/pr/newsrelease558.html">give |
| 523 |
away the source for Netscape Communicator</a>.</p> |
| 524 |
|
| 525 |
<p>If you're reading a non-HTML dump of this FAQ, you can find the |
| 526 |
paper on the Web with a search for that title.</p> |
| 527 |
|
| 528 |
<h2><a id="G8" name="G8">G8. What is the best server to use with |
| 529 |
fetchmail?</a></h2> |
| 530 |
|
| 531 |
<p>Fetchmail will work with any POP, IMAP, ETRN, or ODMR server |
| 532 |
that conforms to the relevant standards/RFCs (and even some outright |
| 533 |
broken ones like <a href="#S2">Microsoft Exchange</a> and <a |
| 534 |
href="#S6">Novell GroupWise</a>). This doesn't mean it works equally |
| 535 |
well with all, however. POP2 servers, and POP3 servers without UIDL, |
| 536 |
limit fetchmail's capabilities in various ways described on the manual |
| 537 |
page.</p> |
| 538 |
|
| 539 |
<p>Most modern Unixes (and effectively all Linux/*BSD systems) come |
| 540 |
with POP3 support preconfigured (but beware of the horribly broken |
| 541 |
POP3 server mentioned in <a href="#D2">D2</a>). An increasing |
| 542 |
minority also feature IMAP (you can detect IMAP support by using the |
| 543 |
'Probe for supported protocols' function in the fetchmailconf |
| 544 |
utility - unfortunately it does not detect SSL-wrapped variants).</p> |
| 545 |
|
| 546 |
<p>If you have the option, we recommend using or installing an |
| 547 |
IMAP4rev1 or UIDL-capable POP3 server.</p> |
| 548 |
|
| 549 |
<p>A decent POP3/IMAP server that has recently become popular is <a |
| 550 |
href="http://dovecot.org/">Dovecot</a>.</p> |
| 551 |
|
| 552 |
<p>Avoid <a href="http://home.pages.de/~mandree/qmail-bugs.html">qmail, |
| 553 |
it's broken and unmaintained.</a></p> |
| 554 |
|
| 555 |
<h2><a id="G9" name="G9">G9. What is the best mail program to use |
| 556 |
with fetchmail?</a></h2> |
| 557 |
|
| 558 |
<p>Fetchmail will work with all popular <a href="#T1">mail |
| 559 |
transport programs</a>. It also doesn't care which user agent you |
| 560 |
use, and user agents are as a rule almost equally indifferent to |
| 561 |
how mail is delivered into your system mailbox. So any of the |
| 562 |
popular Unix mail agents – <a |
| 563 |
href="http://www.instinct.org/elm/">elm</a>, <a |
| 564 |
href="http://www.washington.edu/pine/">pine</a>, <a |
| 565 |
href="http://www.cs.indiana.edu/docproject/mail/mh.html">mh</a>, or |
| 566 |
<a href="http://www.mutt.org">mutt</a> – will work fine with |
| 567 |
fetchmail.</p> |
| 568 |
|
| 569 |
<p>All this having been said, I can't resist putting in a discreet |
| 570 |
plug for <a href="http://www.mutt.org">mutt</a>. Mutt's interface |
| 571 |
is only a little different from that of its now-moribund ancestor |
| 572 |
elm, but its flexibility and excellent handling of MIME and PGP put it |
| 573 |
in a class by itself. You won't need its built-in POP3 support, though. |
| 574 |
</p> |
| 575 |
|
| 576 |
<h2><a id="G10" name="G10">G10. How can I avoid sending my password |
| 577 |
en clair?</a></h2> |
| 578 |
|
| 579 |
<p>Depending on what your mail server you are talking to, this |
| 580 |
ranges from trivial to impossible. It may even be next to |
| 581 |
useless.</p> |
| 582 |
|
| 583 |
<p>In general there is little point in trying to secure your fetchmail |
| 584 |
transaction unless you trust the security of the server host you are |
| 585 |
retrieving mail from. Your vulnerability is more likely to be an |
| 586 |
insecure local network on the server end (e.g. to somebody with a |
| 587 |
TCP/IP packet sniffer intercepting Ethernet traffic between the modem |
| 588 |
concentrator or DSL POP you dial in to and the mailserver host).</p> |
| 589 |
|
| 590 |
<p>Having realized this, you need to ask whether password |
| 591 |
encryption alone will really address your security exposure. If you |
| 592 |
think you might be snooped between server and client, it's better |
| 593 |
to use end-to-end encryption such as GnuPG (see below) on your whole |
| 594 |
mail stream so none of it can be read. One of the advantages of |
| 595 |
fetchmail over conventional SMTP-push delivery is that you may be able |
| 596 |
to arrange encryption by using ssh(1); see <a href="#K3">K3</a>.</p> |
| 597 |
|
| 598 |
<p>Note that ssh is not a complete privacy solution either, as your |
| 599 |
mail could have been snooped in transit to your POP server from |
| 600 |
wherever it originated. For best security, agree with your |
| 601 |
correspondents to use a tool such as <a |
| 602 |
href="http://www.gnupg.org/">GnuPG</a> (Gnu Privacy Guard) or PGP |
| 603 |
(Pretty Good Privacy).</p> |
| 604 |
|
| 605 |
<p>If ssh/sshd isn't available, or you find it too complicated for |
| 606 |
you to set up, password encryption will at least keep a malicious |
| 607 |
cracker from deleting your mail, and require him to either tap your |
| 608 |
connection continuously or crack root on the server in order to |
| 609 |
read it.</p> |
| 610 |
|
| 611 |
<p>You can deduce what encryptions your mail server has available |
| 612 |
by looking at the server greeting line (and, for IMAP, the response |
| 613 |
to a CAPABILITY query). Do a <code>fetchmail -v</code> to see |
| 614 |
these, or telnet direct to the server port (110 for POP3, 143 for |
| 615 |
IMAP).</p> |
| 616 |
|
| 617 |
<p>If your mailserver is using IMAP 2000, it'll have CRAM-MD5 |
| 618 |
support built in. Fetchmail autodetects this; you can skip the rest |
| 619 |
of this section.</p> |
| 620 |
|
| 621 |
<p>The POP3 facility you are most likely to have available is APOP. |
| 622 |
This is a POP3 feature supported by many servers (fetchmailconf's |
| 623 |
autoprobe facility will detect it and tell you if you have it). If |
| 624 |
you see something in the greeting line that looks like an |
| 625 |
angle-bracket-enclosed Internet address with a numeric left-hand |
| 626 |
part, that's an APOP challenge (it will vary each time you log in). |
| 627 |
For some hosts, you need to register a secret on the host (using |
| 628 |
<code>popauth(8)</code> or some program like that). Specify the |
| 629 |
secret as your password in your .fetchmailrc; it will be used to |
| 630 |
encrypt the current challenge, and the encrypted form will be sent |
| 631 |
back the the server for verification. Note that APOP is no longer |
| 632 |
considered secure since March 2007.</p> |
| 633 |
|
| 634 |
<p>Alternatively, you may have Kerberos available. This may require |
| 635 |
you to set up some magic files in your home directory on your |
| 636 |
client machine, but means you can omit specifying any password at |
| 637 |
all.</p> |
| 638 |
|
| 639 |
<p>Fetchmail supports two different Kerberos schemes. One is a POP3 |
| 640 |
variant called KPOP; consult the documentation of your mail server |
| 641 |
to see if you have it (one clue is the string "krb-IV" in the |
| 642 |
greeting line on port 110). The other is an IMAP and POP3 facility |
| 643 |
described by RFC1731 and RFC1734. You can tell if this one is |
| 644 |
present by looking for AUTH=KERBEROS_V4 in the CAPABILITY |
| 645 |
response.</p> |
| 646 |
|
| 647 |
<p>If you are fetching mail from a CompuServe POP3 account, you can |
| 648 |
use their RPA authentication. See <a href="#I1">I1</a> for details. |
| 649 |
If you are fetching mail from |
| 650 |
Microsoft Exchange using IMAP, you will be able to use NTLM.</p> |
| 651 |
|
| 652 |
<p>Your POP3 server may have the RFC1938 OTP capability to use |
| 653 |
one-time passwords (if it doesn't, you can get OTP patches for the |
| 654 |
2.2 version of the Qualcomm popper from <a href="#cmetz">Craig |
| 655 |
Metz</a>). To check this, look for the string "otp-" in the |
| 656 |
greeting line. If you see it, and your fetchmail was built with |
| 657 |
OPIE support compiled in (see the distribution INSTALL file), |
| 658 |
fetchmail will detect it also. When using OTP, you will specify a |
| 659 |
password but it will not be sent en clair.</p> |
| 660 |
|
| 661 |
<p>You can get both POP3 and IMAP OTP patches from <a id="cmetz" |
| 662 |
name="cmetz">Craig Metz</a> at <a |
| 663 |
href="http://www.inner.net/opie">http://www.inner.net/opie</a>.</p> |
| 664 |
|
| 665 |
<p>These patches use a SASL authentication method named "X-OTP" |
| 666 |
because there is not currently a standard way to do this; fetchmail |
| 667 |
also uses this method, so the two will interoperate happily. They |
| 668 |
better, because this is how Craig gets his mail ;-)</p> |
| 669 |
|
| 670 |
<p>Finally, you can use <a href="#K5">SSL</a> for complete |
| 671 |
end-to-end encryption if you have an SSL-enabled mailserver.</p> |
| 672 |
|
| 673 |
<h2><a id="G11" name="G11">G11. Is any special configuration needed |
| 674 |
to use a dynamic IP address?</a></h2> |
| 675 |
|
| 676 |
<p>Yes. In order to avoid giving indigestion to certain picky MTAs |
| 677 |
(notably <a href="#T3">exim</a>), fetchmail always makes the RCPT TO |
| 678 |
address it feeds the MTA a fully qualified one with a hostname |
| 679 |
part. Normally it does this by appending @ and "localhost", but |
| 680 |
when you are using Kerberos or ETRN mode it will append @ and your |
| 681 |
machine's fully-qualified domain name (FQDN).</p> |
| 682 |
|
| 683 |
<p>Appending the FQDN can create problems when fetchmail is running |
| 684 |
in daemon mode and outlasts the dynamic IP address assignment your |
| 685 |
client machine had when it started up.</p> |
| 686 |
|
| 687 |
<p>Since the new IP address (looked up at RCPT TO interpretation |
| 688 |
time) doesn't match the original, the most benign possible result |
| 689 |
is that your MTA thinks it's seeing a relaying attempt and refuses. |
| 690 |
More frequently, fetchmail will try to connect to a nonexistent |
| 691 |
host address and time out. Worst case, you could up forwarding your |
| 692 |
mail to the wrong machine!</p> |
| 693 |
|
| 694 |
<p>Use the <code>smtpaddress</code> option to force the appended |
| 695 |
hostname to one with a (fixed) IP address of 127.0.0.1 in your |
| 696 |
<code>/etc/hosts</code>. (The name 'localhost' will usually work; |
| 697 |
or you can use the IP address itself.)</p> |
| 698 |
|
| 699 |
<p>Only one fetchmail option interacts directly with your IP |
| 700 |
address, '<code>interface</code>'. This option can be used to set |
| 701 |
the gateway device and restrict the IP address range fetchmail will |
| 702 |
use. Such a restriction is sometimes useful for security reasons, |
| 703 |
especially on multihomed sites. See <a href="#C3">C3</a>.</p> |
| 704 |
|
| 705 |
<p>I recommend against trying to set up the <code>interface</code> |
| 706 |
option when initially developing your poll configuration – it's |
| 707 |
never necessary to do this just to get a link working. Get the link |
| 708 |
working first, observe the actual address range you see on |
| 709 |
connections, and add an <code>interface</code> option (if you need |
| 710 |
one) later.</p> |
| 711 |
|
| 712 |
<p>You can't use ETRN if you have a dynamic IP address (your ISP |
| 713 |
changes your IP address occasionally, possibly with every connect). |
| 714 |
You need to have your own registered domain and a definite IP |
| 715 |
address registered for that domain. The server needs to be |
| 716 |
configured to accept mail for your domain but then queue it to |
| 717 |
forward to your machine. ETRN just tells to server to flush its |
| 718 |
queue for your domain. Fetchmail doesn't actually get the mail in |
| 719 |
that case.</p> |
| 720 |
|
| 721 |
<p>You can use On-Demand Mail Relay (ODMR) with a dynamic IP |
| 722 |
address; that's what it was designed for, and it provides |
| 723 |
capabilities very similar to ETRN. Unfortunately ODMR servers are |
| 724 |
still not yet widely deployed, as of 2006.</p> |
| 725 |
|
| 726 |
<p>If you're using a dynamic-IP configuration, one other |
| 727 |
(non-fetchmail) problem you may run into with outgoing mail is that |
| 728 |
some sites will bounce your email because the hostname you're giving |
| 729 |
them isn't real (and doesn't match what they get doing a reverse |
| 730 |
DNS on your dynamically-assigned IP address). If this happens, you |
| 731 |
need to hack your sendmail so it masquerades as your host. |
| 732 |
Setting</p> |
| 733 |
|
| 734 |
<pre> |
| 735 |
DMsmarthost.here |
| 736 |
</pre> |
| 737 |
|
| 738 |
<p>in your <code>sendmail.cf</code> will work, or you can set</p> |
| 739 |
|
| 740 |
<pre> |
| 741 |
MASQUERADE_AS(smarthost.here) |
| 742 |
</pre> |
| 743 |
|
| 744 |
<p>in the m4 configuration and do a reconfigure. (In both cases, |
| 745 |
replace <code>smarthost.here</code> with the actual name of your |
| 746 |
mailhost.) See the <a |
| 747 |
href="http://www.lege.com/sendmail-FAQ.txt">sendmail FAQ</a> for |
| 748 |
more details.</p> |
| 749 |
|
| 750 |
<h2><a id="G12" name="G12">G12. Is any special configuration needed |
| 751 |
to use firewalls?</a></h2> |
| 752 |
|
| 753 |
<p>No. You can use fetchmail with SOCKS, the standard tool for |
| 754 |
indirecting TCP/IP through a firewall. You can find out about |
| 755 |
SOCKS, and download the SOCKS software including server and client |
| 756 |
code, at the <a href="http://www.socks.nec.com/">SOCKS distribution |
| 757 |
site</a>.</p> |
| 758 |
|
| 759 |
<p>The specific recipe for using fetchmail with a firewall is at <a |
| 760 |
href="#K1">K1</a></p> |
| 761 |
|
| 762 |
<h2><a id="G13" name="G13">G13. Is any special configuration needed |
| 763 |
to <em>send</em> mail?</a></h2> |
| 764 |
|
| 765 |
<p>A user asks: but how do we send mail out to the POP3 server? Do |
| 766 |
I need to implement another tool or will fetchmail do this too?</p> |
| 767 |
|
| 768 |
<p>Fetchmail only handles the receiving side. The sendmail or other |
| 769 |
preinstalled MTA on your client machine will handle sending mail |
| 770 |
automatically; it will ship mail that is submitted while the |
| 771 |
connection is active, and put mail that is submitted while the |
| 772 |
connection is inactive into the outgoing queue.</p> |
| 773 |
|
| 774 |
<p>Normally, sendmail is also run periodically (every 15 minutes on |
| 775 |
most Linux systems) in a mode that tries to ship all the mail in |
| 776 |
the outgoing queue. If you have set up something like pppd to |
| 777 |
automatically dial out when your kernel is called to open a TCP/IP |
| 778 |
connection, this will ensure that the mail gets out.</p> |
| 779 |
|
| 780 |
<h2><a id="G14" name="G14">G14. Is fetchmail |
| 781 |
Y2K-compliant?</a></h2> |
| 782 |
|
| 783 |
<p>Fetchmail is fully Y2K-compliant.</p> |
| 784 |
|
| 785 |
<p>Fetchmail could theoretically have problems when the 32-bit |
| 786 |
time_t counters roll over in 2038, but I doubt it. Timestamps |
| 787 |
aren't used for anything but log entry generation. Anyway, if you |
| 788 |
aren't running on a 64-bit machine by then, you'll deserve to |
| 789 |
lose.</p> |
| 790 |
|
| 791 |
<h2><a id="G15" name="G15">G15. Is there a way in fetchmail to |
| 792 |
support disconnected IMAP mode?</a></h2> |
| 793 |
|
| 794 |
<p>No. Fetchmail is a mail transport agent, best understood as a |
| 795 |
protocol gateway between POP3/IMAP servers and SMTP. Disconnected |
| 796 |
operation requires an elaborate interactive client. It's a very |
| 797 |
different problem.</p> |
| 798 |
|
| 799 |
<h2><a id="G16" name="G16">G16. How will fetchmail perform under |
| 800 |
heavy loads?</a></h2> |
| 801 |
|
| 802 |
<p>Fetchmail streams message bodies line-by-line; the most core it |
| 803 |
ever requires per message is enough memory to hold the RFC822 |
| 804 |
header, and that storage is freed when body processing begins. It |
| 805 |
is, accordingly, quite economical in its use of memory. It will store |
| 806 |
the UID or UIDL data in core however, which can become considerable if |
| 807 |
you are keeping lots of messages on the server.</p> |
| 808 |
|
| 809 |
<p>After startup time, a fetchmail running in daemon mode stats its |
| 810 |
configuration file once per poll cycle to see whether it has |
| 811 |
changed and should be rescanned. Other than that, a fetchmail in |
| 812 |
normal operation doesn't touch the disk at all; that job is left up |
| 813 |
to the MTA or MDA the fetchmail talks to.</p> |
| 814 |
|
| 815 |
<p>Fetchmail's performance is usually bottlenecked by latency on |
| 816 |
the POP server or (less often) on the TCP/IP link to the server. |
| 817 |
This is not a problem readily solved by tuning fetchmail, or even |
| 818 |
by buying more TCP/IP capacity (which tends to improve bandwidth |
| 819 |
but not necessarily latency).</p> |
| 820 |
|
| 821 |
<hr/> |
| 822 |
<h1>Build-time problems</h1> |
| 823 |
<h2><a id="B1" name="B1"><strike>B1. Make coughs and dies when building on |
| 824 |
FreeBSD.</strike></a></h2> |
| 825 |
|
| 826 |
<p style="font-style:italic;">As of release 6.3.0, fetchmail's |
| 827 |
Makefile[.in] should work flawlessly with BSD's portable make used on |
| 828 |
FreeBSD. With older releases, use GNU make (usually installed as |
| 829 |
<code>gmake</code>; otherwise try <kbd>pkg_add -r gmake</kbd>).</p> |
| 830 |
|
| 831 |
<h2><a id="B2" name="B2">B2. Lex bombs out while building the |
| 832 |
fetchmail lexer.</a></h2> |
| 833 |
|
| 834 |
<p>fetchmail 6.3.0 and newer ship with the lexer and parser in .c |
| 835 |
formats, so you do not need to use lex unless you hacked the .l or .y |
| 836 |
files.</p> |
| 837 |
|
| 838 |
<p>fetchmail's lexer has been developed with GNU flex and uses some of |
| 839 |
its specialties, so the lexer cannot be compiled with the lex tools |
| 840 |
shipped by some UNIX vendors (HP, SGI, Sun).</p> |
| 841 |
|
| 842 |
<h2><a id="B3" name="B3">B3. I get link failures when I try to |
| 843 |
build fetchmail.</a></h2> |
| 844 |
|
| 845 |
<p>If you get errors resembling these:</p> |
| 846 |
|
| 847 |
<pre> |
| 848 |
mxget.o(.text+0x35): undefined referenceto '__res_search' |
| 849 |
mxget.o(.text+0x99): undefined reference to '__dn_skipname' |
| 850 |
mxget.o(.text+0x11c): undefined reference to '__dn_expand' |
| 851 |
mxget.o(.text+0x187): undefined reference to '__dn_expand' |
| 852 |
make: *** [fetchmail] Error 1 |
| 853 |
</pre> |
| 854 |
|
| 855 |
<p>then you must add "-lresolv" to the LOADLIBS line in your |
| 856 |
Makefile once you have installed the 'bind' package.</p> |
| 857 |
|
| 858 |
<p>If you get link errors involving <tt>dcgettext</tt>, like |
| 859 |
these:</p> |
| 860 |
|
| 861 |
<pre> |
| 862 |
rcfile_y.o: In function 'yyparse': |
| 863 |
rcfile_y.o(.text+0x3aa): undefined reference to 'dcgettext__' |
| 864 |
rcfile_y.o(.text+0x4f2): undefined reference to 'dcgettext__' |
| 865 |
rcfile_y.o(.text+0x5ee): undefined reference to 'dcgettext__' |
| 866 |
rcfile_y.o: In function 'yyerror': |
| 867 |
rcfile_y.o(.text+0xc7c): undefined reference to 'dcgettext__' |
| 868 |
rcfile_y.o(.text+0xcc8): undefined reference to 'dcgettext__' |
| 869 |
rcfile_y.o(.text+0xdf9): more undefined references to 'dcgettext__' follow |
| 870 |
</pre> |
| 871 |
|
| 872 |
<p>install an up to date version of GNU gettext, reconfigure and rebuild |
| 873 |
fetchmail. If that does not help, reconfigure with '--disable-nls' added |
| 874 |
to the "./configure" command and rebuild.</p> |
| 875 |
|
| 876 |
<h2><a id="B4" name="B4">B4. I get build failures in the intl |
| 877 |
directory.</a></h2> |
| 878 |
|
| 879 |
<p>Reconfigure with <tt>--disable-nls</tt> and recompile.</p> |
| 880 |
|
| 881 |
<hr/> |
| 882 |
<h1>Fetchmail configuration file grammar questions</h1> |
| 883 |
<h2><a id="F1" name="F1">F1. Why does my old .fetchmailrc file no |
| 884 |
longer work?</a></h2> |
| 885 |
|
| 886 |
<h3>If your file predates 6.3.0</h3> |
| 887 |
|
| 888 |
<p>The <tt>netsec</tt> option was discontinued and needs to be |
| 889 |
removed.</p> |
| 890 |
|
| 891 |
<h3>If your file predates 5.8.9</h3> |
| 892 |
|
| 893 |
<p>If you were using ETRN mode, change your <tt>smtphost</tt> |
| 894 |
option to a <tt>fetchdomains</tt> option.</p> |
| 895 |
|
| 896 |
<h3>If your file predates 5.8.3</h3> |
| 897 |
|
| 898 |
<p>The <tt>'via localhost'</tt> special case for use with ssh tunnelling is |
| 899 |
gone. Use the <tt>%h</tt> feature of <tt>plugin</tt> instead.</p> |
| 900 |
|
| 901 |
<h3>If your file predates 5.6.8</h3> |
| 902 |
|
| 903 |
<p>In 5.6.8, the <tt>preauth</tt> keyword and option were changed |
| 904 |
back to <tt>auth</tt>. The <tt>preauth</tt> synonym will still be |
| 905 |
supported through a few more point releases.</p> |
| 906 |
|
| 907 |
<h3>If your file predates 5.6.5</h3> |
| 908 |
|
| 909 |
<p>The <tt>imap-gss</tt>, <tt>imap-k4</tt>, and <tt>imap-login</tt> |
| 910 |
protocol types are gone. This is a result of a major re-factoring |
| 911 |
of the authentication machinery; fetchmail can now use Kerberos V4 |
| 912 |
and GSSAPI not just with IMAP but with POP3 servers that have |
| 913 |
RFC1734 support for the AUTH command.</p> |
| 914 |
|
| 915 |
<p>When trying to identify you to an IMAP or POP mailserver, |
| 916 |
fetchmail now first tries methods that don't require a password |
| 917 |
(GSSAPI, KERBEROS_IV); then it looks for methods that mask your |
| 918 |
password (CRAM-MD5, X-OTP); and only if it the server doesn't |
| 919 |
support any of those will it ship your password en clair.</p> |
| 920 |
|
| 921 |
<p>Setting the <tt>preauth</tt> option to any value other than |
| 922 |
'password' will prevent from looking for a password in your |
| 923 |
<tt>.netrc</tt> file or querying for it at startup time.</p> |
| 924 |
|
| 925 |
<h3>If your file predates 5.1.0</h3> |
| 926 |
|
| 927 |
<p>In 5.1.0, the <tt>auth</tt> keyword and option were changed to |
| 928 |
<tt>preauth</tt>.</p> |
| 929 |
|
| 930 |
<h3>If your file predates 4.5.5</h3> |
| 931 |
|
| 932 |
<p>If the <code>dns</code> option is on (the default), you may need |
| 933 |
to make sure that any hostname you specify (for mail hosts or for |
| 934 |
an SMTP target) is a canonical fully-qualified hostname). In order |
| 935 |
to avoid DNS overhead and complications, fetchmail no longer tries |
| 936 |
to derive the fetchmail client machine's canonical DNS name at |
| 937 |
startup.</p> |
| 938 |
|
| 939 |
<h3>If your file predates 4.0.6:</h3> |
| 940 |
|
| 941 |
<p>Just after the '<code>via</code>' option was introduced, I |
| 942 |
realized that the interactions between the '<code>via</code>', |
| 943 |
'<code>aka</code>', and '<code>localdomains</code>' options were |
| 944 |
out of control. Their behavior had become complex and confusing, so |
| 945 |
much so that I was no longer sure I understood it myself. Users |
| 946 |
were being unpleasantly surprised.</p> |
| 947 |
|
| 948 |
<p>Rather than add more options or crock the code, I re-thought it. |
| 949 |
The redesign simplified the code and made the options more |
| 950 |
orthogonal, but may have broken some complex multidrop |
| 951 |
configurations.</p> |
| 952 |
|
| 953 |
<p>Any multidrop configurations that depended on the name just |
| 954 |
after the '<code>poll</code>' or '<code>skip</code>' keyword being |
| 955 |
still interpreted as a DNS name for address-matching purposes, even |
| 956 |
in the presence of a '<code>via</code>' option, will break.</p> |
| 957 |
|
| 958 |
<p>It is theoretically possible that other unusual configurations |
| 959 |
(such as those using a non-FQDN poll name to generate Kerberos IV |
| 960 |
tickets) might also break; the old behavior was sufficiently murky |
| 961 |
that we can't be sure. If you think this has happened to you, |
| 962 |
contact the maintainer.</p> |
| 963 |
|
| 964 |
<h3>If your file predates 3.9.5:</h3> |
| 965 |
|
| 966 |
<p>The '<code>remote</code>' keyword has been changed to |
| 967 |
'<code>folder</code>'. If you try to use the old keyword, the |
| 968 |
parser will utter a warning.</p> |
| 969 |
|
| 970 |
<h3>If your file predates 3.9:</h3> |
| 971 |
|
| 972 |
<p>It could be because you're using a .fetchmailrc that's written |
| 973 |
in the old popclient syntax without an explicit |
| 974 |
'<code>username</code>' keyword leading the first user entry |
| 975 |
attached to a server entry.</p> |
| 976 |
|
| 977 |
<p>This error can be triggered by having a user option such as |
| 978 |
'<code>keep</code>' or '<code>fetchall</code>' before the first |
| 979 |
explicit username. For example, if you write</p> |
| 980 |
|
| 981 |
<pre> |
| 982 |
poll openmail protocol pop3 |
| 983 |
keep user "Hal DeVore" there is hdevore here |
| 984 |
</pre> |
| 985 |
|
| 986 |
<p>the '<code>keep</code>' option will generate an entire user |
| 987 |
entry with the default username (the name of fetchmail's invoking |
| 988 |
user).</p> |
| 989 |
|
| 990 |
<p>The popclient compatibility syntax was removed in 4.0. It |
| 991 |
complicated the configuration file grammar and confused users.</p> |
| 992 |
|
| 993 |
<h3>If your file predates 2.8:</h3> |
| 994 |
|
| 995 |
<p>The '<code>interface</code>', '<code>monitor</code>' and |
| 996 |
'<code>batchlimit</code>' options changed after 2.8.</p> |
| 997 |
|
| 998 |
<p>They used to be global options with '<code>set</code>' syntax |
| 999 |
like the batchlimit and logfile options. Now they're per-server |
| 1000 |
options, like '<code>protocol</code>'.</p> |
| 1001 |
|
| 1002 |
<p>If you had something like</p> |
| 1003 |
|
| 1004 |
<pre> |
| 1005 |
set interface = "sl0/10.0.2.15" |
| 1006 |
</pre> |
| 1007 |
|
| 1008 |
<p>in your .fetchmailrc file, simply delete that line and insert |
| 1009 |
'interface sl0/10.0.2.15' in the server options part of your |
| 1010 |
'defaults' declaration.</p> |
| 1011 |
|
| 1012 |
<p>Do similarly for any '<code>monitor</code>' or |
| 1013 |
'<code>batchlimit</code>' options.</p> |
| 1014 |
|
| 1015 |
<h2><a id="F2" name="F2">F2. The .fetchmailrc parser won't accept |
| 1016 |
my all-numeric user name.</a></h2> |
| 1017 |
|
| 1018 |
<p>Either upgrade to a post-5.0.5 fetchmail or put string quotes |
| 1019 |
around it. :-)</p> |
| 1020 |
|
| 1021 |
<p>The configuration file parser in older fetchmail versions |
| 1022 |
treated any all-numeric token as a number, which confused it when |
| 1023 |
it was expecting a name. String quoting forces the token's |
| 1024 |
class.</p> |
| 1025 |
|
| 1026 |
<p>The lexical analyzer in 5.0.6 and beyond is smarter and assumes |
| 1027 |
any token following "username" or "password" is a string.</p> |
| 1028 |
|
| 1029 |
<h2><a id="F3" name="F3">F3. The .fetchmailrc parser won't accept |
| 1030 |
my host or username beginning with 'no'.</a></h2> |
| 1031 |
|
| 1032 |
<p>See <a href="#F2">F2</a>. You're caught in an unfortunate crack |
| 1033 |
between the newer-style syntax for negated options ('no keep', 'no |
| 1034 |
rewrite' etc.) and the older style run-on syntax ('nokeep', |
| 1035 |
'norewrite' etc.).</p> |
| 1036 |
|
| 1037 |
<p>Upgrade to a 5.0.6 or later fetchmail, or put string quotes |
| 1038 |
around your token.</p> |
| 1039 |
|
| 1040 |
<h2><a id="F4" name="F4">F4. I'm getting a 'parse error' message I |
| 1041 |
don't understand.</a></h2> |
| 1042 |
|
| 1043 |
<p>The most common cause of mysterious parse errors is putting a |
| 1044 |
server option after a user option. Check the manual page; you'll |
| 1045 |
probably find that by moving one or more options closer to the |
| 1046 |
'poll' keyword you can eliminate the problem.</p> |
| 1047 |
|
| 1048 |
<p>Yes, I know these ordering restrictions are hard to understand. |
| 1049 |
Unfortunately, they're necessary in order to allow the 'defaults' |
| 1050 |
feature to work.</p> |
| 1051 |
|
| 1052 |
<hr/> |
| 1053 |
<h1>Configuration questions</h1> |
| 1054 |
<h2><a id="C1" name="C1">C1. Why do I need a .fetchmailrc when |
| 1055 |
running as root on my own machine?</a></h2> |
| 1056 |
|
| 1057 |
<p>Ian T. Zimmerman <itz@rahul.net> asked:</p> |
| 1058 |
|
| 1059 |
<p>On the machine where I'm the only real user, I run fetchmail as |
| 1060 |
root from a cron job, like this:</p> |
| 1061 |
|
| 1062 |
<pre> |
| 1063 |
fetchmail -u "itz" -p POP3 -s bolero.rahul.net |
| 1064 |
</pre> |
| 1065 |
|
| 1066 |
<p>This used to work as is (with no .fetchmailrc file in root's |
| 1067 |
home directory) with the last version I had (1.7 or 1.8, I don't |
| 1068 |
remember). But with 2.0, it RECPs all mail to the local root user, |
| 1069 |
unless I create a .fetchmailrc in root's home directory |
| 1070 |
containing:</p> |
| 1071 |
|
| 1072 |
<pre> |
| 1073 |
skip bolero.rahul.net proto POP3 |
| 1074 |
user itz is itz |
| 1075 |
</pre> |
| 1076 |
|
| 1077 |
<p>It won't work if the second line is just "<code>user |
| 1078 |
itz</code>". This is silly.</p> |
| 1079 |
|
| 1080 |
<p>It seems fetchmail decides to RECP the 'default local user' |
| 1081 |
(i.e. the uid running fetchmail) unless there are local aliases, |
| 1082 |
and the 'default' aliases (itz->itz) don't count. They |
| 1083 |
should.</p> |
| 1084 |
|
| 1085 |
<p>Answer:</p> |
| 1086 |
|
| 1087 |
<p>No they shouldn't. I thought about this for a while, and I don't |
| 1088 |
much like the conclusion I reached, but it's unavoidable. The |
| 1089 |
problem is that fetchmail has no way to know, in general, that a |
| 1090 |
local user 'itz' actually exists.</p> |
| 1091 |
|
| 1092 |
<p>"Ah!" you say, "Why doesn't it check the password file to see if |
| 1093 |
the remote name matches a local one?" Well, there are two |
| 1094 |
reasons.</p> |
| 1095 |
|
| 1096 |
<p>One: it's not always possible. Suppose you have an SMTP host |
| 1097 |
declared that's not the machine fetchmail is running on? You |
| 1098 |
lose.</p> |
| 1099 |
|
| 1100 |
<p>Two: How do you know server itz and SMTP-host itz are the same |
| 1101 |
person? They might not be, and fetchmail shouldn't assume they are |
| 1102 |
unless local-itz can explicitly produce credentials to prove it |
| 1103 |
(that is, the server-itz password in local-itz's .fetchmailrc |
| 1104 |
file.).</p> |
| 1105 |
|
| 1106 |
<p>Once you start running down possible failure modes and thinking |
| 1107 |
about ways to tinker with the mapping rules, you'll quickly find |
| 1108 |
that all the alternatives to the present default are worse or |
| 1109 |
unacceptably more complicated or both.</p> |
| 1110 |
|
| 1111 |
<h2><a id="C2" name="C2">C2. How can I arrange for a fetchmail |
| 1112 |
daemon to get killed when I log out?</a></h2> |
| 1113 |
|
| 1114 |
<p>The easiest way to dispatch fetchmail on logout (which will work |
| 1115 |
reliably only if you have just one login going at any time) is to |
| 1116 |
arrange for the command 'fetchmail -q' to be called on logout. |
| 1117 |
Under bash, you can arrange this by putting 'fetchmail -q' in the |
| 1118 |
file '~/.bash_logout'. Most csh variants execute '~/.logout' on |
| 1119 |
logout. For other shells, consult your shell manual page.</p> |
| 1120 |
|
| 1121 |
<p>Automatic startup/shutdown of fetchmail is a little harder to |
| 1122 |
arrange if you may have multiple login sessions going. In the |
| 1123 |
contrib subdirectory of the fetchmail distribution there is some |
| 1124 |
shell code you can add to your .bash_login and .bash_logout |
| 1125 |
profiles that will accomplish this. Thank James Laferriere |
| 1126 |
<babydr@nwrain.net> for it.</p> |
| 1127 |
|
| 1128 |
<p>Some people start up and shut down fetchmail using the ppp-up |
| 1129 |
and ppp-down scripts of pppd.</p> |
| 1130 |
|
| 1131 |
<h2><a id="C3" name="C3">C3. How do I know what interface and |
| 1132 |
address to use with --interface?</a></h2> |
| 1133 |
|
| 1134 |
<p>This depends a lot on your local networking configuration (and |
| 1135 |
right now you can't use it at all except under Linux and the newer |
| 1136 |
BSDs). However, here are some important rules of thumb that can |
| 1137 |
help. If they don't work, ask your local sysop or your Internet |
| 1138 |
provider.</p> |
| 1139 |
|
| 1140 |
<p>First, you may not need to use --interface at all. If your |
| 1141 |
machine only ever does SLIP or PPP to one provider, it's almost |
| 1142 |
certainly by a point to point modem connection to your provider's |
| 1143 |
local subnet that's pretty secure against snooping (unless someone |
| 1144 |
can tap your phone or the provider's local subnet!). Under these |
| 1145 |
circumstances, specifying an interface address is fairly |
| 1146 |
pointless.</p> |
| 1147 |
|
| 1148 |
<p>What the option is really for is sites that use more than one |
| 1149 |
provider. Under these circumstances, typically one of your provider |
| 1150 |
IP addresses is your mailserver (reachable fairly securely via the |
| 1151 |
modem and provider's subnet) but the others might ship your packets |
| 1152 |
(including your password) over unknown portions of the general |
| 1153 |
Internet that could be vulnerable to snooping. What you'll use |
| 1154 |
--interface for is to make sure your password only goes over the |
| 1155 |
one secure link.</p> |
| 1156 |
|
| 1157 |
<p>To determine the device:</p> |
| 1158 |
|
| 1159 |
<ol> |
| 1160 |
<li>If you're using a SLIP link, the correct device is probably |
| 1161 |
sl0.</li> |
| 1162 |
|
| 1163 |
<li>If you're using a PPP link, the correct device is probably |
| 1164 |
ppp0.</li> |
| 1165 |
|
| 1166 |
<li>If you're using a direct connection over a local network such |
| 1167 |
as an ethernet, use the command 'netstat -r' to look at your |
| 1168 |
routing table. Try to match your mailserver name to a destination |
| 1169 |
entry; if you don't see it in the first column, use the 'default' |
| 1170 |
entry. The device name will be in the rightmost column.</li> |
| 1171 |
</ol> |
| 1172 |
|
| 1173 |
<p>To determine the address and netmask:</p> |
| 1174 |
|
| 1175 |
<ol> |
| 1176 |
<li>If you're talking to slirp, the correct address is probably |
| 1177 |
10.0.2.15, with no netmask specified. (It's possible to configure |
| 1178 |
slirp to present other addresses, but that's the default.)</li> |
| 1179 |
|
| 1180 |
<li>If you have a static IP address, run 'ifconfig <device>', |
| 1181 |
where <device> is whichever one you've determined. Use the IP |
| 1182 |
address given after "inet addr:". That is the IP address for your |
| 1183 |
end of the link, and is what you need. You won't need to specify a |
| 1184 |
netmask.</li> |
| 1185 |
|
| 1186 |
<li>If you have a dynamic IP address, your connection IP will vary |
| 1187 |
randomly over some given range (that is, some number of the least |
| 1188 |
significant bits change from connection to connection). You need to |
| 1189 |
declare an address with the variable bits zero and a complementary |
| 1190 |
netmask that sets the range.</li> |
| 1191 |
</ol> |
| 1192 |
|
| 1193 |
<p>To illustrate the rule for dynamic IP addresses, let's suppose |
| 1194 |
you're hooked up via SLIP and your IP provider tells you that the |
| 1195 |
dynamic address pool is 255 addresses ranging from 205.164.136.1 to |
| 1196 |
205.164.136.255. Then</p> |
| 1197 |
|
| 1198 |
<pre> |
| 1199 |
interface "sl0/205.164.136.0/255.255.255.0" |
| 1200 |
</pre> |
| 1201 |
|
| 1202 |
<p>would work. To range over any value of the last two octets |
| 1203 |
(65536 addresses) you would use</p> |
| 1204 |
|
| 1205 |
<pre> |
| 1206 |
interface "sl0/205.164.0.0/255.255.0.0" |
| 1207 |
</pre> |
| 1208 |
|
| 1209 |
<h2><a id="C4" name="C4">C4. How can I set up support for |
| 1210 |
sendmail's anti-spam features?</a></h2> |
| 1211 |
|
| 1212 |
<p>This answer covers versions of sendmail from 8.9.3-20 (the |
| 1213 |
version installed in Red Hat 6.2) upwards. If you have an older |
| 1214 |
version, upgrade to sendmail 8.9.</p> |
| 1215 |
|
| 1216 |
<p>Stock sendmails can now do anti-spam exclusions based on a |
| 1217 |
database of filter rules. The human-readable form of the database |
| 1218 |
is at <tt>/etc/mail/access</tt>. The database itself is at |
| 1219 |
<tt>/etc/mail/access.db</tt>.</p> |
| 1220 |
|
| 1221 |
<p>The table itself uses email addresses, domain names, and network |
| 1222 |
numbers as keys. For example,</p> |
| 1223 |
|
| 1224 |
<pre> |
| 1225 |
spammer@aol.com REJECT |
| 1226 |
cyberspammer.com REJECT |
| 1227 |
192.168.212 REJECT |
| 1228 |
</pre> |
| 1229 |
|
| 1230 |
<p>would refuse mail from spammer@aol.com, any user from |
| 1231 |
cyberspammer.com (or any host within the cyberspammer.com domain), |
| 1232 |
and any host on the 192.168.212.* network. (This feature can be |
| 1233 |
used to do other things as well; see the <a |
| 1234 |
href="http://www.sendmail.org/m4/anti_spam.html">sendmail |
| 1235 |
documentation</a> for details)</p> |
| 1236 |
|
| 1237 |
<p>To actually set up the database, run</p> |
| 1238 |
|
| 1239 |
<pre> |
| 1240 |
makemap hash deny <deny |
| 1241 |
</pre> |
| 1242 |
|
| 1243 |
<p>in /etc/mail.</p> |
| 1244 |
|
| 1245 |
<p>To test, send a message to your mailing address from that host |
| 1246 |
and then pop off the message with fetchmail, using the -v argument. |
| 1247 |
You can monitor the SMTP transaction, and when the FROM address is |
| 1248 |
parsed, if sendmail sees that it is an address in spamlist, |
| 1249 |
fetchmail will flush and delete it.</p> |
| 1250 |
|
| 1251 |
<p>Under no circumstances put your <strong>mailhost</strong> or |
| 1252 |
<strong>any host you accept mail from</strong> using fetchmail into |
| 1253 |
your reject file. You <strong>will</strong> lose mail if you do |
| 1254 |
this!!!</p> |
| 1255 |
|
| 1256 |
<h2><a id="C5" name="C5">C5. How can I poll some of my mailboxes |
| 1257 |
more/less often than others?</a></h2> |
| 1258 |
|
| 1259 |
<p>Use the <cite>interval</cite> keyword on the ones that should be |
| 1260 |
checked less often. For example, if you do a poll every 5 minutes, |
| 1261 |
and want to poll some mailboxes every 5 minutes and some every 30 |
| 1262 |
minutes, use something like this:</p> |
| 1263 |
|
| 1264 |
<pre> |
| 1265 |
poll mainsite.example.com proto pop3 user .... |
| 1266 |
poll secondary.example.com proto pop3 interval 6 user ... |
| 1267 |
</pre> |
| 1268 |
|
| 1269 |
<p>Then secondary.example.com will be polled every 6th time that |
| 1270 |
mainsite.example.com is polled, which with a polling interval of |
| 1271 |
every 5 minutes means that secondary.example.com will be polled |
| 1272 |
every 30 minutes.</p> |
| 1273 |
|
| 1274 |
<h2><a id="C6" name="C6">C6. Fetchmail works OK started up manually, |
| 1275 |
but not from an init script.</a></h2> |
| 1276 |
|
| 1277 |
<p>Often, startup scripts have a different environment than an |
| 1278 |
interactive login shell. For instance, $HOME might point to "/root" |
| 1279 |
when you are logged in as root, but it might be either unset, or |
| 1280 |
set to "/" when the startup scripts are running. That means |
| 1281 |
fetchmail at startup can't find the .fetchmailrc.</p> |
| 1282 |
|
| 1283 |
<p>Pick a location (such as /etc/fetchmailrc) and use fetchmail's |
| 1284 |
-f option to point fetchmail at it. That should solve the |
| 1285 |
problem.</p> |
| 1286 |
|
| 1287 |
<h2><a id="C7" name="C7">C7. How can I forward mail to another |
| 1288 |
host?</a></h2> |
| 1289 |
|
| 1290 |
<p>To forward mail to a host other than the one you are running |
| 1291 |
fetchmail on, use the <code>smtphost</code> or |
| 1292 |
<code>smtpname</code> option. See the manual page for details.</p> |
| 1293 |
|
| 1294 |
<h2><a id="C8" name="C8">C8. Why is "NOMAIL" an error?/I frequently get messages |
| 1295 |
from cron!</a></h2> |
| 1296 |
|
| 1297 |
<p>Some users want to write scripts that take action only if mail |
| 1298 |
could/could not be retrieved, thus fetchmail reports if it has retrieved |
| 1299 |
messages or not.</p> |
| 1300 |
|
| 1301 |
<p>If you do not want "no mail" to be an error condition (for instance, |
| 1302 |
for cron jobs), use a POSIX-compliant shell and add this to the end of |
| 1303 |
the fetchmail command line, it will change an exit code of 1 to 0 and |
| 1304 |
others to 1:</p> |
| 1305 |
<pre> |
| 1306 |
|| [ $? -eq 1 ] |
| 1307 |
</pre> |
| 1308 |
|
| 1309 |
<p>If you want to map more than one code to 0, you cannot cascade multiple |
| 1310 |
<strong>|| [ $? -eq N ]</strong>, but you must instead use the |
| 1311 |
<strong>-o</strong> operator inside the brackets, (see the test(1) |
| 1312 |
manpage for details), such as:</p> |
| 1313 |
|
| 1314 |
<pre> |
| 1315 |
|| [ $? -eq 1 -o $? -eq 9 ] |
| 1316 |
</pre> |
| 1317 |
|
| 1318 |
<p>A full cron line might then look like this:</p> |
| 1319 |
|
| 1320 |
<pre> |
| 1321 |
*/15 * * * * fetchmail -s || [ $? -eq 1 ] |
| 1322 |
</pre> |
| 1323 |
|
| 1324 |
|
| 1325 |
<hr/> |
| 1326 |
<h1>How to make fetchmail play nice with various MTAs</h1> |
| 1327 |
<h2><a id="T1" name="T1">T1. How can I use fetchmail with |
| 1328 |
sendmail?</a></h2> |
| 1329 |
|
| 1330 |
<p>For most sendmails, no special configuration is required. Eric |
| 1331 |
Allman tells me that if <code>FEATURE(always_add_domain)</code> is |
| 1332 |
included in sendmail's configuration, you can leave the |
| 1333 |
<code>rewrite</code> option off.</p> |
| 1334 |
|
| 1335 |
<p>If your sendmail complains "sendmail does not relay", make |
| 1336 |
sure your sendmail.cf file says <code>Cwlocalhost</code> so that |
| 1337 |
sendmail recognizes 'localhost' as a name of its host.</p> |
| 1338 |
|
| 1339 |
<p>If you're mailing from another machine on your local network, |
| 1340 |
also ensure that its IP address is listed in ip_allow or name in |
| 1341 |
name_allow (usually in /etc/mail/)</p> |
| 1342 |
|
| 1343 |
<p>If you find that your sendmail doesn't like the address |
| 1344 |
'FETCHMAIL-DAEMON@localhost' (which is used in the bouncemail that |
| 1345 |
fetchmail generates), you may have to set |
| 1346 |
<code>FEATURE(accept_unqualified_senders)</code>.</p> |
| 1347 |
|
| 1348 |
<p>Günther Leber reports that Digital Unix sendmails won't |
| 1349 |
work with fetchmail. The symptom is an error message "<code>553 |
| 1350 |
Local configuration error, hostname not recognized as |
| 1351 |
local</code>". The problem is that fetchmail normally feeds |
| 1352 |
sendmail with the client machine's host address in the MAIL FROM |
| 1353 |
line. These sendmails think this means they're seeing the result of |
| 1354 |
a mail loop and suppress the mail. You may be able to work around |
| 1355 |
this by running in <code>--invisible</code> mode.</p> |
| 1356 |
|
| 1357 |
<p>If you want to support multidrop mode, and you can get access to |
| 1358 |
your mailserver's sendmail.cf file, it's a good idea to add this |
| 1359 |
rule:</p> |
| 1360 |
|
| 1361 |
<pre> |
| 1362 |
H?l?Delivered-To: $h |
| 1363 |
</pre> |
| 1364 |
|
| 1365 |
<p>This will cause the mailserver's sendmail to reliably write the |
| 1366 |
appropriate envelope address into each message before fetchmail |
| 1367 |
sees it, and tell fetchmail which header it is.  With this |
| 1368 |
change, multidrop mode should work reliably even when the Received |
| 1369 |
header omits the envelope address (which will typically be the case |
| 1370 |
when the message has multiple recipients).  However it will |
| 1371 |
still not distinguish the recipients, your only advantage is that |
| 1372 |
no bounce will be sent if a message is BCC addressed to multiple |
| 1373 |
users at your site.  To fix even that problem, you might want |
| 1374 |
to try the following hack, which is however untested and quite |
| 1375 |
experimental:</p> |
| 1376 |
|
| 1377 |
<pre> |
| 1378 |
H?J?Delivered-To: $u |
| 1379 |
|
| 1380 |
Mmdrop, P=/usr/bin/procmail, F=lsDFMqSPfhnu9J, |
| 1381 |
S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP/HdrToSMTP, |
| 1382 |
T=DNS/RFC822/X-Unix, |
| 1383 |
A=procmail -Y -a $u -d $h |
| 1384 |
</pre> |
| 1385 |
|
| 1386 |
<p>For both hacks, you have to declare '<code>envelope |
| 1387 |
"Delivered-To:"</code>' on the fetchmail side, to put the virtual |
| 1388 |
domain (e.g. 'domain.com') with RELAY permission into your access |
| 1389 |
file and to add a line reading '<code>domain.com |
| 1390 |
local:local-pop-user</code>' for the first and '<code>domain.com |
| 1391 |
mdrop:local-pop-user</code>' for the second hack to your |
| 1392 |
mailertable.</p> |
| 1393 |
|
| 1394 |
<p>You will notice that if the mail already has a Delivered-To |
| 1395 |
header, sendmail will not add another.  Further, editing |
| 1396 |
sendmail.cf directly is not very comfortable.  Solutions for |
| 1397 |
both problems can be found in Peter 'Rattacresh' Backes' 'hybrid' |
| 1398 |
patch against sendmail.  Have a look at it, you can find it in |
| 1399 |
the contrib subdirectory.</p> |
| 1400 |
|
| 1401 |
<p>Feel free to try Martijn Lievaart's detailed recipe in the |
| 1402 |
contrib subdirectory of the fetchmail source distribution, it |
| 1403 |
attempts to realize multidrop mailboxes with an external |
| 1404 |
script.</p> |
| 1405 |
|
| 1406 |
<p>If for some reason you are invoking sendmail via the |
| 1407 |
<tt>mda</tt> option (rather than delivering to port 25 via smtp), |
| 1408 |
don't forget to include the -i switch. Otherwise you will |
| 1409 |
occasionally get mysterious delivery failures with a SIGPIPE as the |
| 1410 |
sendmail instance dies. The problem is messages with a single dot |
| 1411 |
at start of a text line.</p> |
| 1412 |
|
| 1413 |
<h2><a id="T2" name="T2">T2. How can I use fetchmail with |
| 1414 |
qmail?</a></h2> |
| 1415 |
|
| 1416 |
<h3>qmail as your local SMTP server</h3> |
| 1417 |
|
| 1418 |
<p>Avoid <a href="http://home.pages.de/~mandree/qmail-bugs.html">qmail, |
| 1419 |
it's broken and unmaintained.</a></p> |
| 1420 |
|
| 1421 |
<p>Turn on the <code>forcecr</code> option; qmail's listener mode |
| 1422 |
doesn't like header or message lines terminated with bare |
| 1423 |
linefeeds.<br/> |
| 1424 |
(This information contributed by Robert de Bath |
| 1425 |
<robert@mayday.cix.co.uk>.)</p> |
| 1426 |
|
| 1427 |
<h3>qmail as your ISP's POP3 server</h3> |
| 1428 |
|
| 1429 |
<p>Note that qmail's POP3 server, as of version 1.03 and netqmail 1.05, |
| 1430 |
miscalculates the message sizes, so you may see size-related fetchmail |
| 1431 |
warnings.</p> |
| 1432 |
|
| 1433 |
<p>If a mailhost is using the qmail package, then it is usually possible |
| 1434 |
to set up one fetchmail link to reliably collect the mail for an entire |
| 1435 |
domain.</p> |
| 1436 |
|
| 1437 |
<p>One of the basic features of qmail is the 'Delivered-To:' |
| 1438 |
message header. Whenever qmail delivers a message to a local |
| 1439 |
mailbox it puts the username and hostname of the envelope recipient |
| 1440 |
on this line. One major reason for this is to prevent mail |
| 1441 |
loops, the other is to transport envelope information which is essential |
| 1442 |
for multidrop (domain-in-a-mailbox) schemes.</p> |
| 1443 |
|
| 1444 |
<p>To set up qmail to batch mail for a disconnected site, the |
| 1445 |
ISP-mailhost will have normally put that site in its 'virtualhosts' |
| 1446 |
control file so it will add a prefix to all mail addresses for this |
| 1447 |
site. This results in mail sent to |
| 1448 |
'username@userhost.userdom.example.com' having a 'Delivered-To:' line |
| 1449 |
of the form:</p> |
| 1450 |
|
| 1451 |
<pre> |
| 1452 |
Delivered-To: mbox-userstr-username@userhost.userdom.example.com |
| 1453 |
</pre> |
| 1454 |
|
| 1455 |
<p>A single host maildrop will be slightly simpler:</p> |
| 1456 |
|
| 1457 |
<pre> |
| 1458 |
Delivered-To: mbox-userstr-username@userhost.example.com |
| 1459 |
</pre> |
| 1460 |
|
| 1461 |
<p>The ISP can make the 'mbox-userstr-' prefix anything they choose |
| 1462 |
but a string matching the user host name is likely.</p> |
| 1463 |
|
| 1464 |
<p>To use this line you must:</p> |
| 1465 |
|
| 1466 |
<ol> |
| 1467 |
<li>Ensure the option '<code>envelope "Delivered-To"</code>' is in the fetchmail |
| 1468 |
config file.</li> |
| 1469 |
|
| 1470 |
<li>Ensure the option '<code>qvirtual "mbox-userstr-"</code>' is |
| 1471 |
in the fetchmail config file, in order to remove this prefix from the |
| 1472 |
username. (added by Luca Olivetti)</li> |
| 1473 |
|
| 1474 |
<li>Ensure you have a <code>localdomains</code> option containing |
| 1475 |
'<code>userdom.example.com</code>' or '<code>userhost.userdom.example.com</code>' |
| 1476 |
respectively.</li> |
| 1477 |
</ol> |
| 1478 |
|
| 1479 |
<h2><a id="T3" name="T3">T3. How can I use fetchmail with |
| 1480 |
exim?</a></h2> |
| 1481 |
|
| 1482 |
<p>If you have <code>rewrite</code> on:</p> |
| 1483 |
|
| 1484 |
<p>There is an RFC1123 requirement that MAIL FROM and RCPT TO |
| 1485 |
addresses you pass to it have to be canonical (e.g. with a fully |
| 1486 |
qualified hostname part). Therefore fetchmail tries to pass fully |
| 1487 |
qualified RCPT TO addresses. But exim does not by default accept |
| 1488 |
'localhost' as a fully qualified domain. This can be fixed.</p> |
| 1489 |
|
| 1490 |
<p>In exim.conf, add 'localhost' to your local_domains declaration |
| 1491 |
if it's not already present. For example, the author's site at |
| 1492 |
thyrsus.com would have a line reading:</p> |
| 1493 |
|
| 1494 |
<pre> |
| 1495 |
local_domains = thyrsus.com:localhost |
| 1496 |
</pre> |
| 1497 |
|
| 1498 |
<p>If you have <code>rewrite</code> off:</p> |
| 1499 |
|
| 1500 |
<p>MAIL FROM is a potential problem if the MTAs upstream from your |
| 1501 |
fetchmail don't necessarily pass canonicalized From and Return-Path |
| 1502 |
addresses, and fetchmail's <code>rewrite</code> option is off. The |
| 1503 |
specific case where this has come up involves bounce messages |
| 1504 |
generated by sendmail on your mailer host, which have the |
| 1505 |
(un-canonicalized) origin address MAILER-DAEMON.</p> |
| 1506 |
|
| 1507 |
<p>The right way to fix this is to enable the <code>rewrite</code> |
| 1508 |
option and have fetchmail canonicalize From and Return-Path |
| 1509 |
addresses with the mailserver hostname before exim sees them. This |
| 1510 |
option is enabled by default, so it won't be off unless you turned |
| 1511 |
it off.</p> |
| 1512 |
|
| 1513 |
<p>If you must run with <code>rewrite</code> off, there is a switch |
| 1514 |
in exim's configuration files that allows it to accept domainless |
| 1515 |
MAIL FROM addresses; you will have to flip it by putting the |
| 1516 |
line</p> |
| 1517 |
|
| 1518 |
<pre> |
| 1519 |
sender_unqualified_hosts = localhost |
| 1520 |
</pre> |
| 1521 |
|
| 1522 |
<p>in the main section of the exim configuration file. Note that |
| 1523 |
this will result in such messages having an incorrect domain name |
| 1524 |
attached to their return address (your SMTP listener's hostname |
| 1525 |
rather than that of the remote mail server).</p> |
| 1526 |
|
| 1527 |
<h2><a id="T4" name="T4">T4. How can I use fetchmail with |
| 1528 |
smail?</a></h2> |
| 1529 |
|
| 1530 |
<p>Smail 3.2 is very nearly plug-compatible with sendmail, and may |
| 1531 |
work fine out of the box.</p> |
| 1532 |
|
| 1533 |
<p>We have one report that when processing multiple messages from a |
| 1534 |
single fetchmail session, smail sometimes delivers them in an order |
| 1535 |
other than received-date order. This can be annoying because it |
| 1536 |
scrambles conversational threads. This is not fetchmail's problem, |
| 1537 |
it is an smail 'feature' and has been reported to the maintainers |
| 1538 |
as a bug.</p> |
| 1539 |
|
| 1540 |
<p>Very recent smail versions require an |
| 1541 |
<code>-smtp_hello_verify</code> option in the smail config file. |
| 1542 |
This overrides smail's check to see that the HELO address is |
| 1543 |
actually that of the client machine, which is never going to be the |
| 1544 |
case when fetchmail is in the picture. According to RFC1123 an SMTP |
| 1545 |
listener <em>must</em> allow this mismatch, so smail's new behavior |
| 1546 |
(introduced sometime between 3.2.0.90 and 3.2.0.95) is a bug.</p> |
| 1547 |
|
| 1548 |
<p>You may also need to say |
| 1549 |
<code>-smtp_hello_broken_allow=127.0.0.1</code> in order for smail |
| 1550 |
to accept the "localhost" that fetchmail normally appends to |
| 1551 |
recipient addresses.</p> |
| 1552 |
|
| 1553 |
<h2><a id="T5" name="T5">T5. How can I use fetchmail with SCO's |
| 1554 |
MMDF?</a></h2> |
| 1555 |
|
| 1556 |
<p>MMDF itself is difficult to configure, but it turns out that |
| 1557 |
connecting fetchmail to MMDF's SMTP channel isn't that hard. You |
| 1558 |
can read an <a |
| 1559 |
href="http://aplawrence.com/Unixart/uucptofetch.html">MMDF |
| 1560 |
recipe</a> that describes replacing a UUCP link with fetchmail |
| 1561 |
feeding MMDF.</p> |
| 1562 |
|
| 1563 |
<h2><a id="T6" name="T6">T6. How can I use fetchmail with Lotus |
| 1564 |
Notes?</a></h2> |
| 1565 |
|
| 1566 |
<p>The Lotus Notes SMTP gateway tries to deduce when it should |
| 1567 |
convert \n to \r\n, but its rules are not the intuitive and |
| 1568 |
correct-for-RFC822 ones. Use 'forcecr'.</p> |
| 1569 |
|
| 1570 |
<h2><a id="T7" name="T7">T7. How can I use fetchmail with Courier |
| 1571 |
IMAP?</a></h2> |
| 1572 |
|
| 1573 |
<p>The courier mta doesn't like RCPT addresses that look like |
| 1574 |
<code>someone@localhost</code>. Work around this with an |
| 1575 |
<code>smtphost</code> or <code>smtpaddress</code>.</p> |
| 1576 |
|
| 1577 |
<h2><a name="T8">T8. How can I use fetchmail with vbmailshield?</a></h2> |
| 1578 |
|
| 1579 |
<p>vbmailshield's SMTP interpreter is broken. It doesn't understand RSET.</p> |
| 1580 |
|
| 1581 |
<p>As a workaround, you can set batchlimit to 1 so RSET is never used.</p> |
| 1582 |
|
| 1583 |
<hr/> |
| 1584 |
<h1>How to make fetchmail work with various servers</h1> |
| 1585 |
<h2><a id="S1" name="S1"><strike>S1. How can I use fetchmail with |
| 1586 |
qpopper?</strike></a></h2> |
| 1587 |
|
| 1588 |
<p><em>The information that used to be here was obsolete and dropped.</em></p> |
| 1589 |
|
| 1590 |
<h2><a id="S2" name="S2">S2. How can I use fetchmail with Microsoft |
| 1591 |
Exchange?</a></h2> |
| 1592 |
|
| 1593 |
<p>It's been reliably reported that Exchange 2000's POP3 support is |
| 1594 |
so broken that it's unusable. One symptom is that messages without |
| 1595 |
a terminating newline get the POP3 message termination dot emitted |
| 1596 |
-- you guessed it -- right after the last character of the message, |
| 1597 |
with no terminating newline added. This will hang fetchmail or any |
| 1598 |
other RFC-compliant server. IMAP is alleged to work OK, though.</p> |
| 1599 |
|
| 1600 |
<p>Older versions of Exchange are semi-usable. They randomly drop |
| 1601 |
attachments on the floor, though. Microsoft acknowledges this |
| 1602 |
as a known bug and apparently has no plans to fix it.</p> |
| 1603 |
|
| 1604 |
<p>Fetchmail using IMAP usually supports the proprietary NTLM mode used |
| 1605 |
with Microsoft Exchange servers. "Usually" here means that it fails on some |
| 1606 |
servers for reasons that we haven't been able to debug yet, perhaps it's |
| 1607 |
related to the NTLM domain.</p> |
| 1608 |
|
| 1609 |
<p>To enable this NTLM mode, configure fetchmail with |
| 1610 |
the --enable-NTLM option and recompile it. Specify a user option |
| 1611 |
value that looks like 'user@domain': the part to the left of the @ |
| 1612 |
will be passed as the username and the part to the right as the |
| 1613 |
NTLM domain.</p> |
| 1614 |
|
| 1615 |
<p>Microsoft Exchange violates the POP3 and IMAP RFCs. Its LIST command |
| 1616 |
does not reveal the real sizes of mail in the pop mailbox, but the |
| 1617 |
sizes of the compressed versions in the exchange mail database |
| 1618 |
(thanks to Arjan De Vet and Guido Van Rooij for alerting us to this |
| 1619 |
problem).</p> |
| 1620 |
|
| 1621 |
<p>Fetchmail works with Microsoft Exchange, despite this brain damage. |
| 1622 |
Two features are compromised. One is that the --limit option will not |
| 1623 |
work right (it will check against compressed and not actual sizes). |
| 1624 |
The other is that a too-small SIZE argument may be passed to your |
| 1625 |
ESMTP listener, assuming you're using one (this should not be a |
| 1626 |
problem unless the actual size of the message is above the |
| 1627 |
listener's configured length limit).</p> |
| 1628 |
|
| 1629 |
<p>ESR learned that there's supposed to be a |
| 1630 |
registry bit that can fix this breakage:</p> |
| 1631 |
|
| 1632 |
<pre> |
| 1633 |
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MsExchangeIs\Parameters |
| 1634 |
System\Pop3 Compatibility |
| 1635 |
</pre> |
| 1636 |
|
| 1637 |
<p>This is a bitmask that controls the variations from the standard |
| 1638 |
protocol. The bits defined are:</p> |
| 1639 |
|
| 1640 |
<dl> |
| 1641 |
<dt>0x00000001:</dt> |
| 1642 |
|
| 1643 |
<dd>Report exact message sizes for the LIST command</dd> |
| 1644 |
|
| 1645 |
<dt>0x00000002:</dt> |
| 1646 |
|
| 1647 |
<dd>Allow arbitrary linear whitespace between commands and |
| 1648 |
arguments</dd> |
| 1649 |
|
| 1650 |
<dt>0x00000004:</dt> |
| 1651 |
|
| 1652 |
<dd>Enable the LAST command</dd> |
| 1653 |
|
| 1654 |
<dt>0x00000008:</dt> |
| 1655 |
|
| 1656 |
<dd>Allow an empty PASS command (needed for users with blank |
| 1657 |
passwords, but illegal in the protocol)</dd> |
| 1658 |
|
| 1659 |
<dt>0x00000010:</dt> |
| 1660 |
|
| 1661 |
<dd>Relax the length restrictions for arguments to commands |
| 1662 |
(protocol requires 40, but some user names may be longer than |
| 1663 |
that).</dd> |
| 1664 |
|
| 1665 |
<dt>0x00000020:</dt> |
| 1666 |
|
| 1667 |
<dd>Allow spaces in the argument to the USER command.</dd> |
| 1668 |
</dl> |
| 1669 |
|
| 1670 |
<p>There's another one that may be useful to know about:</p> |
| 1671 |
|
| 1672 |
<pre> |
| 1673 |
KEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MsExchangeIs\Parameters |
| 1674 |
System\Pop3 Performance |
| 1675 |
</pre> |
| 1676 |
|
| 1677 |
<dl> |
| 1678 |
<dt>0x00000001:</dt> |
| 1679 |
|
| 1680 |
<dd>Render messages to a temporary stream instead of sending |
| 1681 |
directly from the database (should always be on)</dd> |
| 1682 |
|
| 1683 |
<dt>0x00000002: Flag unrenderable messages (instead of just failing |
| 1684 |
commands) (should only be on if you are seeing the problems |
| 1685 |
reported in KB Q168109)</dt> |
| 1686 |
|
| 1687 |
<dt>0x00000004:</dt> |
| 1688 |
|
| 1689 |
<dd>Return from the QUIT command before all messages have been |
| 1690 |
deleted.</dd> |
| 1691 |
</dl> |
| 1692 |
|
| 1693 |
<p>The Microsoft employee who revealed this information to ESR |
| 1694 |
admitted that he couldn't find it anywhere in their public |
| 1695 |
knowledge base.</p> |
| 1696 |
|
| 1697 |
<p>Another specific problem we have seen with Exchange servers has |
| 1698 |
as its symptom a response to LOGIN that says "NO Ambiguous Alias". |
| 1699 |
Grant Edwards writes:</p> |
| 1700 |
|
| 1701 |
<blockquote><p>This means that Exchange Server is too [...] stupid to |
| 1702 |
figure out which mailbox belongs to you. Instead of actually |
| 1703 |
keeping track of which inbox belongs to which user, it uses some |
| 1704 |
half-witted, guess-o-matic heuristic to try to guess your mailbox |
| 1705 |
name from your username.</p> |
| 1706 |
|
| 1707 |
<p>In your case it doesn't work because your username maps to more |
| 1708 |
than one mailbox. For some people it doesn't work because their |
| 1709 |
username maps to zero mailboxes.</p> |
| 1710 |
|
| 1711 |
<p>You've got several options:</p> |
| 1712 |
|
| 1713 |
<ul> |
| 1714 |
<li>Get your administrator to configure the server so that |
| 1715 |
usernames and mailbox names are the same.</li> |
| 1716 |
|
| 1717 |
<li>Get your administrator to add an alias that maps your username |
| 1718 |
explicitly to your mailbox name.</li> |
| 1719 |
</ul> |
| 1720 |
</blockquote> |
| 1721 |
|
| 1722 |
<p>But, the best option involves finding a server that runs better |
| 1723 |
software.</p> |
| 1724 |
|
| 1725 |
<h2><a id="S3" name="S3">S3. How can I use fetchmail with HP |
| 1726 |
OpenMail?</a></h2> |
| 1727 |
|
| 1728 |
<p>No special configuration is required, but OpenMail versions |
| 1729 |
prior to 6.0 have an annoying bug similar to the big one in <a |
| 1730 |
href="#S2">Microsoft Exchange</a>. The message sizes it gives in |
| 1731 |
the LIST are rounded to the nearest 1024 bytes. It also has a nasty |
| 1732 |
habit of discarding headers it doesn't recognize, such as X- and |
| 1733 |
Resent- headers.</p> |
| 1734 |
<p>OpenMail's project manager claims these bugs have been fixed in |
| 1735 |
6.0.</p> |
| 1736 |
|
| 1737 |
<p>We've had a more recent report (December 2001) that the TOP |
| 1738 |
command fails, returning only one line regardless of its argument, |
| 1739 |
on something identifying itself as "OpenMail POP3 interface".</p> |
| 1740 |
|
| 1741 |
<h2><a id="S4" name="S4">S4. How can I use fetchmail with Novell GroupWise?</a></h2> |
| 1742 |
|
| 1743 |
<p>The Novell GroupWise IMAP server is (according to the designer of |
| 1744 |
IMAP) unusably broken. Among other things, it doesn't include a required |
| 1745 |
content length in its BODY[TEXT] response.</p> |
| 1746 |
|
| 1747 |
<p>Fetchmail works around this problem to some extent, but no guarantees.</p> |
| 1748 |
|
| 1749 |
<h2><a id="S5" name="S5">S5. How can I use fetchmail with |
| 1750 |
InterChange?</a></h2> |
| 1751 |
|
| 1752 |
<p>You can't. At least not if you want to be able to see |
| 1753 |
attachments. InterChange has a bug similar to the MailMax server (<a |
| 1754 |
href="#S6">see below</a>): |
| 1755 |
it reports the message length with attachments but doesn't download |
| 1756 |
them on TOP or RETR.</p> |
| 1757 |
|
| 1758 |
<p>On Jan 9 2001, the people at InfiniteMail sent ESR mail informing |
| 1759 |
him that their new 3.61.08 release of InterChange fixed this |
| 1760 |
problem.</p> |
| 1761 |
|
| 1762 |
<h2><a id="S6" name="S6">S6. How can I use fetchmail with MailMax?</a></h2> |
| 1763 |
|
| 1764 |
<p>You can't. At least not if you want to be able to see |
| 1765 |
attachments. MailMax has a bug; it reports the message length with |
| 1766 |
attachments but doesn't download them on TOP or RETR.</p> |
| 1767 |
|
| 1768 |
<p>Also, we're told that TOP sometimes fails to retrieve the entire |
| 1769 |
message even when enough lines have been specified. The MailMax |
| 1770 |
developers have acknowledged this bug as of 4 May 2000, but there |
| 1771 |
is no fix yet. If you must use this server, force RETR with the |
| 1772 |
<tt>fetchall</tt> option.</p> |
| 1773 |
|
| 1774 |
<h2><a id="S7" name="S7">S7. How can I use fetchmail with FTGate?</a></h2> |
| 1775 |
|
| 1776 |
<p>The FTGate V2 server (and possibly older versions as well) has a |
| 1777 |
weird bug. It answers OK twice to a TOP request! Use the |
| 1778 |
<code>fetchall</code> option to force use of RETR and work around |
| 1779 |
this bug.</p> |
| 1780 |
|
| 1781 |
<hr/> |
| 1782 |
<h1>How to fetchmail work with specific ISPs</h1> |
| 1783 |
<h2><a id="I1" name="I1">I1. How can I use fetchmail with CompuServe RPA?</a></h2> |
| 1784 |
|
| 1785 |
<p>First, make sure your fetchmail has the RPA support compiled in. |
| 1786 |
Stock fetchmail binaries (such as you might get from an RPM) don't. |
| 1787 |
You can check this by looking at the output of <code>fetchmail |
| 1788 |
-V</code>; if you see the string "+RPA" after the version ID you're |
| 1789 |
good to go, otherwise you'll have to build your own from sources |
| 1790 |
(see the INSTALL file in the source distribution for |
| 1791 |
directions).</p> |
| 1792 |
|
| 1793 |
<p>Give your CompuServe pass-phrase in lower case as your password. |
| 1794 |
Add '@compuserve.com' to your user ID so that it looks like 'user |
| 1795 |
<UserID>@compuserve.com', where <UserID> can be either |
| 1796 |
your numerical userID or your E-mail nickname. An RPA-enabled |
| 1797 |
fetchmail will automatically check for csi.com in the POP server's |
| 1798 |
greeting line. If that's found, and your user ID ends with |
| 1799 |
'@compuserve.com', it will query the server to see if it is |
| 1800 |
RPA-capable, and if so do an RPA transaction rather than a |
| 1801 |
plain-text password handshake.</p> |
| 1802 |
|
| 1803 |
<p><strong>Warning:</strong> the debug (-v -v) output of fetchmail |
| 1804 |
will show your pass-phrase in Unicode!</p> |
| 1805 |
|
| 1806 |
<p>These two .fetchmailrc entries show the difference between an |
| 1807 |
RPA and non-RPA configuration:</p> |
| 1808 |
|
| 1809 |
<pre> |
| 1810 |
# This version will use RPA |
| 1811 |
poll csi.com via "pop.site1.csi.com" with proto POP3 and options no dns |
| 1812 |
user "CSERVE_USER@compuserve.com" there with password "CSERVE_PASSWORD" |
| 1813 |
is LOCAL_USER here options fetchall stripcr |
| 1814 |
|
| 1815 |
# This version will not use RPA |
| 1816 |
poll non-rpa.csi.com via "pop.site1.csi.com" with proto POP3 and options no dns |
| 1817 |
user "CSERVE_USER" there with password "CSERVE_POP3_PASSWORD" |
| 1818 |
is LOCAL_USER here options fetchall stripcr |
| 1819 |
</pre> |
| 1820 |
|
| 1821 |
<h2><a id="I2" name="I2">I2. How can I use fetchmail with Demon |
| 1822 |
Internet's SDPS?</a></h2> |
| 1823 |
|
| 1824 |
<h3>Single-drop mode</h3> |
| 1825 |
|
| 1826 |
<p>You can get fetchmail to download the email for just one user |
| 1827 |
from Demon Internet's POP3 server by giving it a username |
| 1828 |
consisting of your Demon user name followed by your account name, |
| 1829 |
with an at-sign between them.</p> |
| 1830 |
|
| 1831 |
<p>For example, to download email for the user |
| 1832 |
<philh@vision25.demon.co.uk>, you could use the following |
| 1833 |
.fetchmailrc file:</p> |
| 1834 |
|
| 1835 |
<pre> |
| 1836 |
set postmaster "philh" |
| 1837 |
poll pop3.demon.co.uk with protocol POP3: |
| 1838 |
user "philh@vision25" is philh |
| 1839 |
</pre> |
| 1840 |
|
| 1841 |
<h3>Multi-drop mode</h3> |
| 1842 |
|
| 1843 |
<p>Demon Internet's SDPS service is an implementation of POP3. All |
| 1844 |
messages have a Received: header added when they enter the |
| 1845 |
maildrop, like this:</p> |
| 1846 |
|
| 1847 |
<pre> |
| 1848 |
Received: from punt-1.mail.demon.net by mailstore for fred@xyz.demon.co.uk |
| 1849 |
id 899963657:10:27896:0; Thu, 09 Jul 98 05:54:17 GMT |
| 1850 |
</pre> |
| 1851 |
|
| 1852 |
<p>To enable multi-drop mode you need to tell fetchmail that |
| 1853 |
'mailstore' is the name of the host which accepted the mail, and |
| 1854 |
let it know the hostname part(s) of your E-mail address. The |
| 1855 |
following example assumes that your hostname is xyz.demon.co.uk, |
| 1856 |
and that you have also bought "mail forwarding" for the domain |
| 1857 |
my-company.co.uk (in which case your MTA must also be configured to |
| 1858 |
accept mail sent to user@my-company.co.uk)</p> |
| 1859 |
|
| 1860 |
<pre> |
| 1861 |
poll pop3.demon.co.uk proto pop3 aka mailstore no dns: |
| 1862 |
localdomains xyz.demon.co.uk my-company.co.uk |
| 1863 |
user xyz is * |
| 1864 |
</pre> |
| 1865 |
|
| 1866 |
<p>Note that Demon may delete mail on the server which is more than |
| 1867 |
30 days old; see their <a |
| 1868 |
href="http://www.demon.net/helpdesk/producthelp/mail/sdps-tech.html/">POP3 |
| 1869 |
page</a> for details.</p> |
| 1870 |
|
| 1871 |
<h3>The SDPS extension</h3> |
| 1872 |
|
| 1873 |
<p>There's a different way to do multidrop. It's not necessary on |
| 1874 |
Demon Internet, since fetchmail can parse Received addresses, but |
| 1875 |
the person who implemented this didn't know that. It may be useful |
| 1876 |
if Demon Internet ever changes mail transports.</p> |
| 1877 |
|
| 1878 |
<p>SDPS includes a non-standard extension for retrieving the |
| 1879 |
envelope of a message (*ENV), which fetchmail optionally supports |
| 1880 |
if compiled with the --enable-SDPS option. If you have it, the |
| 1881 |
first line of the fetchmail -V response will include the string |
| 1882 |
"+SDPS".</p> |
| 1883 |
|
| 1884 |
<p>Once you have SDPS compiled in, fetchmail in POP3 mode will |
| 1885 |
automatically detect when it's talking to a Demon Internet host in |
| 1886 |
multidrop mode, and use the *ENV extension to get an envelope To |
| 1887 |
address.</p> |
| 1888 |
|
| 1889 |
<p>The autodetection works by looking at the hostname in the POP3 |
| 1890 |
greeting line; if you're accessing Demon Internet through a proxy |
| 1891 |
it may fail. To force SDPS mode, pick "sdps" as your protocol.</p> |
| 1892 |
|
| 1893 |
<h2><a id="I3" name="I3">I3. How can I use fetchmail with usa.net's |
| 1894 |
servers?</a></h2> |
| 1895 |
|
| 1896 |
<p>Enable '<code>fetchall</code>'. A user reports that the 2.2 |
| 1897 |
version of USA.NET's POP server reports that you must use the |
| 1898 |
'<code>fetchall</code>' option to make sure that all of the mail is |
| 1899 |
retrieved, otherwise some may be left on the server. This is almost |
| 1900 |
certainly a server bug.</p> |
| 1901 |
|
| 1902 |
<p>The usa.net servers (at least in their 2.2 version, June 1998) |
| 1903 |
don't handle the TOP command properly, either. Regardless of the |
| 1904 |
argument you give it, they retrieve only about 10 lines of the |
| 1905 |
message. Fetchmail normally uses TOP for message retrieval in order |
| 1906 |
to avoid marking messages seen, but '<code>fetchall</code>' forces |
| 1907 |
it to use RETR instead.</p> |
| 1908 |
|
| 1909 |
<p>Also, we're told USA.NET adds a ton of hops to your messages. |
| 1910 |
You may need to raise the MaxHopCount parameter in your sendmail.cf |
| 1911 |
to avoid having fetched mail rejected.</p> |
| 1912 |
|
| 1913 |
<h2><a id="I4" name="I4">I4. How can I use fetchmail with geocities |
| 1914 |
POP3 servers?</a></h2> |
| 1915 |
|
| 1916 |
<p>Nathan Cutler reports that the the mail.geocities.com POP3 |
| 1917 |
servers fail to include the first Received line of the message in |
| 1918 |
the send to fetchmail. This can solve problems if your MUA |
| 1919 |
interprets Received continuations as body lines and doesn't parse |
| 1920 |
any of the following headers.</p> |
| 1921 |
|
| 1922 |
<p>Workaround is to use "mda" keyword or "--mda" switch:</p> |
| 1923 |
|
| 1924 |
<pre> |
| 1925 |
mda "sed -e '1s/^\t/Received: /' | formail | /usr/bin/procmail -d <user>" |
| 1926 |
</pre> |
| 1927 |
|
| 1928 |
<p>Replace \t with exactly one tabulation character.</p> |
| 1929 |
|
| 1930 |
<p>You should also consider using "fetchall" option because |
| 1931 |
Geocities' servers sometimes think that the first 45 messages have |
| 1932 |
already been read.</p> |
| 1933 |
|
| 1934 |
<h2><a id="I5" name="I5">I5. How can I use fetchmail with Hotmail or Lycos Webmail?</a></h2> |
| 1935 |
|
| 1936 |
<p>You can't directly. But you can use fetchmail with hotmail or lycos |
| 1937 |
webmail with the help of the <a |
| 1938 |
href='http://people.freenet.de/courierdave/'>HotWayDaemon</a> |
| 1939 |
daemon. You don't even need to install hotwayd as a daemon in |
| 1940 |
<samp>inetd.conf</samp> but can use it as a plugin. Your |
| 1941 |
configuration should look like this:</p> |
| 1942 |
|
| 1943 |
<pre> |
| 1944 |
poll localhost protocol pop3 tracepolls |
| 1945 |
plugin "/usr/local/sbin/hotwayd -l 0 -p yourproxy:yourproxyport" |
| 1946 |
username "youremail@hotmail.com" password "yourpassword" |
| 1947 |
fetchall |
| 1948 |
</pre> |
| 1949 |
|
| 1950 |
<p>As a second option you may consider using <a |
| 1951 |
href="http://linux.cudeso.be/linuxdoc/gotmail.php">gotmail</a>.</p> |
| 1952 |
|
| 1953 |
<h2><a id="I6" name="I6">I6. How can I use fetchmail with MSN?</a></h2> |
| 1954 |
|
| 1955 |
<p>You can't. MSN uses something that looks like POP3, except the |
| 1956 |
authentication part is nonstandard. And of course they don't |
| 1957 |
document it, so nobody but their Windows clients can speak it.</p> |
| 1958 |
|
| 1959 |
<p>This is a customer lock-in tactic; we recommend boycotting MSN |
| 1960 |
as the only appropriate response.</p> |
| 1961 |
|
| 1962 |
<p>As of 5.0.8, we have support for the client side of NTLM |
| 1963 |
authentication. It's possible this may enable fetchmail to talk to |
| 1964 |
MSN; if so, somebody should report it so this FAQ can be |
| 1965 |
corrected.</p> |
| 1966 |
|
| 1967 |
<h2><a id="I7" name="I7">I7. How can I use fetchmail with SpryNet?</a></h2> |
| 1968 |
|
| 1969 |
<p>The SpryNet POP3 servers mark a message queried with TOP as |
| 1970 |
seen. This means that if your connection drops in mid-message, it |
| 1971 |
may end up invisibly stuck on your mail spool. Use the |
| 1972 |
<code>fetchall</code> flag to ensure that it's recovered on the |
| 1973 |
next cycle.</p> |
| 1974 |
|
| 1975 |
<h2><a id="I8" name="I8">I8. How can I use fetchmail with comcast.net or |
| 1976 |
other Maillennium servers?</a></h2> |
| 1977 |
|
| 1978 |
<p>Stock fetchmail will work with a |
| 1979 |
Maillennium POP3/PROXY server... <em>but</em> this server will |
| 1980 |
truncate "TOP" responses after 64 - 82 kB (we have varying reports), |
| 1981 |
in violation of Internet Standard #53 aka. RFC-1939 (POP3). Don't |
| 1982 |
mistake this for a fetchmail bug. (Reported July 2003.) Comcast |
| 1983 |
documented they haven't understood what this is about in <a |
| 1984 |
href="http://lists.ccil.org/pipermail/fetchmail-friends/2004-April/008523.html">two |
| 1985 |
messages from April 2004.</a></p> |
| 1986 |
|
| 1987 |
<p>Beginning with version 6.3.2, fetchmail will fall back to the RETR |
| 1988 |
command if the greeting string contains "Maillennium POP3/PROXY server", |
| 1989 |
and print a warning message. This means however that fetchmail has no |
| 1990 |
means to prevent the "seen" flag from being set on the server (Note that |
| 1991 |
officially, POP3 has no notion of seen tracking, but it works for some |
| 1992 |
sites.)</p> |
| 1993 |
|
| 1994 |
<p>Workaround for older versions: use the <tt>fetchall</tt> option.</p> |
| 1995 |
|
| 1996 |
<h2><a id="I9" name="I9">I9. How can I use fetchmail with GMail/Google Mail?</a></h2> |
| 1997 |
|
| 1998 |
<p>Google's IMAP servers, as of April 2008, are broken and re-encode |
| 1999 |
MIME-encoded headers improperly and are not feature-complete yet. The |
| 2000 |
model how their servers organize mail also deviates in significant ways |
| 2001 |
from what the POP3 or IMAP protocol 'fathers' conceived. This means all |
| 2002 |
sorts of strange effects, for instance, your sent mail may show up in |
| 2003 |
the mail that fetchmail fetches. It's best to avoid fetching mail from |
| 2004 |
Google until they are using standards-compliant software.</p> |
| 2005 |
|
| 2006 |
<p>If you still need to use Google's mail service, these links may help (valid as of 2011-04-13):</p> |
| 2007 |
<ul> |
| 2008 |
<li><a href="http://mail.google.com/support/bin/topic.py?hl=en&topic=12805">Other ways to access Gmail > POP</a></li> |
| 2009 |
<li><a href="http://mail.google.com/support/bin/topic.py?hl=en&topic=12806">Other ways to access Gmail > IMAP</a></li> |
| 2010 |
<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> |
| 2011 |
<li><a href="http://mail.google.com/support/bin/answer.py?hl=en&answer=13291">Some [POP3] mail was not downloaded</a></li> |
| 2012 |
<li><a href="http://mail.google.com/support/bin/answer.py?hl=en&answer=78774">I'm having problems downloading [IMAP] mail</a></li> |
| 2013 |
</ul> |
| 2014 |
|
| 2015 |
<hr/> |
| 2016 |
<h1>How to set up well-known security and authentication |
| 2017 |
methods</h1> |
| 2018 |
<h2><a id="K1" name="K1">K1. How can I use fetchmail with SOCKS?</a></h2> |
| 2019 |
|
| 2020 |
<p>Giuseppe Guerini added a <kbd>--with-socks</kbd> compile-time option |
| 2021 |
that supports linking with socks library. If you specify the value of |
| 2022 |
this option as "yes", the configure script will try to find the Rconnect |
| 2023 |
library and set the makefile up to link it. You can also specify a |
| 2024 |
directory containing the Rconnect library.</p> |
| 2025 |
|
| 2026 |
<p>Alan Schmitt has added a similar <kbd>--with-socks5</kbd> option that may |
| 2027 |
work better if you have a recent version of the SOCKS library.</p> |
| 2028 |
|
| 2029 |
<p>In either case, fetchmail has no direct configuration hooks, but you |
| 2030 |
can specify which socks configuration file the library should read by |
| 2031 |
means of the <tt>SOCKS_CONF</tt> environment variable. In order to |
| 2032 |
bypass the SOCKS proxy altogether, you could run (adding your usual |
| 2033 |
options to the end of this line):</p> |
| 2034 |
|
| 2035 |
<pre>env SOCKS_CONF=/dev/null fetchmail</pre> |
| 2036 |
|
| 2037 |
<h2><a id="K2" name="K2">K2. How can I use fetchmail with IPv6 and |
| 2038 |
IPsec?</a></h2> |
| 2039 |
|
| 2040 |
<p>To use fetchmail with IPv6, you need a system that supports |
| 2041 |
IPv6, the "Basic Socket Interface Extensions for IPv6" (RFC 2133). |
| 2042 |
</p> |
| 2043 |
|
| 2044 |
<p>The NRL IPv6+IPsec software distribution can be obtained from: |
| 2045 |
<a |
| 2046 |
href="http://web.mit.edu/network/isakmp/">http://web.mit.edu/network/isakmp/</a></p> |
| 2047 |
|
| 2048 |
<p>More information on using IPv6 with Linux can be obtained |
| 2049 |
from:</p> |
| 2050 |
|
| 2051 |
<ul> |
| 2052 |
<li><a |
| 2053 |
href="http://www.bieringer.de/linux/IPv6/IPv6-HOWTO/IPv6-HOWTO.html"> |
| 2054 |
http://www.bieringer.de/linux/IPv6/IPv6-HOWTO/IPv6-HOWTO.html</a></li> |
| 2055 |
</ul> |
| 2056 |
|
| 2057 |
<h2><a id="K3" name="K3">K3. How can I get fetchmail to work with |
| 2058 |
ssh?</a></h2> |
| 2059 |
|
| 2060 |
<p>Use the <tt>plugin</tt> option. This is dead simple with |
| 2061 |
IMAP:</p> |
| 2062 |
|
| 2063 |
<pre> |
| 2064 |
plugin "ssh %h /usr/sbin/imapd" |
| 2065 |
</pre> |
| 2066 |
|
| 2067 |
<p>You may have to use a different absolute pathname, whatever the |
| 2068 |
location of imapd on your mailserver is. This option tells |
| 2069 |
fetchmail that instead of opening a connection on the server's port |
| 2070 |
143 and doing standard IMAP authentication, fetchmail should ssh to |
| 2071 |
the server and run imapd, using the more secure ssh authentication |
| 2072 |
(as well as getting ssh's end-to-end encryption). Most IMAP daemons |
| 2073 |
will detect that they've been called from the command line and |
| 2074 |
assume the connection is preauthenticated.</p> |
| 2075 |
|
| 2076 |
<p>POP3 daemons aren't quite as smart. They won't know they are |
| 2077 |
preauthenticated in this mode, so you'll actually have to ship your |
| 2078 |
password. It will be under ssh encryption, though, so that |
| 2079 |
shouldn't be a problem.</p> |
| 2080 |
|
| 2081 |
<h2><a id="K4" name="K4">K4. What do I have to do to use the |
| 2082 |
IMAP-GSS protocol?</a></h2> |
| 2083 |
|
| 2084 |
<p>Fetchmail can use RFC1731 GSSAPI authorization to safely |
| 2085 |
identify you to your IMAP server, as long as you can share |
| 2086 |
Kerberos V credentials with your mail host and you have a GSSAPI-capable |
| 2087 |
IMAP server.</p> |
| 2088 |
|
| 2089 |
<p>fetchmail does not compile in support for GSS by |
| 2090 |
default, since it requires libraries from a Kerberos V |
| 2091 |
distribution, such as <a href="http://web.mit.edu/Kerberos/">MIT |
| 2092 |
Kerberos</a> or <a href="http://www.h5l.org/">Heimdal |
| 2093 |
Kerberos</a>.</p> |
| 2094 |
|
| 2095 |
<p>If you have these, compiling in GSS support is simple: add a |
| 2096 |
<code>--with-gssapi=[/path/to/krb5/root]</code> option to |
| 2097 |
configure. For instance, I have all of my Kerberos V libraries |
| 2098 |
installed under /usr/krb5 so I run <code>configure |
| 2099 |
--with-gssapi=/usr/krb5</code></p> |
| 2100 |
|
| 2101 |
<p>Setting up Kerberos V authentication is beyond the scope of this |
| 2102 |
FAQ (you may find Jim Rome's paper <a |
| 2103 |
href="http://www.ornl.gov/~jar/HowToKerb.html">How to Kerberize |
| 2104 |
your site</a> helpful), but you'll at least need to add a |
| 2105 |
credential for imap/[mailhost] to the keytab of the mail server |
| 2106 |
(IMAP doesn't just use the host key). Then you'll need to have your |
| 2107 |
credentials ready on your machine (cf. kinit).</p> |
| 2108 |
|
| 2109 |
<p>After that things are very simple. Set your protocol to imap-gss |
| 2110 |
in your .fetchmailrc, and omit the password, since imap-gss doesn't |
| 2111 |
need one. You can specify a username if you want, but this is only |
| 2112 |
useful if your mailbox belongs to a username different from your |
| 2113 |
Kerberos principal.</p> |
| 2114 |
|
| 2115 |
<p>Now you don't have to worry about your password appearing in |
| 2116 |
cleartext in your .fetchmailrc, or across the network.</p> |
| 2117 |
|
| 2118 |
<h2><a id="K5" name="K5">K5. How can I use fetchmail with |
| 2119 |
SSL?</a></h2> |
| 2120 |
|
| 2121 |
<p>You'll need to have the <a |
| 2122 |
href="http://www.openssl.org/">OpenSSL</a> libraries installed, and they |
| 2123 |
should at least be version 0.9.7. |
| 2124 |
Configure with --with-ssl. If you have the OpenSSL libraries |
| 2125 |
installed in commonly-used default locations, this will |
| 2126 |
suffice. If you have them installed in a non-default location, |
| 2127 |
you'll need to specify the OpenSSL installation directory as an argument |
| 2128 |
to --with-ssl after an equal sign.</p> |
| 2129 |
|
| 2130 |
<p>Fetchmail binaries built this way support <code>ssl</code>, |
| 2131 |
<code>sslkey</code>, and <code>sslcert</code> options that control |
| 2132 |
SSL encryption, and will automatically use <code>tls</code> if the |
| 2133 |
server offers it. You will need to have an SSL-enabled mailserver to |
| 2134 |
use these options. See the manual page for details and some words |
| 2135 |
of care on the limited security provided.</p> |
| 2136 |
|
| 2137 |
<p>If your open OpenSSL session dies with a message that complains |
| 2138 |
"PRNG not seeded", update or improve your operating system. This |
| 2139 |
means that the OpenSSL library on your machine has been unable to |
| 2140 |
locate a source of random bits from which to seed its random-number |
| 2141 |
generator; normally these come from the <tt>/dev/urandom</tt>, and |
| 2142 |
this message probably means your OS doesn't have that device.</p> |
| 2143 |
|
| 2144 |
<p>An interactive program could seed the random number generator |
| 2145 |
from keystroke timings or some other form of user input. Because |
| 2146 |
fetchmail is primarily designed to run forever as a background |
| 2147 |
daemon, that option is not available in this case.</p> |
| 2148 |
|
| 2149 |
<p>If you don't have the libraries installed, but do have the |
| 2150 |
OpenSSL utility toolkit, something like this may work (but will not |
| 2151 |
authenticate the server):</p> |
| 2152 |
|
| 2153 |
<pre> |
| 2154 |
poll MYSERVER port 993 plugin "openssl s_client -connect %h:%p" |
| 2155 |
protocol imap username MYUSERNAME password MYPASSWORD |
| 2156 |
</pre> |
| 2157 |
|
| 2158 |
<p>You should note that SSL is only secure against a "man-in-the-middle" |
| 2159 |
attack if the client is able to verify that the peer's public key is the |
| 2160 |
correct one, and has not been substituted by an attacker. fetchmail can do |
| 2161 |
this in one of two ways: by verifying the SSL certificate, or by checking |
| 2162 |
the fingerprint of the peer's public key.</p> |
| 2163 |
|
| 2164 |
<p>There are three parts to SSL certificate verification: checking that the |
| 2165 |
domain name in the certificate matches the hostname you asked to connect to; |
| 2166 |
checking that the certificate expiry date has not passed; and checking that |
| 2167 |
the certificate has been signed by a known Certificate Authority (CA). This |
| 2168 |
last step takes some preparation, as you need to install the root |
| 2169 |
certificates of all the CA's which you might come across.</p> |
| 2170 |
|
| 2171 |
<p>The easiest way to do this is using the root CA keys supplied in the |
| 2172 |
OpenSSL distribution, which means you need to download and unpack the |
| 2173 |
source tarball from www.openssl.org. Once you have done that:</p> |
| 2174 |
|
| 2175 |
<ol> |
| 2176 |
<li><code>mkdir /etc/ssl/certs</code></li> |
| 2177 |
<li>in the openssl-x.x.x/certs directory: <code>cp *.pem /etc/ssl/certs/</code></li> |
| 2178 |
<li>in the openssl-x.x.x/tools directory: edit c_rehash and set |
| 2179 |
<code>$dir="/etc/ssl"</code></li> |
| 2180 |
<li>run "perl c_rehash". This generates a number of symlinks within the |
| 2181 |
/etc/ssl/certs/ directory</li> |
| 2182 |
</ol> |
| 2183 |
|
| 2184 |
<p>Now in .fetchmailrc, set option sslcertpath to point to this |
| 2185 |
directory:</p> |
| 2186 |
|
| 2187 |
<pre> |
| 2188 |
poll pop3.example.com proto pop3 uidl no dns |
| 2189 |
user foobar@example.com password xyzzy is foobar ssl sslcertpath /etc/ssl/certs |
| 2190 |
</pre> |
| 2191 |
|
| 2192 |
<p>If the server certificate has not been signed by a known CA (e.g. it is a |
| 2193 |
self-signed certificate), then this certificate validation will always |
| 2194 |
fail.</p> |
| 2195 |
|
| 2196 |
<p>Certificate verification is always attempted. If it fails, by default a |
| 2197 |
warning is printed but the connection carries on (which means you are not |
| 2198 |
protected against attack). If your server's certificate has been properly |
| 2199 |
set up and verifies correctly, then add the "sslcertck" option to enforce |
| 2200 |
validation. If your server doesn't have a valid certificate though (e.g. it |
| 2201 |
has a self-signed certificate) then it will never verify, and the only way |
| 2202 |
you can protect yourself is by checking the fingerprint.</p> |
| 2203 |
|
| 2204 |
<p>To check the peer fingerprint: first use fetchmail -v once to connect to |
| 2205 |
the host, at a time when you are pretty sure that there is no attack in |
| 2206 |
progress (e.g. you are not traversing any untrusted network to reach the |
| 2207 |
server). Make a note of the fingerprint shown. Now embed this in your |
| 2208 |
.fetchmailrc using the sslfingerprint option: e.g.</p> |
| 2209 |
|
| 2210 |
<pre> |
| 2211 |
poll pop3.example.com proto pop3 uidl no dns |
| 2212 |
user foobar@example.com password xyzzy is foobar |
| 2213 |
ssl sslfingerprint "67:3E:02:94:D3:5B:C3:16:86:71:37:01:B1:3B:BC:E2" |
| 2214 |
</pre> |
| 2215 |
|
| 2216 |
<p>When you next connect, the public key presented by the server will be |
| 2217 |
verified against the fingerprint given. If it's different, it may mean that |
| 2218 |
a man-in-the-middle attack is in progress - or it might just mean that the |
| 2219 |
server changed its key. It's up to you to determine which has happened.</p> |
| 2220 |
|
| 2221 |
<h2><a id="K6" name="K6">K6. How can I tell fetchmail not to use TLS |
| 2222 |
if the server advertises it? Why does fetchmail use SSL even |
| 2223 |
though not configured?</a></h2> |
| 2224 |
|
| 2225 |
<p>Some servers advertise STLS (POP3) or STARTTLS (IMAP), and fetchmail |
| 2226 |
will automatically attempt TLS negotiation if SSL was enabled at compile |
| 2227 |
time. This can however cause problems if the upstream didn't configure |
| 2228 |
his certificates properly.</p> |
| 2229 |
|
| 2230 |
<p>In order to prevent fetchmail from trying TLS (STLS, STARTTLS) |
| 2231 |
negotiation, add this option:</p> |
| 2232 |
|
| 2233 |
<pre>sslproto ssl23</pre> |
| 2234 |
|
| 2235 |
<p>This restricts fetchmail's SSL/TLS protocol choice from the default |
| 2236 |
"SSLv2, SSLv3, TLSv1" to the two SSL variants, disabling TLSv1. Note |
| 2237 |
however that this causes the connection to be unencrypted unless an |
| 2238 |
encrypting "plugin" is used or SSL is requested explicitly.</p> |
| 2239 |
|
| 2240 |
<hr/> |
| 2241 |
<h1>Runtime fatal errors</h1> |
| 2242 |
<h2><a id="R1" name="R1">R1. Fetchmail isn't working, and -v shows |
| 2243 |
'SMTP connect failed' messages.</a></h2> |
| 2244 |
|
| 2245 |
<p>Fetchmail itself is probably working, but your SMTP port 25 |
| 2246 |
listener is down or inaccessible.</p> |
| 2247 |
|
| 2248 |
<p>The first thing to check is if you can telnet to port 25 on your |
| 2249 |
smtp host (which is normally 'localhost' unless you've specified an |
| 2250 |
smtp option in your .fetchmailrc or on the command line) and get a |
| 2251 |
greeting line from the listener. If the SMTP host is inaccessible |
| 2252 |
or the listener is down, fix that first.</p> |
| 2253 |
|
| 2254 |
<p>In Red Hat Linux 6.x, SMTP is disabled by default. To fix this, |
| 2255 |
set "DAEMON=yes" in your /etc/sysconfig/sendmail file, then restart |
| 2256 |
sendmail by running "/sbin/service sendmail restart".</p> |
| 2257 |
|
| 2258 |
<p>If the listener seems to be up when you test with telnet, the |
| 2259 |
most benign and typical problem is that the listener had a |
| 2260 |
momentary seizure due to resource exhaustion while fetchmail was |
| 2261 |
polling it -- process table full or some other problem that stopped |
| 2262 |
the listener process from forking. If your SMTP host is not |
| 2263 |
'localhost' or something else in /etc/hosts, the fetchmail glitch |
| 2264 |
could also have been caused by transient nameserver failure.</p> |
| 2265 |
|
| 2266 |
<p>Try running fetchmail -v again; if it succeeds, you had one of |
| 2267 |
these kinds of transient glitch. You can ignore these hiccups, |
| 2268 |
because a future fetchmail run will get the mail through.</p> |
| 2269 |
|
| 2270 |
<p>If the listener tests up, but you have chronic failures trying |
| 2271 |
to connect to it anyway, your problem is more serious. One way to |
| 2272 |
work around chronic SMTP connect problems is to use --mda. But this |
| 2273 |
only attacks the symptom; you may have a DNS or TCP routing |
| 2274 |
problem. You should really try to figure out what's going on |
| 2275 |
underneath before it bites you some other way.</p> |
| 2276 |
|
| 2277 |
<p>We have one report (from toby@eskimo.com) that you can sometimes |
| 2278 |
solve such problems by doing an <code>smtp</code> declaration with |
| 2279 |
an IP address that your routing table maps to something other than |
| 2280 |
the loopback device (he used ppp0).</p> |
| 2281 |
|
| 2282 |
<p>We also have a report that this error can be caused by having an |
| 2283 |
/etc/hosts file that associates your client host name with more |
| 2284 |
than one IP address.</p> |
| 2285 |
|
| 2286 |
<p>It's also possible that your DNS configuration isn't looking at |
| 2287 |
<code>/etc/hosts</code> at all. If you're using libc5, look at |
| 2288 |
<code>/etc/resolv.conf</code>; it should say something like:</p> |
| 2289 |
|
| 2290 |
<pre> |
| 2291 |
order hosts,bind |
| 2292 |
</pre> |
| 2293 |
|
| 2294 |
<p>so your <code>/etc/hosts</code> file is checked first. If you're |
| 2295 |
running GNU libc6, check your <code>/etc/nsswitch.conf</code> file. |
| 2296 |
Make sure it says something like</p> |
| 2297 |
|
| 2298 |
<pre> |
| 2299 |
hosts: files dns |
| 2300 |
</pre> |
| 2301 |
|
| 2302 |
<p>again, in order to make sure <code>/etc/hosts</code> is seen |
| 2303 |
first.</p> |
| 2304 |
|
| 2305 |
<p>If you have a hostname set for your machine, and this hostname |
| 2306 |
does not appear in /etc/hosts, you will be able to telnet to port |
| 2307 |
25 and even send a mail with rcpt to: user@host-not-in-/etc/hosts, |
| 2308 |
but fetchmail can't seem to get in touch with sendmail, no matter |
| 2309 |
what you set smtpaddress to.</p> |
| 2310 |
|
| 2311 |
<p>We had another report from a Linux user of fetchmail 2.1 who |
| 2312 |
solved his SMTP connection problem by removing the reference to |
| 2313 |
-lresolv from his link line and relinking. Apparently in some older |
| 2314 |
Linux distributions the libc bind library version works better.</p> |
| 2315 |
|
| 2316 |
<p>As of 2.2, the configure script has been hacked so the bind |
| 2317 |
library is linked only if it is actually needed. So under Linux it |
| 2318 |
won't be, and this particular cause should go away.</p> |
| 2319 |
|
| 2320 |
<h2><a id="R2" name="R2">R2. When I try to configure an MDA, |
| 2321 |
fetchmail doesn't work.</a></h2> |
| 2322 |
|
| 2323 |
<p>(I hear this one from people who have run into the blank-line |
| 2324 |
problem in <a href="#X1">X1</a>.)</p> |
| 2325 |
|
| 2326 |
<p>Try sending yourself test mail and retrieving it using the |
| 2327 |
command-line options '<code>-k -m cat</code>'. This will dump |
| 2328 |
exactly what fetchmail retrieves to standard output (plus the |
| 2329 |
Received line fetchmail itself adds to the headers).</p> |
| 2330 |
|
| 2331 |
<p>If the dump doesn't match what shows up in your mailbox when you |
| 2332 |
configure an MDA, your MDA is mangling the message. If it doesn't |
| 2333 |
match what you sent, then fetchmail or something on the server is |
| 2334 |
broken.</p> |
| 2335 |
|
| 2336 |
<h2><a id="R3" name="R3">R3. Fetchmail dumps core when given an |
| 2337 |
invalid rc file.</a></h2> |
| 2338 |
|
| 2339 |
<p>Note that this bug should no longer occur when using prepackaged |
| 2340 |
fetchmail versions or installing unmodified original tarballs, since |
| 2341 |
these ship with a proper parser .c file.</p> |
| 2342 |
|
| 2343 |
<p>This is usually reported from AIX or Ultrix, but has even been |
| 2344 |
known to happen on Linuxes without a recent version of |
| 2345 |
<code>flex</code> installed. The problem appears to be a result of |
| 2346 |
building with an archaic version of lex.</p> |
| 2347 |
|
| 2348 |
<p>Workaround: fix the syntax of your .fetchmailrc file.</p> |
| 2349 |
|
| 2350 |
<p>Fix: build and install the latest version of <a |
| 2351 |
href="http://flex.sourceforge.net/">flex</a>.</p> |
| 2352 |
|
| 2353 |
<h2><a id="R4" name="R4"><strike>R4. Fetchmail dumps core in -V mode, but |
| 2354 |
operates normally otherwise.</strike></a></h2> |
| 2355 |
|
| 2356 |
<p><em>The information that used to be here referred to bugs in Linux libc5 |
| 2357 |
systems, which are deemed obsolete by now.</em></p> |
| 2358 |
|
| 2359 |
<h2><a id="R5" name="R5">R5. Running fetchmail in daemon mode |
| 2360 |
doesn't work.</a><br/> |
| 2361 |
</h2> |
| 2362 |
|
| 2363 |
<p>We have one report from a SunOS 4.1.4 user that trying to run |
| 2364 |
fetchmail in detached daemon mode doesn't work, but that using the |
| 2365 |
same options with -N (nodetach) is OK. We have another report of |
| 2366 |
similar behavior from one Linux user, but many other Linux users |
| 2367 |
report no problem.</p> |
| 2368 |
|
| 2369 |
<p>If this happens, you have a specific portability problem with |
| 2370 |
the code in daemon.c that detaches and backgrounds the daemon |
| 2371 |
fetchmail. The isolated Linux case has been chased down to a |
| 2372 |
failure in dup(2) that may reflect a glibc bug.</p> |
| 2373 |
|
| 2374 |
<p>As a workaround, you can start fetchmail with -N and an |
| 2375 |
ampersand to background it. A Sun user recommends this:</p> |
| 2376 |
|
| 2377 |
<pre> |
| 2378 |
(fetchmail --nodetach <other params> &) |
| 2379 |
</pre> |
| 2380 |
|
| 2381 |
<p>The extra pair of parens is significant --- it makes sure that |
| 2382 |
the process detaches from the initial shell (one more shell is |
| 2383 |
started and dies immediately, detaching fetchmail and making it |
| 2384 |
child of PID 1). This is important when you start fetchmail |
| 2385 |
interactively and than quit interactive shell. The line above makes |
| 2386 |
sure fetchmail lives after that!</p> |
| 2387 |
|
| 2388 |
<h2><a id="R6" name="R6">R6. Fetchmail randomly dies with socket |
| 2389 |
errors.</a></h2> |
| 2390 |
|
| 2391 |
<p>Check the MTU value in your PPP interface reported by |
| 2392 |
<code>/sbin/ifconfig</code>. If it's over 600, change it in your |
| 2393 |
PPP options file. (<code>/etc/ppp/options</code> on my box). Here |
| 2394 |
are option values that work:</p> |
| 2395 |
|
| 2396 |
<pre> |
| 2397 |
mtu 552 |
| 2398 |
mru 552 |
| 2399 |
</pre> |
| 2400 |
|
| 2401 |
<p>Another circumstance that can trigger this is if you are polling |
| 2402 |
a virtual-mail-server name that is round-robin connected to |
| 2403 |
different actual servers, so you get different IP addresses on |
| 2404 |
different poll cycles. To work around this, change the poll name |
| 2405 |
either to the real name of one of the servers in the ring or to a |
| 2406 |
corresponding IP address.</p> |
| 2407 |
|
| 2408 |
<h2><a id="R7" name="R7">R7. Fetchmail running as root stopped |
| 2409 |
working after an OS upgrade</a></h2> |
| 2410 |
|
| 2411 |
<p>In RH 6.0, the HOME value in the boot-time root environment |
| 2412 |
changed from /root to / as the result of a change in init. Move |
| 2413 |
your .fetchmailrc or use a -f option to explicitly point at the |
| 2414 |
file. (Oddly, a similar problem has been reported from Debian |
| 2415 |
systems.)</p> |
| 2416 |
|
| 2417 |
<h2><a id="R8" name="R8">R8. Fetchmail is timing out after fetching |
| 2418 |
certain messages but before deleting them</a></h2> |
| 2419 |
|
| 2420 |
<p>There's a TCP/IP stalling problem under Redhat 6.0 (and possibly |
| 2421 |
other recent Linuxes) that can cause this symptom. Brian Boutel |
| 2422 |
writes:</p> |
| 2423 |
|
| 2424 |
<blockquote> |
| 2425 |
<p>TCP timestamps are turned on on my Linux boxes (I assume it's |
| 2426 |
now the default). This uses 12 extra bytes per segment. When the |
| 2427 |
tcp connection starts, the other end agrees a MSS of 1460, and then |
| 2428 |
fragments 1460 byte chunks into 1448 and 12, because is is not |
| 2429 |
allowing for the timestamp.</p> |
| 2430 |
|
| 2431 |
<p>Then, for reasons I can't explain, it waits a long time |
| 2432 |
(typically 2 minutes) after the ack is sent before sending the next |
| 2433 |
(fragmented) packet. Turning off tcp timestamps avoids the |
| 2434 |
fragmentation and restores normal behaviour. To do this, |
| 2435 |
[execute]</p> |
| 2436 |
|
| 2437 |
<p>echo 0 > /proc/sys/net/ipv4/tcp_timestamps</p> |
| 2438 |
|
| 2439 |
<p>I'm still unclear about the details of why this is happening. At |
| 2440 |
least [now] I am now getting good performance and no queue |
| 2441 |
blocking.</p> |
| 2442 |
</blockquote> |
| 2443 |
|
| 2444 |
<h2><a id="R9" name="R9">R9. Fetchmail is timing out during message |
| 2445 |
fetches</a></h2> |
| 2446 |
|
| 2447 |
<p>This is probably a general networking issue. Sending a "RETR" |
| 2448 |
command will cause the server to start sending large amounts of |
| 2449 |
data, which means large packets. If your networking layer has a |
| 2450 |
packet-fragmentation problem or improper firewall settings break Path |
| 2451 |
MTU discovery (when for instance all ICMP traffic is blocked), that's |
| 2452 |
where you'll see it.</p> |
| 2453 |
|
| 2454 |
<h2><a id="R10" name="R10"><strike>R10. Fetchmail is dying with |
| 2455 |
SIGPIPE.</strike></a></h2> |
| 2456 |
|
| 2457 |
<p><em>Fetchmail 6.3.5 and newer block SIGPIPE, and many older versions have |
| 2458 |
already handled this signal, so you shouldn't be seeing SIGPIPE |
| 2459 |
at all.</em></p> |
| 2460 |
|
| 2461 |
<h2><a id="R11" name="R11">R11. My server is hanging or emitting |
| 2462 |
errors on CAPA.</a></h2> |
| 2463 |
|
| 2464 |
<p>Your POP3 server is broken. You can work around this with the |
| 2465 |
declaration <tt>auth password</tt> in your .fetchmailrc.</p> |
| 2466 |
|
| 2467 |
<h2><a id="R12" name="R12">R12. Fetchmail isn't working and reports |
| 2468 |
getaddrinfo errors.</a></h2> |
| 2469 |
<ol><li>Make sure you haven't mistyped the host name or address, and that |
| 2470 |
your DNS is working. If you cannot fix DNS, give the numeric host |
| 2471 |
literal, for instance, 192.168.0.1</li> |
| 2472 |
<li>Make sure your <code>/etc/services</code> file (or other |
| 2473 |
services database) contains the necessary service entries. If you |
| 2474 |
cannot fix the services database, use the --service option and give the |
| 2475 |
numeric port address. Common port addresses are:<table |
| 2476 |
summary="Common port addresses for IMAP, POP3 and their SSL |
| 2477 |
complements."> |
| 2478 |
<tr><th>service</th><th>port</th></tr> |
| 2479 |
<tr><td>IMAP</td><td>143</td></tr> |
| 2480 |
<tr><td>IMAP+SSL</td><td>993</td></tr> |
| 2481 |
<tr><td>POP3</td><td>110</td></tr> |
| 2482 |
<tr><td>POP3+SSL</td><td>995</td></tr> |
| 2483 |
</table></li></ol> |
| 2484 |
|
| 2485 |
<h2><a id="R13" name="R13">R13. What does "Interrupted system call" |
| 2486 |
mean?</a></h2> |
| 2487 |
|
| 2488 |
<p>Non-fatal signals (such as timers set by fetchmail itself) can |
| 2489 |
interrupt long-running functions and will then be reported as |
| 2490 |
"Interrupted system call". These can sometimes be timeouts.</p> |
| 2491 |
|
| 2492 |
<h2><a id="R14" name="R14">R14. Since upgrading fetchmail/OpenSSL, I can no longer connect!</a></h2> |
| 2493 |
|
| 2494 |
<p>If the upgrade you did encompassed an upgrade to OpenSSL 1.0.0 or newer, you |
| 2495 |
may need to run <code>c_rehash</code> on your certificate directories, |
| 2496 |
particularly if you are using local certs directories (f. i. through fetchmail's <code>--sslcertpath</code> option).</p> |
| 2497 |
|
| 2498 |
<p>Reason: OpenSSL 1.0.0, relative to earlier versions, uses a different hash |
| 2499 |
for the symbolic links (symlinks) in its <code>certs/</code> directory, so you |
| 2500 |
need to recreate the symlinks by running <kbd>c_rehash |
| 2501 |
/etc/ssl/certs</kbd> (adjust this to where your installation keeps its |
| 2502 |
certificates), and you cannot easily share this certs directory with |
| 2503 |
applications linked against older OpenSSL versions.</p> |
| 2504 |
|
| 2505 |
<p>Note: OpenSSL's <code>c_rehash</code> script is broken in several versions, |
| 2506 |
which can cause malfunction if several OpenSSL tools versions are installed in |
| 2507 |
parallel in separate directories. In such cases, you may need a workaround to |
| 2508 |
get things going. Assuming your OpenSSL 1.0.0 is installed in |
| 2509 |
<code>/opt/openssl1.0.0</code> and your certificates are in |
| 2510 |
<code>/home/hans/certs</code>, you'd do this (the corresponding fetchmail |
| 2511 |
option is <kbd>--sslcertpath /home/hans/certs</kbd> on the commandline and |
| 2512 |
<kbd>sslcertpath /home/hans/cert</kbd> in the rcfile):</p> |
| 2513 |
|
| 2514 |
<pre> |
| 2515 |
env PATH=/opt/openssl1.0.0/bin /opt/openssl1.0.0/bin/c_rehash /home/hans/certs |
| 2516 |
</pre> |
| 2517 |
|
| 2518 |
<h2><a id="R15" name="R15">R15. Help, I'm getting Authorization failure!</a></h2> |
| 2519 |
|
| 2520 |
<p>First, try upgrading to fetchmail 6.3.18 or newer. Release 6.3.18 has |
| 2521 |
received a considerable number of bug fixes for the authentication |
| 2522 |
feature (AUTH, AUTHENTICATE, SASL). Most notably, fetchmail aborts SASL |
| 2523 |
authentication attempts properly with an asterisk if it detects that it |
| 2524 |
cannot make progress with a particular authentication scheme. This fixes |
| 2525 |
issues where GSSAPI-enabled fetchmail cannot authenticate against |
| 2526 |
Microsoft Exchange 2007 and 2010. <strong>Note</strong> that this is a |
| 2527 |
bug in old fetchmail versions!</p> |
| 2528 |
|
| 2529 |
<p>Fetchmail by default attempts to authenticate using various schemes. |
| 2530 |
Fetchmail tries these schemes in order of descending security, meaning |
| 2531 |
the most secure schemes are tried first.</p> |
| 2532 |
|
| 2533 |
<p>However, sometimes the server offers a secure authentication scheme |
| 2534 |
that is not properly configured, or an authentication scheme such as |
| 2535 |
GSSAPI does requires credentials to be acquired externally. In some |
| 2536 |
situations, fetchmail cannot know the scheme will fail without trying |
| 2537 |
it. In most cases, fetchmail should proceed to the next authentication |
| 2538 |
scheme automatically, but this sometimes does not work.</p> |
| 2539 |
|
| 2540 |
<p><strong>Solution:</strong> Configure the right authentication scheme |
| 2541 |
explicitly, for instance, with <kbd>--auth cram-md5</kbd> or <kbd>--auth |
| 2542 |
password</kbd> on the command line or <code>auth "cram-md5"</code> or |
| 2543 |
<code>auth "password"</code> in the rcfile. Details can be found |
| 2544 |
in the manual page.<br /> |
| 2545 |
<strong>Note</strong> that auth password should only be used |
| 2546 |
across secure links (see the sslcertck and ssl/sslproto options). |
| 2547 |
</p> |
| 2548 |
|
| 2549 |
<hr/> |
| 2550 |
<h1>Hangs and lockups</h1> |
| 2551 |
<h2><a id="H1" name="H1">H1. Fetchmail hangs when used with |
| 2552 |
pppd.</a></h2> |
| 2553 |
|
| 2554 |
<p>Your problem may be with pppd's 'demand' option. We have a |
| 2555 |
report that fetchmail doesn't play well with it, but works with |
| 2556 |
pppd if 'demand' is turned off. We have no idea why this is.</p> |
| 2557 |
|
| 2558 |
<h2><a id="H2" name="H2">H2. Fetchmail hangs during the MAIL FROM |
| 2559 |
exchange.</a></h2> |
| 2560 |
|
| 2561 |
<p>The symptom: 'fetchmail -v' retrieves mail fine, but appears to |
| 2562 |
hang after sending the MAIL FROM command</p> |
| 2563 |
|
| 2564 |
<pre> |
| 2565 |
SMTP> MAIL FROM: <someone@somewhere> |
| 2566 |
</pre> |
| 2567 |
|
| 2568 |
<p>The hang is actually occuring when sendmail looks up a sender's |
| 2569 |
address in DNS. The problem isn't in fetchmail but in the |
| 2570 |
configuration of sendmail. You must enable the 'nodns' and |
| 2571 |
'nocanonify' features of sendmail.</p> |
| 2572 |
|
| 2573 |
<p>Here was my fix for RedHat 7.2:</p> |
| 2574 |
|
| 2575 |
<ol> |
| 2576 |
<li># cd /etc/mail</li> |
| 2577 |
|
| 2578 |
<li># cp sendmail.mc sendmail-mine.mc</li> |
| 2579 |
|
| 2580 |
<li>Edit sendmail-mine.mc and add lines: |
| 2581 |
|
| 2582 |
<pre> |
| 2583 |
FEATURE(nodns) |
| 2584 |
FEATURE(nocanonify) |
| 2585 |
</pre> |
| 2586 |
</li> |
| 2587 |
|
| 2588 |
<li>Build a new sendmail.cf |
| 2589 |
|
| 2590 |
<pre> |
| 2591 |
# m4 sendmail-mine.cf > /etc/sendmail.cf |
| 2592 |
</pre> |
| 2593 |
</li> |
| 2594 |
|
| 2595 |
<li>Restart sendmail.</li> |
| 2596 |
</ol> |
| 2597 |
|
| 2598 |
<p>For more details consult the file |
| 2599 |
/usr/share/sendmail-cf/README.</p> |
| 2600 |
|
| 2601 |
<h2><a id="H3" name="H3">H3. Fetchmail hangs while fetching |
| 2602 |
mail.</a></h2> |
| 2603 |
|
| 2604 |
<p>Symptom: 'fetchmail -v' retrieves the first few messages, |
| 2605 |
but hangs returning:</p> |
| 2606 |
|
| 2607 |
<pre> |
| 2608 |
fetchmail: SMTP< 550 5.0.0 Access denied |
| 2609 |
fetchmail: SMTP> RSET |
| 2610 |
fetchmail: SMTP< 250 2.0.0 Reset state |
| 2611 |
.......fetchmail: flushed |
| 2612 |
fetchmail: POP3> DELE 1 |
| 2613 |
fetchmail: POP3< +OK marked deleted |
| 2614 |
</pre> |
| 2615 |
|
| 2616 |
<p>Check and see if you're allowing sendmail connections through |
| 2617 |
TCP wrappers.</p> |
| 2618 |
|
| 2619 |
<p>Adding 'sendmail : 127.0.0.1' to /etc/hosts.allow could solve |
| 2620 |
this problem.</p> |
| 2621 |
|
| 2622 |
<hr/> |
| 2623 |
<h1>Disappearing mail</h1> |
| 2624 |
<h2><a id="D1" name="D1">D1. I think I've set up fetchmail |
| 2625 |
correctly, but I'm not getting any mail.</a></h2> |
| 2626 |
|
| 2627 |
<p>Maybe you have a .forward or alias set up that you've forgotten |
| 2628 |
about. You should probably remove it.</p> |
| 2629 |
|
| 2630 |
<p>Or maybe you're trying to run fetchmail in multidrop mode as |
| 2631 |
root without a .fetchmailrc file. This doesn't do what you think it |
| 2632 |
should; see question <a href="#C1">C1</a>.</p> |
| 2633 |
|
| 2634 |
<p>Or you may not be connecting to the SMTP listener. Run fetchmail |
| 2635 |
-v and see <a href="#R1">R1</a>.</p> |
| 2636 |
|
| 2637 |
<p>Or you may have your local user set incorrectly. In the |
| 2638 |
following line</p> |
| 2639 |
|
| 2640 |
<pre> |
| 2641 |
user 'remoteuser' there with password '*' is 'localuser' here |
| 2642 |
</pre> |
| 2643 |
|
| 2644 |
<p>make sure that 'localuser' does exist and can receive mail.</p> |
| 2645 |
|
| 2646 |
<h2><a id="D2" name="D2">D2. All my mail seems to disappear after a |
| 2647 |
dropped connection.</a></h2> |
| 2648 |
|
| 2649 |
<p>One POP3 daemon used in the Berkeley Unix world that reports |
| 2650 |
itself as POP3 version 1.004 actually throws the queue away. 1.005 |
| 2651 |
fixed that. If you're running this one, upgrade immediately. (It |
| 2652 |
also truncates long lines at column 1024.)</p> |
| 2653 |
|
| 2654 |
<p>Many POP servers, if an interruption occurs, will restore the |
| 2655 |
whole mail queue after about 10 minutes. Better ones will restore it |
| 2656 |
right away. If you have an interruption and don't see it right |
| 2657 |
away, cross your fingers and wait ten minutes before retrying.</p> |
| 2658 |
|
| 2659 |
<p>Good servers are designed to restore the entire queue, including |
| 2660 |
messages you have deleted. If you have one of these and it flakes out on |
| 2661 |
you a lot, try setting a small <code>--fetchlimit</code> value. This |
| 2662 |
will result in more IP connects to the server, but will mean it actually |
| 2663 |
executes changes to the queue more often.</p> |
| 2664 |
|
| 2665 |
<h2><a id="D3" name="D3">D3. Mail that was being fetched when I |
| 2666 |
interrupted my fetchmail seems to have been vanished.</a></h2> |
| 2667 |
|
| 2668 |
<p>Fetchmail only sends a delete mail request to the server when |
| 2669 |
either (a) it gets a positive delivery acknowledgment from the SMTP |
| 2670 |
listener, or (b) it gets one of the spam-filter errors (see the |
| 2671 |
description of the <code>antispam></code> option) from the |
| 2672 |
listener. No interrupt can cause it to lose mail.</p> |
| 2673 |
|
| 2674 |
<p>However, IMAP2bis has a design problem in that its normal fetch |
| 2675 |
command marks a message 'seen' as soon as the fetch command to get |
| 2676 |
it is sent down. If for some reason the message isn't actually |
| 2677 |
delivered (you take a line hit during the download, or your port 25 |
| 2678 |
listener can't find enough free disk space, or you interrupt the |
| 2679 |
delivery in mid-message) that 'seen' message can lurk invisibly in |
| 2680 |
your server mailbox forever.</p> |
| 2681 |
|
| 2682 |
<p>Workaround: add the '<code>fetchall</code>' keyword to your |
| 2683 |
fetch options.</p> |
| 2684 |
|
| 2685 |
<p>Solution: switch to an <a href="http://www.imap.org/">IMAP4</a> |
| 2686 |
server.</p> |
| 2687 |
|
| 2688 |
<hr/> |
| 2689 |
<h1>Multidrop-mode problems</h1> |
| 2690 |
<h2><a id="M1" name="M1">M1. I've declared local names, but all my |
| 2691 |
multidrop mail is going to root anyway.</a></h2> |
| 2692 |
|
| 2693 |
<p>Somehow your fetchmail is never recognizing the hostname part of |
| 2694 |
recipient names it parses out of Envelope-header lines (or these are |
| 2695 |
improperly configured) as |
| 2696 |
matching a name within the designated domains. To check this, run |
| 2697 |
fetchmail in foreground with -v -v on. You will probably see a lot |
| 2698 |
of messages with the format "line rejected, %s is not an alias of |
| 2699 |
the mailserver" or "no address matches; forwarding to %s."</p> |
| 2700 |
|
| 2701 |
<p>These errors usually indicate some kind of configuration |
| 2702 |
problem.</p> |
| 2703 |
|
| 2704 |
<p>The easiest workaround is to add a '<code>via</code>' option (if |
| 2705 |
necessary) and add enough '<code>aka</code>' declarations to cover all |
| 2706 |
of your mailserver's aliases, then say '<code>no dns</code>'. This will |
| 2707 |
take DNS out of the picture (though it means mail may be uncollected if |
| 2708 |
it's sent to an alias of the mailserver that you don't have listed).</p> |
| 2709 |
|
| 2710 |
<p>Occasionally these errors indicate the sort of header-parsing |
| 2711 |
problem described in <a href="#M7">M7</a>.</p> |
| 2712 |
|
| 2713 |
<h2><a id="M2" name="M2">M2. I can't seem to get fetchmail to route |
| 2714 |
to a local domain properly.</a></h2> |
| 2715 |
|
| 2716 |
<p>A lot of people want to use fetchmail as a poor man's |
| 2717 |
internetwork mail gateway, picking up mail accumulated for a whole |
| 2718 |
domain in a single server mailbox and then routing based on what's |
| 2719 |
in the To/Cc/Bcc lines.</p> |
| 2720 |
|
| 2721 |
<p>In general, this is not really a good idea. It would be smarter |
| 2722 |
to just let the mail sit in the mailserver's queue and use |
| 2723 |
fetchmail's ETRN or ODMR modes to trigger SMTP sends periodically |
| 2724 |
(of course, this means you have to poll more frequently than the |
| 2725 |
mailserver's expiration period). If you can't arrange this, try |
| 2726 |
setting up a UUCP feed.</p> |
| 2727 |
|
| 2728 |
<p>If neither of these alternatives is available, multidrop mode |
| 2729 |
may do (though you <em>are</em> going to get hurt by some mailing |
| 2730 |
list software; see the caveats under THE USE AND ABUSE OF MULTIDROP |
| 2731 |
MAILBOXES on the man page, and check what is needed at <a |
| 2732 |
href="http://home.pages.de/~mandree/mail/multidrop">Matthias |
| 2733 |
Andree's "Requisites for working multidrop |
| 2734 |
mailboxes"</a>). If you want to try it, the way to do it is |
| 2735 |
with the '<code>localdomains</code>' option.</p> |
| 2736 |
|
| 2737 |
<p>In general, if you use localdomains you need to make sure of two |
| 2738 |
other things:</p> |
| 2739 |
|
| 2740 |
<p><strong>1. You've actually set up your .fetchmailrc entry to |
| 2741 |
invoke multidrop mode.</strong></p> |
| 2742 |
|
| 2743 |
<p>Many people set a '<code>localdomains</code>' list and then |
| 2744 |
forget that fetchmail wants to see more than one name (or the |
| 2745 |
wildcard '*') in a '<code>here</code>' list before it will do |
| 2746 |
multidrop routing.</p> |
| 2747 |
|
| 2748 |
<p><strong>2. You may have to set 'no envelope'.</strong></p> |
| 2749 |
|
| 2750 |
<p>Normally, multidrop mode tries to deduce an envelope address |
| 2751 |
from a message before parsing the To/Cc/Bcc lines (this enables it |
| 2752 |
to avoid losing to mailing list software that doesn't put a |
| 2753 |
recipient address in the To lines).</p> |
| 2754 |
|
| 2755 |
<p>Some ways of accumulating a whole domain's messages in a single |
| 2756 |
server mailbox mean it all ends up with a single envelope address |
| 2757 |
that is useless for rerouting purposes. In this particular case, sell |
| 2758 |
your ISP a clue. If that does not work, you may have to set |
| 2759 |
'<code>no envelope</code>' to prevent fetchmail from being |
| 2760 |
bamboozled by this, but a missing envelope makes multidrop routing |
| 2761 |
unreliable.</p> |
| 2762 |
|
| 2763 |
<p>Check also answer <a href="#T1">T1</a> on a reliable way to do |
| 2764 |
multidrop delivery if your ISP (or your mail redirection provider) |
| 2765 |
is using qmail.</p> |
| 2766 |
|
| 2767 |
<h2><a id="M3" name="M3">M3. I tried to run a mailing list using |
| 2768 |
multidrop, and I have a mail loop!</a></h2> |
| 2769 |
|
| 2770 |
<p>This isn't fetchmail's fault. Check your mailing list. If the |
| 2771 |
list expansion includes yourself or anybody else at your mailserver |
| 2772 |
(that is, not on the client side) you've created a mail loop. Just |
| 2773 |
chop the host part off any local addresses in the list.</p> |
| 2774 |
|
| 2775 |
<p>If you use sendmail, you can check the list expansion with |
| 2776 |
<code>sendmail -bv</code>.</p> |
| 2777 |
|
| 2778 |
<h2><a id="M4" name="M4"><strike>M4. My multidrop fetchmail seems to be |
| 2779 |
having DNS problems.</strike></a></h2> |
| 2780 |
|
| 2781 |
<p><em>The answer that used to be here no longer applies to |
| 2782 |
fetchmail.</em></p> |
| 2783 |
|
| 2784 |
<h2><a id="M5" name="M5">M5. I'm seeing long DNS delays before each |
| 2785 |
message is processed.</a></h2> |
| 2786 |
|
| 2787 |
<p>Use the '<code>aka</code>' option to pre-declare as many of your |
| 2788 |
mailserver's DNS names as you can. When an address's host part |
| 2789 |
matches an aka name, no DNS lookup needs to be done to check |
| 2790 |
it.</p> |
| 2791 |
|
| 2792 |
<p>If you're sure you've pre-declared all of your mailserver's DNS |
| 2793 |
names, you can use the '<code>no dns</code>' option to prevent |
| 2794 |
other hostname parts from being looked up at all.</p> |
| 2795 |
|
| 2796 |
<p>Sometimes delays are unavoidable. Some SMTP listeners try to |
| 2797 |
call DNS on the From-address hostname as a way of checking that the |
| 2798 |
address is valid.</p> |
| 2799 |
|
| 2800 |
<h2><a id="M6" name="M6">M6. How do I get multidrop mode to work |
| 2801 |
with majordomo?</a></h2> |
| 2802 |
|
| 2803 |
<p>In order for sendmail to execute the command strings in the |
| 2804 |
majordomo alias file, it is necessary for sendmail to think that |
| 2805 |
the mail it receives via SMTP really is destined for a local user |
| 2806 |
name. A normal virtual-domain setup results in delivery to the |
| 2807 |
default mailbox, rather than expansion through majordomo.</p> |
| 2808 |
|
| 2809 |
<p>Michael <michael@bizsystems.com> gave us a recipe for |
| 2810 |
dealing with this case that pairs a run control file like this:</p> |
| 2811 |
|
| 2812 |
<pre> |
| 2813 |
poll your.pop3.server proto pop3: |
| 2814 |
no envelope no dns |
| 2815 |
localdomains virtual.localdomain1.com virtual.localdomain2.com ... |
| 2816 |
user yourISPusername is root * here, |
| 2817 |
password yourISPpassword fetchall |
| 2818 |
</pre> |
| 2819 |
|
| 2820 |
<p>with a hack on your local sendmail.cf like this:</p> |
| 2821 |
|
| 2822 |
<pre> |
| 2823 |
############################################# |
| 2824 |
# virtual info, local hack for ruleset 98 # |
| 2825 |
############################################# |
| 2826 |
|
| 2827 |
# domains to treat as direct mapped local domain |
| 2828 |
|
| 2829 |
CVvirtual.localdomain1.com virtual.localdomain2.com ... |
| 2830 |
--------------------------- |
| 2831 |
in ruleset 98 add |
| 2832 |
------------------------- |
| 2833 |
# handle virtual users |
| 2834 |
|
| 2835 |
R$+ <@ $=V . > $: $1 < @ $j . > |
| 2836 |
R< @ > $+ < @ $=V . > $: $1 < @ $j . > |
| 2837 |
R< @ > $+ $: $1 |
| 2838 |
R< error : $- $+ > $* $#error $@ $1 $: $2 |
| 2839 |
R< $+ > $+ < @ $+ > $: $>97 $1 |
| 2840 |
</pre> |
| 2841 |
|
| 2842 |
<p>This ruleset just strips virtual domain names off the addresses |
| 2843 |
of incoming mail. Your sendmail must be 8.8 or newer for this to |
| 2844 |
work. Michael says:</p> |
| 2845 |
|
| 2846 |
<blockquote>I use this scheme with 2 virtual domains and the |
| 2847 |
default ISP user+domain and service about 30 mail accounts + |
| 2848 |
majordomo on my inside pop3 server with fetchmail and sendmail |
| 2849 |
8.83</blockquote> |
| 2850 |
|
| 2851 |
<h2><a id="M7" name="M7">M7. Multidrop mode isn't parsing envelope |
| 2852 |
addresses from my Received headers as it should.</a></h2> |
| 2853 |
|
| 2854 |
<p>It may happen that you're getting what appear to be well-formed |
| 2855 |
sendmail Received headers, but fetchmail can't seem to extract an |
| 2856 |
envelope address from them. There can be a couple of reasons for |
| 2857 |
this.</p> |
| 2858 |
|
| 2859 |
<h3>Spurious Received lines need to be skipped:</h3> |
| 2860 |
|
| 2861 |
<p>First, fetchmail might be looking at the wrong Received header. |
| 2862 |
Normally it looks only on the first one it sees, on the theory that |
| 2863 |
that one was last added and is going to be the one containing your |
| 2864 |
mailserver's theory of who the message was addressed to.</p> |
| 2865 |
|
| 2866 |
<p>Some (unusual) mailserver configurations will generate extra |
| 2867 |
Received lines which you need to skip. To arrange this, use the |
| 2868 |
optional skip prefix argument of the 'envelope' option; you may |
| 2869 |
need to say something like '<code>envelope 1 Received</code>' or |
| 2870 |
'<code>envelope 2 Received</code>'.</p> |
| 2871 |
|
| 2872 |
<h3>The 'by' clause doesn't contain a mailserver alias:</h3> |
| 2873 |
|
| 2874 |
<p>When fetchmail parses a Received line that looks like</p> |
| 2875 |
|
| 2876 |
<pre> |
| 2877 |
Received: from send103.yahoomail.com (send103.yahoomail.com [205.180.60.92]) |
| 2878 |
by iserv.ttns.net (8.8.5/8.8.5) with SMTP id RAA10088 |
| 2879 |
for <ksturgeon@fbceg.org>; Wed, 9 Sep 1998 17:01:59 -0700 |
| 2880 |
</pre> |
| 2881 |
|
| 2882 |
<p>it checks to see if 'iserv.ttns.net' is a DNS alias of your |
| 2883 |
mailserver before accepting 'ksturgeon@fbceg.org' as an envelope |
| 2884 |
address. This check might fail if your DNS were misconfigured, or |
| 2885 |
if you were using 'no dns' and had failed to declare iserv.ttns.net |
| 2886 |
as an alias of your server.</p> |
| 2887 |
|
| 2888 |
<h2><a id="M8" name="M8">M8. Users are getting multiple copies of |
| 2889 |
messages.</a></h2> |
| 2890 |
|
| 2891 |
<p>It's a consequence of multidrop. What's happening is that you |
| 2892 |
have N users subscribed to the same list. The list software sends N |
| 2893 |
copies, not knowing they will end up in the same multidrop box. |
| 2894 |
Since they are both locally addressed to all N users, fetchmail |
| 2895 |
delivers N copies to each user.</p> |
| 2896 |
|
| 2897 |
<p>Fetchmail tries to eliminate adjacent duplicate messages in a |
| 2898 |
multidrop mailbox. However, this logic depends on the message-ID |
| 2899 |
being identical in both copies. It also depends on the two copies |
| 2900 |
being adjacent in the server mailbox. The former is usually the |
| 2901 |
case, but the latter condition sometimes fails in a |
| 2902 |
timing-dependent way if the server was processing multiple incoming |
| 2903 |
mail streams.</p> |
| 2904 |
|
| 2905 |
<p>I could eliminate this problem by keeping a list of all |
| 2906 |
message-IDs received during a poll so far and dropping any message |
| 2907 |
that matches a seen mail ID. The trouble is that this is an O(N**2) |
| 2908 |
operation that might significantly slow down the retrieval of large |
| 2909 |
mail batches.</p> |
| 2910 |
|
| 2911 |
<p>The real solution however is to make sure that fetchmail can find the |
| 2912 |
envelope recipient properly, which will reliably prevent this message |
| 2913 |
duplication.</p> |
| 2914 |
|
| 2915 |
<hr/> |
| 2916 |
<h1>Mangled mail</h1> |
| 2917 |
<h2><a id="X1" name="X1">X1. Spurious blank lines are appearing in |
| 2918 |
the headers of fetched mail.</a></h2> |
| 2919 |
|
| 2920 |
<p>What's probably happening is that the POP/IMAP daemon on your |
| 2921 |
mailserver is inserting a non-RFC822 header (like X-POP3-Rcpt:) and |
| 2922 |
something in your delivery path (most likely an old version of the |
| 2923 |
<em>deliver</em> program, which sendmail often calls to do local |
| 2924 |
delivery) is failing to recognize it as a header.</p> |
| 2925 |
|
| 2926 |
<p>This is not fetchmail's problem. The first thing to try is |
| 2927 |
installing a current version of <em>deliver</em>. If this doesn't |
| 2928 |
work, try to figure out which other program in your mail path is |
| 2929 |
inserting the blank line and replace that. If you can't do either |
| 2930 |
of these things, pick a different MDA (such as maildrop) and |
| 2931 |
declare it with the '<code>mda</code>' option.</p> |
| 2932 |
|
| 2933 |
<h2><a id="X2" name="X2">X2. My mail client can't see a Subject |
| 2934 |
line.</a></h2> |
| 2935 |
|
| 2936 |
<p>First, see <a href="#X1">X1</a>. This is quite probably the same |
| 2937 |
problem (X-POP3-Rcpt header or something similar being inserted by |
| 2938 |
the server and choked on by an old version of |
| 2939 |
<em>deliver</em>).</p> |
| 2940 |
|
| 2941 |
<p>The O'Reilly sendmail book does warn that IDA sendmail doesn't |
| 2942 |
process X- headers correctly. If this is your problem, all I can |
| 2943 |
suggest is replacing IDA sendmail, because it's broken and not |
| 2944 |
RFC822 conformant.</p> |
| 2945 |
|
| 2946 |
<h2><a id="X3" name="X3">X3. Messages containing "From" at the start of |
| 2947 |
line are being split.</a></h2> |
| 2948 |
|
| 2949 |
<p>If you know the messages aren't split in your server mailbox, |
| 2950 |
then this is a problem with your POP/IMAP server, your client-side |
| 2951 |
SMTP listener or your local delivery agent. Fetchmail cannot split |
| 2952 |
messages.</p> |
| 2953 |
|
| 2954 |
<p>Some POP server daemons ignore Content-Length headers and split |
| 2955 |
messages on From lines. We have one report that the 2.1 version of |
| 2956 |
the BSD popper program (as distributed on Solaris 2.5 and |
| 2957 |
elsewhere) is broken this way.</p> |
| 2958 |
|
| 2959 |
<p>You can test this. Declare an mda of 'cat' and send yourself one |
| 2960 |
piece of mail containing "From" at start of a line. If you see a |
| 2961 |
split message, your POP/IMAP server is at fault. Upgrade to a more |
| 2962 |
recent version.</p> |
| 2963 |
|
| 2964 |
<p>Sendmail and other SMTP listeners don't split RFC822 messages |
| 2965 |
either. What's probably happening is either sendmail's local |
| 2966 |
delivery agent or your mail reader are not quite RFC822-conformant |
| 2967 |
and are breaking messages on what it thinks are Unix-style From |
| 2968 |
headers. You can figure out which by looking at your client-side |
| 2969 |
mailbox with vi or more. If the message is already split in your |
| 2970 |
mailbox, your local delivery agent is the problem. If it's not, |
| 2971 |
your mailreader is the problem.</p> |
| 2972 |
|
| 2973 |
<p>If you can't replace the offending program, take a look at your |
| 2974 |
sendmail.cf file. There will likely be a line something like</p> |
| 2975 |
|
| 2976 |
<pre> |
| 2977 |
Mlocal, P=/usr/bin/procmail, F=lsDFMShP, S=10, R=20/40, A=procmail -Y -d $u |
| 2978 |
</pre> |
| 2979 |
|
| 2980 |
<p>describing your local delivery agent. Try inserting the 'E' |
| 2981 |
option in the flags part (the F= string). This will make sendmail |
| 2982 |
turn each dangerous start-of-line From into a >From, preventing |
| 2983 |
programs further downstream from acting up.</p> |
| 2984 |
|
| 2985 |
<h2><a id="X4" name="X4">X4.</a> <a id="generic_mangling" |
| 2986 |
name="generic_mangling">My mail is being mangled in a new and |
| 2987 |
different way</a></h2> |
| 2988 |
|
| 2989 |
<p>The first thing you need to do is pin down what program is doing |
| 2990 |
the mangling. We don't like getting bug reports about fetchmail |
| 2991 |
that are actually due to some other program's malfeasance, so |
| 2992 |
please go through this diagnostic sequence before sending us a |
| 2993 |
complaint.</p> |
| 2994 |
|
| 2995 |
<p>There are five possible culprits to consider, listed here in the |
| 2996 |
order they pass your mail:</p> |
| 2997 |
|
| 2998 |
<ol> |
| 2999 |
<li>Programs upstream of your server mailbox.</li> |
| 3000 |
|
| 3001 |
<li>The POP or IMAP server on your mailserver host.</li> |
| 3002 |
|
| 3003 |
<li>The fetchmail program itself.</li> |
| 3004 |
|
| 3005 |
<li>Your local sendmail.</li> |
| 3006 |
|
| 3007 |
<li>Your LDA (local delivery agent), as called by sendmail or |
| 3008 |
specified by <code>mda</code>.</li> |
| 3009 |
</ol> |
| 3010 |
|
| 3011 |
<p>Often it happens that fetchmail itself is OK, but using it |
| 3012 |
exposes pre-existing bugs in your downstream software, or your |
| 3013 |
downstream software has a bad interaction with POP/IMAP. You need |
| 3014 |
to pin down exactly where the message is being garbled in order to |
| 3015 |
deduce what is actually going on.</p> |
| 3016 |
|
| 3017 |
<p>The first thing to do is send yourself a test message, and |
| 3018 |
retrieve it with a .fetchmailrc entry containing the following (or |
| 3019 |
by running with the equivalent command-line options):</p> |
| 3020 |
|
| 3021 |
<pre> |
| 3022 |
mda "cat >MBOX" keep fetchall |
| 3023 |
</pre> |
| 3024 |
|
| 3025 |
<p>This will capture what fetchmail gets from the server, except |
| 3026 |
for (a) the extra Received header line fetchmail prepends, (b) |
| 3027 |
header address changes due to <code>rewrite</code>, and (c) any |
| 3028 |
end-of-line changes due to the <code>forcecr</code> and |
| 3029 |
<code>stripcr</code> options. MBOX will in fact contain what |
| 3030 |
programs downstream of fetchmail see.</p> |
| 3031 |
|
| 3032 |
<p>The most common causes of mangling are bugs and |
| 3033 |
misconfigurations in those downstream programs. If MBOX looks |
| 3034 |
unmangled, you will know that is what is going on and that it is |
| 3035 |
not fetchmail's problem. Take a look at the other FAQ items in this |
| 3036 |
section for possible clues about how to fix your problem.</p> |
| 3037 |
|
| 3038 |
<p>If MBOX looks mangled, the next thing to do is compare it with |
| 3039 |
your actual server mailbox (if possible). That's why you specified |
| 3040 |
<code>keep</code>, so the server copy would not be deleted. If your |
| 3041 |
server mailbox looks mangled, programs upstream of your server |
| 3042 |
mailbox are at fault. Unfortunately there is probably little you |
| 3043 |
can do about this aside from complaining to your site postmaster, |
| 3044 |
and nothing at all fetchmail can do about it!</p> |
| 3045 |
|
| 3046 |
<p>More likely you'll find that the server copy looks OK. In that |
| 3047 |
case either the POP/IMAP server or fetchmail is doing the mangling. |
| 3048 |
To determine which, you'll need to telnet to the server port and |
| 3049 |
simulate a fetchmail session yourself. This is not actually hard |
| 3050 |
(both POP3 and IMAP are simple, text-only, line-oriented protocols) |
| 3051 |
but requires some attention to detail. You should be able to use a |
| 3052 |
fetchmail -v log as a model for a session, but remember that the |
| 3053 |
"*" in your LOGIN or PASS command dump has to be replaced with your |
| 3054 |
actual password.</p> |
| 3055 |
|
| 3056 |
<p>The objective of manually simulating fetchmail is so you can see |
| 3057 |
exactly what fetchmail sees. If you see a mangled message, then |
| 3058 |
your server is at fault, and you probably need to complain to your |
| 3059 |
mailserver administrators. However, we like to know what the broken |
| 3060 |
servers are so we can warn people away from them. So please send us |
| 3061 |
a transcript of the session including the mangling <em>and the |
| 3062 |
server's initial greeting line</em>. Please tell us anything else |
| 3063 |
you think might be useful about the server, like the server host's |
| 3064 |
operating system.</p> |
| 3065 |
|
| 3066 |
<p>If your manual fetchmail simulation shows an unmangled message, |
| 3067 |
congratulations. You've found an actual fetchmail bug, which is a |
| 3068 |
pretty rare thing these days. Complain to us and we'll fix it. |
| 3069 |
Please include the session transcript of your manual fetchmail |
| 3070 |
simulation along with the other things described in the FAQ entry |
| 3071 |
on <a href="#G3">reporting bugs</a>.</p> |
| 3072 |
|
| 3073 |
<h2><a id="X5" name="X5"><strike>X5. Using POP3, retrievals seems to be |
| 3074 |
fetching too much!</strike></a></h2> |
| 3075 |
|
| 3076 |
<p><em>The information that used to be here pertained to fetchmail 4.4.7 or |
| 3077 |
older, which should not be used. Use a recent fetchmail version.</em></p> |
| 3078 |
|
| 3079 |
<h2><a id="X6" name="X6">X6. My mail attachments are being dropped |
| 3080 |
or mangled.</a></h2> |
| 3081 |
|
| 3082 |
<p>Fetchmail doesn't discard attachments; fetchmail doesn't have any idea |
| 3083 |
that attachments are there. Fetchmail treats the body of each message as |
| 3084 |
an uninterpreted byte stream and passes it through without alteration. |
| 3085 |
If you are not receiving attachments through fetchmail, it is because |
| 3086 |
your mailserver is not sending them to you.</p> |
| 3087 |
|
| 3088 |
<p>The fix for this is to replace your mailserver with one that works. |
| 3089 |
If its operating system makes this difficult, you should replace its |
| 3090 |
operating system with one that works. Windows- and NT-based POP servers |
| 3091 |
seem especially prone to mangle attachments. If you are running one |
| 3092 |
of these, replacing your server with a Unix machine is probably the |
| 3093 |
only effective solution.</p> |
| 3094 |
|
| 3095 |
<p>We've had sporadic reports of problems with Microsoft Exchange and |
| 3096 |
Outlook servers. These sometimes randomly fail to ship |
| 3097 |
attachments to your client. This is a known bug, acknowledged by |
| 3098 |
Microsoft.</p> |
| 3099 |
|
| 3100 |
<p>They may also mangle the attachments they do pass through. If you |
| 3101 |
see unreadable attachments with a ContentType of "application/x-tnef", |
| 3102 |
you're having this problem. The <a |
| 3103 |
href="http://world.std.com/~damned/software.html">TNEF</a> utility may |
| 3104 |
help.</p> |
| 3105 |
|
| 3106 |
<p>The Mail Max POP3 server and the InterChange and Imail IMAP |
| 3107 |
servers are known to simply drop MIME attachments when uploading |
| 3108 |
messages.</p> |
| 3109 |
|
| 3110 |
<p>We've also had a report that Lotus Notes sometimes trashes the |
| 3111 |
MIME type of messages. In particular, it seems to modify MIME |
| 3112 |
headers of type application/pdf, mangling the type to |
| 3113 |
application/octet-stream. It may corrupt other MIME types as |
| 3114 |
well.</p> |
| 3115 |
|
| 3116 |
<p>The IMAP service of Lotus Domino has a known bug in the way it |
| 3117 |
generates MIME Content-type headers (observed on Lotus Domino |
| 3118 |
5.0.2b). It's a subtle one that doesn't show up when Netscape |
| 3119 |
Messenger and other clients use a FETCH BODY[] to grab the whole |
| 3120 |
message. When fetchmail uses FETCH RFC822.HEADER and FETCH |
| 3121 |
RFC822.TEXT to get first the header and then the body, Domino |
| 3122 |
generates different Boundary tags for each part, e.g. one tag is |
| 3123 |
declared in the Content-type header and another is used to separate |
| 3124 |
the MIME parts in the body. This doesn't work. (I have heard a |
| 3125 |
rumor that this bug is scheduled to be fixed in Domino release 6; |
| 3126 |
you can find a workaround at contrib/domino.)</p> |
| 3127 |
|
| 3128 |
<p>Rob Funk explains: Unfortunately there also remain many mail |
| 3129 |
user agents that don't write correct MIME messages. One big |
| 3130 |
offender is Sun MailTool attachments, which are formatted enough |
| 3131 |
like MIME that some programs could get confused; these are |
| 3132 |
generated by the mailtool and dtmail programs (the mail programs in |
| 3133 |
Sun's OpenWindows and CDE environments).</p> |
| 3134 |
|
| 3135 |
<p>One solution to problems related to misformatted MIME |
| 3136 |
attachments is the <a |
| 3137 |
href="ftp://ftp.uu.se/pub/unix/networking/mail/emil/">emil</a> |
| 3138 |
program; see its <a |
| 3139 |
href="ftp://ftp.uu.se/pub/unix/networking/mail/emil/TUTORIAL.html">tutorial</a> |
| 3140 |
file at that site for details on emil. It is useful for converting |
| 3141 |
character sets, attachment encodings, and attachment formats. At |
| 3142 |
this writing, emil does not appear to have been maintained since a |
| 3143 |
patch to version 2.1.0beta9 in late 1997, but it is still |
| 3144 |
useful.</p> |
| 3145 |
|
| 3146 |
<p>One good way of using emil is from within procmail. You can have |
| 3147 |
procmail look for signs of problematic message formatting, and pipe |
| 3148 |
those messages through emil to be fixed. emil will not always be |
| 3149 |
able to fix the problem, in which case the message is |
| 3150 |
unchanged.</p> |
| 3151 |
|
| 3152 |
<p>A possible rule to be inserted into a .procmailrc file for using |
| 3153 |
emil would be:</p> |
| 3154 |
|
| 3155 |
<pre> |
| 3156 |
:0HB |
| 3157 |
* 1^1 ^Content-Type: \/X-sun[^;]* |
| 3158 |
* 1^1 ^Content-Type: \/application/mac-binhex[^;]* |
| 3159 |
* 1^1 ^Content-Transfer-Encoding: \/x-binhex[^;]* |
| 3160 |
* 1^1 ^Content-Transfer-Encoding: \/x-uuencode[^;]* |
| 3161 |
{ |
| 3162 |
LOG="Converting $MATCH |
| 3163 |
" |
| 3164 |
:0fw |
| 3165 |
| emil -A B -T Q -B BA -C iso-8859-1 -H Q -F MIME \ |
| 3166 |
| gawk '{gsub(/\r\n?/,"\n");print $0}' |
| 3167 |
} |
| 3168 |
</pre> |
| 3169 |
|
| 3170 |
<p>The "1^1" in the conditions is a way of specifying to procmail |
| 3171 |
that if any one of the four listed expressions is found in the |
| 3172 |
message, the total condition is considered true, and the message |
| 3173 |
gets passed into emil. These four subconditions check whether the |
| 3174 |
message has a Sun attachment, a binhex attachment, or a uuencoded |
| 3175 |
attachment; there are others that could be added to check these |
| 3176 |
things better and to check other relevant conditions. The "LOG=" |
| 3177 |
line writes a line into the procmail log; the lone double-quote |
| 3178 |
beginning the following line makes sure the log entry gets an |
| 3179 |
end-of-line character. The call to gawk (GNU awk) is for fixing |
| 3180 |
end-of-line conventions, since emil sometimes leaves those in the |
| 3181 |
format of the originating machine; it could probably be replaced |
| 3182 |
with a sed subsitution.</p> |
| 3183 |
|
| 3184 |
<p>The emil call itself tries to ensure that the message uses:</p> |
| 3185 |
|
| 3186 |
<ul> |
| 3187 |
<li>BinHex encoding for any Apple Macintosh-only attachments</li> |
| 3188 |
|
| 3189 |
<li>Quoted-Printable encoding for text (when necessary)</li> |
| 3190 |
|
| 3191 |
<li>Base64 Encoding for binary attachments</li> |
| 3192 |
|
| 3193 |
<li>iso-8859-1 character set for text (unfortunately emil can't yet |
| 3194 |
convert from windows-1252 to iso-8859-1)</li> |
| 3195 |
|
| 3196 |
<li>Quoted-Printable encoding for headers</li> |
| 3197 |
|
| 3198 |
<li>MIME attachment format</li> |
| 3199 |
</ul> |
| 3200 |
|
| 3201 |
<p>Most of these (the primary exceptions being the character set |
| 3202 |
and the Apple binary format) are as they should be for good |
| 3203 |
internet interoperability.</p> |
| 3204 |
|
| 3205 |
<p>Some mail servers (Lotus Domino is a suspect here) mangle |
| 3206 |
Sun-formatted messages, so the conversion to MIME needs to happen |
| 3207 |
before such programs see the message. The ideal is to rid the world |
| 3208 |
of Sun-formatted messages: don't use mailtool for sending |
| 3209 |
attachments (it doesn't understand MIME anyway, and most of the |
| 3210 |
world doesn't understand its attachments, so it really shouldn't be |
| 3211 |
used at all), and make sure dtmail is set to use MIME rather than |
| 3212 |
mailtool's format.</p> |
| 3213 |
|
| 3214 |
<h2><a id="X7" name="X7">X7. Some mail attachments are hanging |
| 3215 |
fetchmail.</a></h2> |
| 3216 |
|
| 3217 |
<p>Fetchmail doesn't know anything about mail attachments and doesn't |
| 3218 |
treat them any differently from plain message data.</p> |
| 3219 |
|
| 3220 |
<p>The most usual cause of this problem seems to be bugs in your |
| 3221 |
network transport layer's capability to handle the very large |
| 3222 |
TCP/IP packets that attachments tend to turn into. You can test |
| 3223 |
this theory by trying to download the offending message through a |
| 3224 |
webmail account; using HTTP for the message tends to simulate |
| 3225 |
large-packet stress rather well, and you will probably find that |
| 3226 |
the messages that seem to be choking fetchmail will make your HTTP |
| 3227 |
download speed drop to zero.</p> |
| 3228 |
|
| 3229 |
<p>This problem can be caused by subtle bugs in the |
| 3230 |
packet-reassembly layer of your TCP/IP stack; these often don't |
| 3231 |
manifest at normal packet sizes. It may also be caused by |
| 3232 |
malfunctioning path-MTU discovery on the mailserver. Or, if there's |
| 3233 |
a modem in the link, it may be because the attachment contains the |
| 3234 |
Hayes mode escape "+++".</p> |
| 3235 |
|
| 3236 |
<h2><a id="X8" name="X8">X8. A spurious ) is being appended to my |
| 3237 |
messages.</a></h2> |
| 3238 |
|
| 3239 |
<p>Due to the problem described in <a href="#S2">S2</a>, the |
| 3240 |
IMAP support in fetchmail cannot follow the IMAP protocol 100 %. |
| 3241 |
Most of the time it doesn't matter, but if you combine it with an |
| 3242 |
SMTP server that behaves unusually, you'll get a spurious ) at |
| 3243 |
the message end.</p> |
| 3244 |
|
| 3245 |
<p>One piece of software that can trigger this is the Interchange |
| 3246 |
mail server, as used by, e.g., mailandnews.com. Here's what |
| 3247 |
happens:</p> |
| 3248 |
|
| 3249 |
<ol><li>Someone sends mail to your account. The last line of the |
| 3250 |
message contains text. So at the SMTP level, the message ends with, |
| 3251 |
e.g. "blahblah\r\n.\r\n"</li> |
| 3252 |
|
| 3253 |
<li>The SMTP handler sees the final "\r\n.\r\n" and recognizes |
| 3254 |
the end of the message. However, instead of doing the normal thing, |
| 3255 |
which is tossing out the ".\r\n" and leaving the first '\r\n' as |
| 3256 |
part of the email body, Interchange throws out the whole |
| 3257 |
"\r\n.\r\n", and leaves the email body without any line terminator |
| 3258 |
at the end of it. RFC821 does not forbid this, though it probably |
| 3259 |
should.</li> |
| 3260 |
|
| 3261 |
<li>Fetchmail, or some other IMAP client, asks for the message. |
| 3262 |
IMAP returns it, but it's enclosed inside parentheses, according to |
| 3263 |
the protocol. The message size in bytes is also present. Because |
| 3264 |
the message doesn't end with a line terminator, the IMAP client |
| 3265 |
sees: |
| 3266 |
|
| 3267 |
<pre> |
| 3268 |
....blahblah)... |
| 3269 |
</pre> |
| 3270 |
|
| 3271 |
<p>where the ')' is from IMAP.</p></li> |
| 3272 |
|
| 3273 |
<li>Fetchmail only deals with complete lines, and can't trust the |
| 3274 |
stated message size because Microsoft Exchange goofs it up.</li> |
| 3275 |
|
| 3276 |
<li>As a result, fetchmail takes the final 'blahblah)' and puts |
| 3277 |
it at the end of the message it forwards on. If you have verbosity |
| 3278 |
on, you'll get a message about actual != expected.</li> |
| 3279 |
</ol> |
| 3280 |
|
| 3281 |
<p>There is no fix for this.</p> |
| 3282 |
|
| 3283 |
<h2><a id="X9" name="X9">X9. Missing "Content-Transfer-Encoding" header |
| 3284 |
with Domino IMAP</a></h2> |
| 3285 |
|
| 3286 |
<p>Domino 6 IMAP was found by Anthony Kim in February 2006 to |
| 3287 |
erroneously omit the "Content-Transfer-Encoding" header in messages |
| 3288 |
downloaded through IMAP, causing messages to display improperly. This |
| 3289 |
happened with Domino's incoming mail format configured to "Prefers |
| 3290 |
MIME". Solution: switch Domino to "Keep in Sender's format".</p> |
| 3291 |
|
| 3292 |
<p>Reference: <a |
| 3293 |
href="http://lists.ccil.org/pipermail/fetchmail-friends/2006-March/010015.html">Anthony |
| 3294 |
Kim's list post</a> |
| 3295 |
</p> |
| 3296 |
|
| 3297 |
<h2><a id="X10" name="X10">X10. Fetchmail delivers partial |
| 3298 |
messages</a></h2> |
| 3299 |
|
| 3300 |
<p>Fetchmail is sometimes reported to deliver partial messages. This |
| 3301 |
is usually related to network outages that occur while fetchmail is |
| 3302 |
downloading a message body. In such cases, fetchmail has downloaded a |
| 3303 |
complete header, so your header will be intact. The message body will be |
| 3304 |
truncated, and fetchmail will later attempt to redownload the |
| 3305 |
message (providing the server is standards conformant).</p> |
| 3306 |
|
| 3307 |
<p>The reason for the truncation is that fetchmail streams the body |
| 3308 |
directly from the POP3/IMAP server into the SMTP/LMTP server or MDA (in |
| 3309 |
order to save memory), so fetchmail has already written a part of the |
| 3310 |
message before it notices it will be incomplete, and fetchmail cannot |
| 3311 |
abort a transaction it has started, and it's unclear if it ever will be |
| 3312 |
able to, because this is not standardized and the outcome will depend on |
| 3313 |
the receiving software (be it SMTP/LMTP or MDA).</p> |
| 3314 |
|
| 3315 |
<hr/> |
| 3316 |
<h1>Other problems</h1> |
| 3317 |
<h2><a id="O1" name="O1">O1. The --logfile option doesn't work if |
| 3318 |
the logfile doesn't exist.</a></h2> |
| 3319 |
|
| 3320 |
<p>This is a feature, not a bug. It's in line with normal practice |
| 3321 |
for system daemons and allows you to suppress logging by removing |
| 3322 |
the log file, without hacking potentially fragile startup scripts. |
| 3323 |
To get around it, just touch(1) the logfile before you run fetchmail |
| 3324 |
(this will have no effect on the contents of the logfile if it already |
| 3325 |
exists).</p> |
| 3326 |
|
| 3327 |
<h2><a id="O2" name="O2">O2. Every time I get a POP or IMAP message, |
| 3328 |
the header is dumped to all my terminal sessions.</a></h2> |
| 3329 |
|
| 3330 |
<p>Fetchmail uses the local sendmail to perform final delivery, |
| 3331 |
which Mozilla and other clients don't do; the announcement of |
| 3332 |
new messages is done by a daemon that sendmail pokes. There should |
| 3333 |
be a "biff" command to control this. Type</p> |
| 3334 |
|
| 3335 |
<pre> |
| 3336 |
biff n |
| 3337 |
</pre> |
| 3338 |
|
| 3339 |
<p>to turn it off. If this doesn't work, try the command</p> |
| 3340 |
|
| 3341 |
<pre> |
| 3342 |
chmod -x $(tty) |
| 3343 |
</pre> |
| 3344 |
|
| 3345 |
<p>which is essentially what <code>biff -n</code> will do. If this |
| 3346 |
doesn't work, comment out any reference to "comsat" in your |
| 3347 |
/etc/inetd.conf file and reload (or restart) inetd.</p> |
| 3348 |
|
| 3349 |
<p>In Slackware Linux distributions, the last line in /etc/profile |
| 3350 |
is</p> |
| 3351 |
|
| 3352 |
<pre> |
| 3353 |
biff y |
| 3354 |
</pre> |
| 3355 |
|
| 3356 |
Change this to |
| 3357 |
|
| 3358 |
<pre> |
| 3359 |
biff n |
| 3360 |
</pre> |
| 3361 |
|
| 3362 |
to solve the problem system-wide. |
| 3363 |
|
| 3364 |
<h2><a id="O3" name="O3">O3. Does fetchmail reread its rc file |
| 3365 |
every poll cycle?</a></h2> |
| 3366 |
|
| 3367 |
<p>No, but versions 5.2.2 and later will notice when you modify |
| 3368 |
your rc file and restart, reading it. Note that this causes troubles if |
| 3369 |
you need to provide a password via the console, unless you're running in |
| 3370 |
--nodetach mode.</p> |
| 3371 |
|
| 3372 |
<h2><a id="O4" name="O4">O4. Why do deleted messages show up again |
| 3373 |
when I take a line hit while downloading?</a></h2> |
| 3374 |
|
| 3375 |
<p>According to the POP3 RFCs, deletes aren't actually performed |
| 3376 |
until you issue the end-of-session QUIT command. Fetchmail cannot |
| 3377 |
fix this, but there is a workaround: use the --expunge option with a |
| 3378 |
reasonably low figure that works for you. Try 10 for a start.</p> |
| 3379 |
|
| 3380 |
<p>IMAP is less susceptible to this problem, because the "deleted" |
| 3381 |
message marks are persistent, but they aren't in POP3. Note that the |
| 3382 |
--expunge default for IMAP is different than the default for POP3.</p> |
| 3383 |
|
| 3384 |
<p>If you get very unlucky, you might take a line hit in the window |
| 3385 |
between the delete and the expunge. If you've set a longer expunge |
| 3386 |
interval, the window gets wider. This problem should correct itself |
| 3387 |
the next time you complete a successful query.</p> |
| 3388 |
|
| 3389 |
<h2><a id="O5" name="O5">O5. Why is fetched mail being logged with |
| 3390 |
my name, not the real From address?</a></h2> |
| 3391 |
|
| 3392 |
<p>Because logging is done based on the address indicated by the |
| 3393 |
sending SMTP's MAIL FROM, and some listeners are picky about that |
| 3394 |
address.</p> |
| 3395 |
|
| 3396 |
<p>Some SMTP listeners get upset if you try to hand them a MAIL |
| 3397 |
FROM address naming a different host than the originating site for |
| 3398 |
your connection. This is a feature, not a bug -- it's supposed to |
| 3399 |
help prevent people from forging mail with a bogus origin site. |
| 3400 |
(RFC 1123 says you shouldn't do this exclusion...)</p> |
| 3401 |
|
| 3402 |
<p>Since the originating site of a fetchmail delivery connection is |
| 3403 |
localhost, this effectively means these picky listeners will barf |
| 3404 |
on any MAIL FROM address fetchmail hands them with an @ in it!</p> |
| 3405 |
|
| 3406 |
<p>Versions 2.1 and up try the header From address first and fall |
| 3407 |
back to the calling-user ID. So if your SMTP listener isn't picky, |
| 3408 |
the log will look right.</p> |
| 3409 |
|
| 3410 |
<h2><a id="O6" name="O6">O6. I'm seeing long sendmail delays or |
| 3411 |
hangs near the start of each poll cycle.</a></h2> |
| 3412 |
|
| 3413 |
<p>Sendmail does a hostname lookup when it first starts up, and |
| 3414 |
also each time it gets a HELO in listener mode.</p> |
| 3415 |
|
| 3416 |
<p>Your resolver configuration may be causing one of these lookups |
| 3417 |
to fail and time out. Check your <code>/etc/resolv.conf</code>, |
| 3418 |
<code>/etc/host.conf</code>, <code>/etc/nsswitch.conf</code> (if you |
| 3419 |
have the latter two) and you <code>/etc/hosts</code> files. Make sure |
| 3420 |
your hostname and fully-qualified domain name are both in |
| 3421 |
<code>/etc/hosts</code>, and that hosts is looked at before DNS is |
| 3422 |
queried. You probably also want your remote mail server(s) to be in the |
| 3423 |
hosts file.</p> |
| 3424 |
|
| 3425 |
<p>You can suppress the startup-time lookup if need to by reconfiguring |
| 3426 |
with <code>FEATURE(nodns)</code>.</p> |
| 3427 |
|
| 3428 |
<p>Configuring your bind library to cache DNS lookups locally may |
| 3429 |
help, and is a good idea for speeding up other services as well. |
| 3430 |
Switching to a faster MTA like <a |
| 3431 |
href="http://www.postfix.org/">Postfix</a> might help.</p> |
| 3432 |
|
| 3433 |
<h2><a id="O7" name="O7">O7. Why doesn't fetchmail deliver mail in |
| 3434 |
date-sorted order?</a></h2> |
| 3435 |
|
| 3436 |
<p>Because that's not the order the server hands it to fetchmail |
| 3437 |
in.</p> |
| 3438 |
|
| 3439 |
<p>Fetchmail getting mail from a POP server delivers mail in the |
| 3440 |
order that your server delivers mail. Fetchmail can't do anything |
| 3441 |
about this; it's a limitation of the underlying POP protocol.</p> |
| 3442 |
|
| 3443 |
<p>In theory it might be possible for fetchmail in IMAP mode to |
| 3444 |
sort messages by date, but this would be in violation of two basics |
| 3445 |
of fetchmail's design philosophy: (a) to be as simple and |
| 3446 |
transparent a pipe as possible, and (b) to <em>hide</em>, rather |
| 3447 |
than emphasize, the differences between the remote-fetch protocols |
| 3448 |
it uses.</p> |
| 3449 |
|
| 3450 |
<p>Re-ordering messages is a user-agent function, anyway.</p> |
| 3451 |
|
| 3452 |
<h2><a id="O8" name="O8">O8. I'm using pppd. Why isn't my monitor |
| 3453 |
option working?</a></h2> |
| 3454 |
|
| 3455 |
<p>There is a combination of circumstances that can confuse |
| 3456 |
fetchmail. If you have set up demand dialing with pppd, and pppd |
| 3457 |
has an idle timeout, and you have lcp-echo-interval set, then the |
| 3458 |
lcp-echo-interval time must be longer than the pppd idle timeout. |
| 3459 |
Otherwise it is going keep increasing the packet counters that |
| 3460 |
fetchmail relies upon, triggering fetchmail into polling after its |
| 3461 |
own delay interval and thus preventing the pppd link from ever |
| 3462 |
reaching its inactivity timeout.</p> |
| 3463 |
|
| 3464 |
<h2><a id="O9" name="O9">O9. Why does fetchmail keep retrieving the |
| 3465 |
same messages over and over?</a></h2> |
| 3466 |
|
| 3467 |
<p>First, check to see that you haven't enabled the |
| 3468 |
<cite>keep</cite> and <cite>fetchall</cite> option. If you have, |
| 3469 |
turn one of them off - which one, depends on why they have been set in |
| 3470 |
the first place, and to a lesser degree on the upstream server.</p> |
| 3471 |
|
| 3472 |
<p>This can also happen when some other mail client is logged in to |
| 3473 |
your mail server, if it uses a simple exclusive-locking scheme (and |
| 3474 |
many, especially most POP3 servers, do exactly that). Your |
| 3475 |
fetchmail is able to retrieve the messages, but because the mailbox |
| 3476 |
is write-locked by the other instance yours can neither mark |
| 3477 |
messages seen or delete them. The solution is to either (a) wait |
| 3478 |
for the other client to finish, or (b) terminate it.</p> |
| 3479 |
|
| 3480 |
<h2><a id="O10" name="O10"><strike>O10. Why is the received date on all my |
| 3481 |
messages the same?</strike></a></h2> |
| 3482 |
|
| 3483 |
<p><em>The answer that used to be here made no sense and was dropped.</em></p> |
| 3484 |
|
| 3485 |
<h2><a name="O11">O11. I keep getting messages that say "Repoll |
| 3486 |
immediately" in my logs.</a></h2> |
| 3487 |
|
| 3488 |
<p>This is your server barfing on the CAPA probe that fetchmail sends. |
| 3489 |
Because some servers like to drop the connection after that probe, |
| 3490 |
fetchmail will re-poll immediately with this probe defeated.</p> |
| 3491 |
|
| 3492 |
<p>If you run fetchmail in daemon mode (say "set daemon 600"), you will |
| 3493 |
get the message only once per run.</p> |
| 3494 |
|
| 3495 |
<p>If you set an authentication method explicitly (say, with |
| 3496 |
<code>auth password</code>), you will never get the message.</p> |
| 3497 |
|
| 3498 |
<h2><a name="O12">O12. Fetchmail no longer expunges mail on a 451 SMTP response.</a></h2> |
| 3499 |
|
| 3500 |
<p>This is a feature, not a bug.</p> |
| 3501 |
|
| 3502 |
<p>Any 4xx response (like 451) indicates a transient (temporary) error. |
| 3503 |
This means that the mail could be accepted if retried later. Lookup |
| 3504 |
failures are normally transient errors as a mail should not get |
| 3505 |
rejected if a dns server is unreachable or down.</p> |
| 3506 |
|
| 3507 |
<p>A permanent reject response is of the form 5xx (like 550).</p> |
| 3508 |
|
| 3509 |
<p>You could tell your SMTP server to not lookup any addresses if you are |
| 3510 |
not keen on checking the sender addresses. This problem typically |
| 3511 |
occurs if your mail server is not checking the sender addresses, but |
| 3512 |
your local server is.</p> |
| 3513 |
|
| 3514 |
<p>Or you could declare <code>antispam 451</code>, which is not |
| 3515 |
recommended though, as it may cause mail loss.</p> |
| 3516 |
|
| 3517 |
<p>Or, you could check your nameserver configuration and query logs for |
| 3518 |
dns errors.</p> |
| 3519 |
|
| 3520 |
<p>All these issues are not related to fetchmail directly.</p> |
| 3521 |
|
| 3522 |
<h2><a name="O13">O13. I want timestamp information in my fetchmail logs.</a></h2> |
| 3523 |
|
| 3524 |
<p>Write a <code>preconnect</code> command in your configuration file that |
| 3525 |
does something like "date >> $HOME/fetchmail.log".</p> |
| 3526 |
|
| 3527 |
<h2><a name="O14">O14. Fetchmail no longer deletes oversized mails with |
| 3528 |
--flush.</a></h2> |
| 3529 |
|
| 3530 |
<p>Use <code>--limitflush</code> (available since release 6.3.0) to |
| 3531 |
delete oversized mails along with the <code>--limit</code> option. If |
| 3532 |
you are already having <code>flush</code> in your rcfile to delete |
| 3533 |
oversized mails, <em>replace</em> it with <code>limitflush</code> to |
| 3534 |
avoid losing mails unintentionally.</p> |
| 3535 |
|
| 3536 |
<p>The <code>--flush</code> option is primarily designed to delete |
| 3537 |
mails which have been read/downloaded but not deleted yet. This option |
| 3538 |
cannot be overloaded to delete oversized mails as it cannot be guessed |
| 3539 |
whether the user wants to delete only read/downloaded mails or only |
| 3540 |
oversized mails or both when a user specifies both |
| 3541 |
<code>--limit</code> and <code>--flush</code>. Hence, a separate |
| 3542 |
<code>--limitflush</code> has been added to resolve the ambiguity.</p> |
| 3543 |
|
| 3544 |
<h2><a name="O15">O15. Fetchmail always retains the first message in the |
| 3545 |
mailbox.</a></h2> |
| 3546 |
|
| 3547 |
<p>This happens when fetchmail sees an "X-IMAP:" header in the very |
| 3548 |
first message in your mailbox. This usually stems from a message like |
| 3549 |
the one shown below, which is automatically created on your server. This |
| 3550 |
message shows up if the University of Washington IMAP or PINE software |
| 3551 |
is used on the server together with a POP2 or POP3 daemon that is not |
| 3552 |
aware of these messages, such as some versions of Qualcomm Popper |
| 3553 |
(QPOP):</p> |
| 3554 |
|
| 3555 |
<blockquote> |
| 3556 |
<pre> |
| 3557 |
From MAILER-DAEMON Wed Nov 23 11:38:42 2005 |
| 3558 |
Date: 23 Nov 2005 11:38:42 +0100 |
| 3559 |
From: Mail System Internal Data <MAILER-DAEMON@imap.example.org> |
| 3560 |
Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA |
| 3561 |
Message-ID: <1132742322@imap.example.org> |
| 3562 |
X-IMAP: 1132742306 0000000001 |
| 3563 |
Status: RO |
| 3564 |
|
| 3565 |
This text is part of the internal format of your mail folder, and is not |
| 3566 |
a real message. It is created automatically by the mail system software. |
| 3567 |
If deleted, important folder data will be lost, and it will be re-created |
| 3568 |
with the data reset to initial values. |
| 3569 |
</pre> |
| 3570 |
</blockquote> |
| 3571 |
|
| 3572 |
<p>As this message does not contain useful information, fetchmail is not |
| 3573 |
retrieving it. And deleting it might slow down the server if you are |
| 3574 |
keeping messages on the server, and the server would recreate it |
| 3575 |
anyways, that's why fetchmail does not bother to delete it either.</p> |
| 3576 |
|
| 3577 |
<h2><a name="O16">O16. Why is the Fetchmail FAQ only available in |
| 3578 |
ISO-216 A4 format? How do I get the FAQ in Letter format?</a></h2> |
| 3579 |
|
| 3580 |
<p>All the world uses ISO-216:1975 "A4" paper except for North America. |
| 3581 |
Using A4 format reaches far more people than (formerly known as DIN A4, |
| 3582 |
from DIN 476) format. Besides that, A4 paper <em>is</em> available in North |
| 3583 |
America. |
| 3584 |
For further information on the Letter-vs-A4 story, see:</p> |
| 3585 |
<ul><li><a href="http://www.cl.cam.ac.uk/~mgk25/iso-paper.html">Markus |
| 3586 |
Kuhn: "International standard paper sizes"</a></li> |
| 3587 |
<li><a |
| 3588 |
href="http://betweenborders.com/wordsmithing/a4-vs-us-letter/">Brian |
| 3589 |
Forte: "A4 vs US Letter"</a></li></ul> |
| 3590 |
|
| 3591 |
<p>Offering the document formatted for two different paper sizes would |
| 3592 |
bloat the package beyond reason, and formatting in a way that fits A4 |
| 3593 |
and Letter paper formats would be a waste of paper in most parts of the |
| 3594 |
world. For that reason, fetchmail only ships with an A4 formatted PDF |
| 3595 |
document.</p> |
| 3596 |
|
| 3597 |
<p>To create a letter-sized PDF, install <a |
| 3598 |
href="http://www.htmldoc.org/">HTMLDOC</a>, edit |
| 3599 |
<code>fetchmail-FAQ.book</code> in the source directory with your |
| 3600 |
favorite text editor, replace <samp>--size A4</samp> by <samp>--size |
| 3601 |
letter</samp>, and type: |
| 3602 |
</p> |
| 3603 |
<pre> |
| 3604 |
make fetchmail-FAQ.pdf |
| 3605 |
</pre> |
| 3606 |
|
| 3607 |
<h2><a name="O17">O17. Linux logs "TCP(fetchmail:...): Application bug, race |
| 3608 |
in MSG_PEEK."</a></h2> |
| 3609 |
<p>That's in fact a bug in Linux kernels around the late 2.6.2X versions, |
| 3610 |
rather than fetchmail. Fetchmail has no race bugs around MSG_PEEK, |
| 3611 |
as of version 6.3.9. The message can safely be ignored.</p> |
| 3612 |
<hr/> |
| 3613 |
|
| 3614 |
<table width="100%" cellpadding="0" summary="Canned page footer"> |
| 3615 |
<tr> |
| 3616 |
<td width="30%">Back to <a href="index.html">Fetchmail Home |
| 3617 |
Page</a></td> |
| 3618 |
<td width="30%" align="right">$Date$</td> |
| 3619 |
</tr> |
| 3620 |
</table> |
| 3621 |
|
| 3622 |
<br clear="left"/> |
| 3623 |
<address>Eric S. Raymond <a |
| 3624 |
href="mailto:esr@thyrsus.com"><esr@thyrsus.com></a><br /> |
| 3625 |
Matthias Andree</address> |
| 3626 |
|
| 3627 |
</body> |
| 3628 |
</html> |