8
7
Before reporting any bug, please read G3 for advice on how to include
9
8
diagnostic information that will get your bug fixed as quickly as possible.
10
Note that this FAQ is occasionally updated from the SVN repository and
11
speaks in the past tense ("since") about a fetchmail release that is not yet
12
available. Please try a release candidate for that version in case you need
11
15
If you have a question or answer you think ought to be added to this FAQ
12
list, mail it to fetchmail's maintainer, Eric S. Raymond, at
16
list, file it to one of the trackers at our BerliOS project site or post to
17
one of the fetchmail mailing lists (see below).
23
B. Build-time problems
24
F. Fetchmail configuration file grammar questions
25
C. Configuration questions
26
T. How to make fetchmail play nice with various MTAs
27
S. How to make fetchmail work with various servers
28
I. How to fetchmail work with specific ISPs
29
K. How to set up well-known security and authentication
30
R. Runtime fatal errors
33
M. Multidrop-mode problems
17
41
G1. What is fetchmail and why should I bother?
18
42
G2. Where do I find the latest FAQ and fetchmail sources?
31
55
G15. Is there a way in fetchmail to support disconnected IMAP mode?
32
56
G16. How will fetchmail perform under heavy loads?
36
B1. Make coughs and dies when building on FreeBSD.
60
[DEL: B1. Make coughs and dies when building on FreeBSD. :DEL]
37
61
B2. Lex bombs out while building the fetchmail lexer.
38
62
B3. I get link failures when I try to build fetchmail.
39
63
B4. I get build failures in the intl directory.
41
Fetchmail configuration file grammar questions:
65
Fetchmail configuration file grammar questions
43
67
F1. Why does my old .fetchmailrc no longer work?
44
68
F2. The .fetchmailrc parser won't accept my all-numeric user name.
45
69
F3. The .fetchmailrc parser won't accept my host or username beginning with
47
F4. I'm getting a `parse error' message I don't understand.
71
F4. I'm getting a 'parse error' message I don't understand.
49
Configuration questions:
73
Configuration questions
51
75
C1. Why do I need a .fetchmailrc when running as root on my own machine?
52
76
C2. How can I arrange for a fetchmail daemon to get killed when I log out?
77
101
S6. How can I use fetchmail with MailMax?
78
102
S7. How can I use fetchmail with FTGate?
80
How to fetchmail work with specific ISPs:
104
How to fetchmail work with specific ISPs
82
106
I1. How can I use fetchmail with Compuserve RPA?
83
107
I2. How can I use fetchmail with Demon Internet's SDPS?
84
108
I3. How can I use fetchmail with usa.net's servers?
85
109
I4. How can I use fetchmail with geocities POP3 servers?
86
I5. How can I use fetchmail with Hotmail?
110
I5. How can I use fetchmail with Hotmail or Lycos Webmail?
87
111
I6. How can I use fetchmail with MSN?
88
112
I7. How can I use fetchmail with SpryNet?
89
I8. How can I use fetchmail with comcast.net?
113
I8. How can I use fetchmail with comcast.net or other Maillennium servers?
91
How to set up well-known security and authentication methods:
115
How to set up well-known security and authentication methods
93
117
K1. How can I use fetchmail with SOCKS?
94
118
K2. How can I use fetchmail with IPv6 and IPsec?
95
119
K3. How can I get fetchmail to work with ssh?
96
120
K4. What do I have to do to use the IMAP-GSS protocol?
97
121
K5. How can I use fetchmail with SSL?
101
R1. Fetchmail isn't working, and -v shows `SMTP connect failed' messages.
122
K6. How can I tell fetchmail not to try TLS if the server advertises it?
126
R1. Fetchmail isn't working, and -v shows 'SMTP connect failed' messages.
102
127
R2. When I try to configure an MDA, fetchmail doesn't work.
103
128
R3. Fetchmail dumps core when given an invalid rc file.
104
129
R4. Fetchmail dumps core in -V mode, but operates normally otherwise.
197
227
If you found this FAQ in the distribution, see the README for fetchmail's
198
228
full feature list.
199
_________________________________________________________________
201
230
G2. Where do I find the latest FAQ and fetchmail sources?
203
232
The latest HTML FAQ is available alongside the latest fetchmail sources at
204
the fetchmail home page: http://fetchmail.berlios.de. You can also usually
233
the fetchmail home page: http://fetchmail.berlios.de/. You can also usually
205
234
find both in the POP mail tools directory on Sunsite.
207
236
A text dump of this FAQ is included in the fetchmail distribution. Because
208
237
it freezes at distribution release time, it may not be completely current.
209
_________________________________________________________________
211
239
G3. I think I've found a bug. Will you fix it?
213
Yes I will, provided you include enough diagnostic information for me to go
214
on. Send bugs to fetchmail-users and patches to fetchmail-devel When
215
reporting bugs, please include the following:
241
The first thing you should to is to upgrade to the newest version of
242
fetchmail, and then see if the problem reproduces. So you'll probably save
243
us both time if you upgrade and test with the latest version before sending
246
I will fix bugs, provided you include enough diagnostic information for me
247
to go on. Send bugs to fetchmail-users. When reporting bugs, please include
216
249
1. Your operating system.
217
250
2. Your compiler version, if you built from source; otherwise, the name and
218
251
origin of the RPM or other binary package you installed.
290
318
way, fetchmail is well enough tested that the easy bugs have long since been
291
319
found). So if you want your bug fixed rapidly, it is not just sufficient but
292
320
nearly necessary that you give me a way to reproduce it.
293
_________________________________________________________________
295
322
G4. I have this idea for a neat feature. Will you add it?
297
Probably not. Most of the feature suggestions I get are for ways to set
298
various kinds of administrative policy or add more spam filtering (the most
299
common one, which I used to get about four million times a week and got
300
really tired of, is for tin-like kill files).
324
If it's reasonable for fetchmail and cannot be solved with reasonable effort
325
outside of fetchmail, perhaps.
302
327
You can do spam filtering better with procmail or maildrop on the server
303
328
side and (if you're the server sysadmin) sendmail.cf domain exclusions. If
304
you really want fetchmail to do it from the client side, yse a preconnect
329
you really want fetchmail to do it from the client side, use a preconnect
305
330
command to call mailfilter.
307
332
You can do other policy things better with the mda option and script
308
333
wrappers around fetchmail. If it's a prime-time-vs.-non-prime-time issue,
309
334
ask yourself whether a wrapper script called from crontab would do the job.
311
I'm not going to do these; fetchmail's job is transport, not policy, and I
312
refuse to change it from doing one thing well to attempting many things
313
badly. One of my objectives is to keep fetchmail simple so it stays
336
fetchmail's first job is transport though, and it should do this well. If a
337
feature would cause fetchmail to deteriorate in other respects, the feature
338
will probably not be added.
316
340
For reasons fetchmail doesn't have other commonly-requested features (such
317
341
as password encryption, or multiple concurrent polls from the same instance
318
of fetchmail) see the design notes.
320
Fetchmail is a mature project, no longer in constant active development. It
321
is no longer my top project, and I am going to be quite reluctant to add
322
features that might either jeopardize its stability or involve me in large
325
All that said, if you have a feature idea that really is about a transport
326
problem that can't be handled anywhere but fetchmail, lay it on me. I'm very
327
accommodating about good ideas.
328
_________________________________________________________________
342
of fetchmail) see ESR's design notes. Note that this document is partially
343
obsoleted by the updated design notes.
330
345
G5. I want to make fetchmail behave like Outlook Express.
334
349
days, typically to be used with the keep option as a sort of poor man's
335
350
newsgroup facility. Microsoft's Outlook Express supports this.
337
This feature won't be added either. Repeat after me: fetchmail's job is
338
transport, not policy. If you want this, write a Perl or Python script, to
339
be run from a cron job, that deletes old messages off your maildrop. Send it
340
to me and I'll put it in the contrib directory.
341
_________________________________________________________________
352
This feature is not yet implemented. It may be at a future date, spare time
353
of developers permitting.
343
355
G6. Is there a mailing list for exchanging tips?
345
There is a fetchmail-users list (fetchmail-users@lists.berlios.de) for
357
There is a fetchmail-users list (fetchmail-users@lists.berlios.de) for bug
358
reports and people who want to discuss configuration issues of fetchmail.
359
It's a Mailman list, see
360
http://lists.berlios.de/mailman/listinfo/fetchmail-users.
362
There is a fetchmail-devel list (fetchmail-devel@lists.berlios.de) for
346
363
people who want to discuss fixes and improvements in fetchmail and help
347
co-develop it. It's a MailMan list, which you can sign up for at
348
http://lists.berlios.de/mailman/listinfo/fetchmail-users. There is also an
364
co-develop it. It's a Mailman list, which you can sign up for at
365
http://lists.berlios.de/mailman/listinfo/fetchmail-devel. There is also an
349
366
announcements-only list, fetchmail-announce@lists.berlios.de, which you can
350
367
sign up for at http://lists.berlios.de/mailman/listinfo/fetchmail-announce.
351
_________________________________________________________________
353
369
G7. So, what's this I hear about a fetchmail paper?
383
398
Most modern Unixes (and effectively all Linux/*BSD systems) come with POP3
384
399
support preconfigured (but beware of the horribly broken POP3 server
385
400
mentioned in D2). An increasing minority also feature IMAP (you can detect
386
IMAP support by running fetchmail in AUTO mode, or by using the `Probe for
401
IMAP support by running fetchmail in AUTO mode, or by using the 'Probe for
387
402
supported protocols' function in the fetchmailconf utility).
389
404
If you have the option, we recommend using or installing an IMAP4rev1
390
server; it has the best facilities for tracking message `seen' states. It
405
server; it has the best facilities for tracking message 'seen' states. It
391
406
also recovers from interrupted connections more gracefully than POP3, and
392
407
enables some significant performance optimizations. The new IMAP 2000 is
393
408
particularly nice, as it supports CRAM-MD5 so you don't have to ship your
635
642
(which tends to improve bandwidth but not necessarily latency).
636
643
_________________________________________________________________
638
B1. Make coughs and dies when building on FreeBSD.
640
The vendor-supplied make on FreeBSD systems can only be used within
641
FreeBSD's "scope", e.g. the ports collection. Type "gmake" to run GNU make
642
and better things will happen.
643
_________________________________________________________________
647
[DEL: B1. Make coughs and dies when building on FreeBSD. :DEL]
649
As of release 6.3.0, fetchmail's Makefile[.in] should work flawlessly with
650
BSD's portable make used on FreeBSD. With older releases, use GNU make
651
(usually installed as gmake).
645
653
B2. Lex bombs out while building the fetchmail lexer.
647
In the immortal words of Alan Cox the last time this came up: ``Take the
648
Solaris lex and stick it up the backside of a passing Sun salesman, then
649
install flex and use that. All will be happier.''
651
I couldn't have put it better myself, and ain't going to try now.
653
(The same problem has been reported under HP-UX v10.20 and IRIX)
654
_________________________________________________________________
655
fetchmail 6.3.0 and newer ship with the lexer and parser in .c formats, so
656
you do not need to use lex unless you hacked the .l or .y files.
658
fetchmail's lexer has been developed with GNU flex, and the lex tools
659
shipped by some UNIX vendors (HP, SGI, Sun) are known to be incapable of
660
compiling fetchmail's lexer.
656
662
B3. I get link failures when I try to build fetchmail.
658
If you get errors resembling these
659
mxget.o(.text+0x35): undefined referenceto `__res_search'
660
mxget.o(.text+0x99): undefined reference to`__dn_skipname'
661
mxget.o(.text+0x11c): undefined reference to`__dn_expand'
662
mxget.o(.text+0x187): undefined reference to`__dn_expand'
664
If you get errors resembling these:
665
mxget.o(.text+0x35): undefined referenceto '__res_search'
666
mxget.o(.text+0x99): undefined reference to '__dn_skipname'
667
mxget.o(.text+0x11c): undefined reference to '__dn_expand'
668
mxget.o(.text+0x187): undefined reference to '__dn_expand'
663
669
make: *** [fetchmail] Error 1
665
671
then you must add "-lresolv" to the LOADLIBS line in your Makefile once you
666
have installed the `bind' package.
668
If you get link errors involving dcgettext, like this:
669
rcfile_y.o: In function `yyparse':
670
rcfile_y.o(.text+0x3aa): undefined reference to `dcgettext__'
671
rcfile_y.o(.text+0x4f2): undefined reference to `dcgettext__'
672
rcfile_y.o(.text+0x5ee): undefined reference to `dcgettext__'
673
rcfile_y.o: In function `yyerror':
674
rcfile_y.o(.text+0xc7c): undefined reference to `dcgettext__'
675
rcfile_y.o(.text+0xcc8): undefined reference to `dcgettext__'
676
rcfile_y.o(.text+0xdf9): more undefined references to `dcgettext__' follow
678
reconfigure with configure --with-included-gettext. This is due to some
679
brain-damage in the GNU internationalization libraries.
680
_________________________________________________________________
672
have installed the 'bind' package.
674
If you get link errors involving dcgettext, like these:
675
rcfile_y.o: In function 'yyparse':
676
rcfile_y.o(.text+0x3aa): undefined reference to 'dcgettext__'
677
rcfile_y.o(.text+0x4f2): undefined reference to 'dcgettext__'
678
rcfile_y.o(.text+0x5ee): undefined reference to 'dcgettext__'
679
rcfile_y.o: In function 'yyerror':
680
rcfile_y.o(.text+0xc7c): undefined reference to 'dcgettext__'
681
rcfile_y.o(.text+0xcc8): undefined reference to 'dcgettext__'
682
rcfile_y.o(.text+0xdf9): more undefined references to 'dcgettext__' follow
684
install an up to date version of GNU gettext, reconfigure and rebuild
685
fetchmail. If that does not help, reconfigure with '--disable-nls' added to
686
the "./configure" command and rebuild.
682
688
B4. I get build failures in the intl directory.
684
690
Reconfigure with --disable-nls and recompile.
686
GNU gettext is an overengineered, fragile pile of crap. I have teetered on
687
the brink of removing support for it entirely several times.
688
691
_________________________________________________________________
693
Fetchmail configuration file grammar questions
690
695
F1. Why does my old .fetchmailrc file no longer work?
692
697
If your file predates 5.8.9
744
749
redesign simplified the code and made the options more orthogonal, but may
745
750
have broken some complex multidrop configurations.
747
Any multidrop configurations that depended on the name just after the `poll'
748
or `skip' keyword being still interpreted as a DNS name for address-matching
749
purposes, even in the presence of a `via' option, will break.
752
Any multidrop configurations that depended on the name just after the 'poll'
753
or 'skip' keyword being still interpreted as a DNS name for address-matching
754
purposes, even in the presence of a 'via' option, will break.
751
756
It is theoretically possible that other unusual configurations (such as
752
757
those using a non-FQDN poll name to generate Kerberos IV tickets) might also
756
761
If your file predates 3.9.5:
758
The `remote' keyword has been changed to `folder'. If you try to use the old
763
The 'remote' keyword has been changed to 'folder'. If you try to use the old
759
764
keyword, the parser will utter a warning.
761
766
If your file predates 3.9:
763
768
It could be because you're using a .fetchmailrc that's written in the old
764
popclient syntax without an explicit `username' keyword leading the first
769
popclient syntax without an explicit 'username' keyword leading the first
765
770
user entry attached to a server entry.
767
This error can be triggered by having a user option such as `keep' or
768
`fetchall' before the first explicit username. For example, if you write
772
This error can be triggered by having a user option such as 'keep' or
773
'fetchall' before the first explicit username. For example, if you write
769
774
poll openmail protocol pop3
770
775
keep user "Hal DeVore" there is hdevore here
772
the `keep' option will generate an entire user entry with the default
777
the 'keep' option will generate an entire user entry with the default
773
778
username (the name of fetchmail's invoking user).
775
780
The popclient compatibility syntax was removed in 4.0. It complicated the
778
783
If your file predates 2.8:
780
The `interface', `monitor' and `batchlimit' options changed after 2.8.
785
The 'interface', 'monitor' and 'batchlimit' options changed after 2.8.
782
They used to be global options with `set' syntax like the batchlimit and
783
logfile options. Now they're per-server options, like `protocol'.
787
They used to be global options with 'set' syntax like the batchlimit and
788
logfile options. Now they're per-server options, like 'protocol'.
785
790
If you had something like
786
791
set interface = "sl0/10.0.2.15"
788
in your .fetchmailrc file, simply delete that line and insert `interface
789
sl0/10.0.2.15' in the server options part of your `defaults' declaration.
793
in your .fetchmailrc file, simply delete that line and insert 'interface
794
sl0/10.0.2.15' in the server options part of your 'defaults' declaration.
791
Do similarly for any `monitor' or `batchlimit' options.
792
_________________________________________________________________
796
Do similarly for any 'monitor' or 'batchlimit' options.
794
798
F2. The .fetchmailrc parser won't accept my all-numeric user name.
802
806
The lexical analyzer in 5.0.6 and beyond is smarter and assumes any token
803
807
following "username" or "password" is a string.
804
_________________________________________________________________
806
809
F3. The .fetchmailrc parser won't accept my host or username beginning with
809
812
See F2. You're caught in an unfortunate crack between the newer-style syntax
810
for negated options (`no keep', `no rewrite' etc.) and the older style
811
run-on syntax (`nokeep', `norewrite' etc.).
813
for negated options ('no keep', 'no rewrite' etc.) and the older style
814
run-on syntax ('nokeep', 'norewrite' etc.).
813
816
Upgrade to a 5.0.6 or later fetchmail, or put string quotes around your
815
_________________________________________________________________
817
F4. I'm getting a `parse error' message I don't understand.
819
F4. I'm getting a 'parse error' message I don't understand.
819
821
The most common cause of mysterious parse errors is putting a server option
820
822
after a user option. Check the manual page; you'll probably find that by
821
moving one or more options closer to the `poll' keyword you can eliminate
823
moving one or more options closer to the 'poll' keyword you can eliminate
824
826
Yes, I know these ordering restrictions are hard to understand.
825
Unfortunately, they're necessary in order to allow the `defaults' feature to
827
Unfortunately, they're necessary in order to allow the 'defaults' feature to
827
829
_________________________________________________________________
831
Configuration questions
829
833
C1. Why do I need a .fetchmailrc when running as root on my own machine?
831
835
Ian T. Zimmerman <itz@rahul.net> asked:
844
848
It won't work if the second line is just "user itz". This is silly.
846
It seems fetchmail decides to RECP the `default local user' (i.e. the uid
847
running fetchmail) unless there are local aliases, and the `default' aliases
850
It seems fetchmail decides to RECP the 'default local user' (i.e. the uid
851
running fetchmail) unless there are local aliases, and the 'default' aliases
848
852
(itz->itz) don't count. They should.
852
856
No they shouldn't. I thought about this for a while, and I don't much like
853
857
the conclusion I reached, but it's unavoidable. The problem is that
854
fetchmail has no way to know, in general, that a local user `itz' actually
858
fetchmail has no way to know, in general, that a local user 'itz' actually
857
861
"Ah!" you say, "Why doesn't it check the password file to see if the remote
869
873
to tinker with the mapping rules, you'll quickly find that all the
870
874
alternatives to the present default are worse or unacceptably more
871
875
complicated or both.
872
_________________________________________________________________
874
877
C2. How can I arrange for a fetchmail daemon to get killed when I log out?
876
879
The easiest way to dispatch fetchmail on logout (which will work reliably
877
880
only if you have just one login going at any time) is to arrange for the
878
command `fetchmail -q' to be called on logout. Under bash, you can arrange
879
this by putting `fetchmail -q' in the file `~/.bash_logout'. Most csh
880
variants execute `~/.logout' on logout. For other shells, consult your shell
881
command 'fetchmail -q' to be called on logout. Under bash, you can arrange
882
this by putting 'fetchmail -q' in the file '~/.bash_logout'. Most csh
883
variants execute '~/.logout' on logout. For other shells, consult your shell
883
886
Automatic startup/shutdown of fetchmail is a little harder to arrange if you
916
918
1. If you're using a SLIP link, the correct device is probably sl0.
917
919
2. If you're using a PPP link, the correct device is probably ppp0.
918
920
3. If you're using a direct connection over a local network such as an
919
ethernet, use the command `netstat -r' to look at your routing table.
921
ethernet, use the command 'netstat -r' to look at your routing table.
920
922
Try to match your mailserver name to a destination entry; if you don't
921
see it in the first column, use the `default' entry. The device name
923
see it in the first column, use the 'default' entry. The device name
922
924
will be in the rightmost column.
924
926
To determine the address and netmask:
925
927
1. If you're talking to slirp, the correct address is probably 10.0.2.15,
926
928
with no netmask specified. (It's possible to configure slirp to present
927
929
other addresses, but that's the default.)
928
2. If you have a static IP address, run `ifconfig <device>', where <device>
930
2. If you have a static IP address, run 'ifconfig <device>', where <device>
929
931
is whichever one you've determined. Use the IP address given after "inet
930
932
addr:". That is the IP address for your end of the link, and is what you
931
933
need. You won't need to specify a netmask.
1011
1009
use the smtphost or smtpname option. See the manual page for details.
1012
1010
_________________________________________________________________
1012
How to make fetchmail play nice with various MTAs
1014
1014
T1. How can I use fetchmail with sendmail?
1016
1016
For most sendmails, no special configuration is required. Eric Allman tells
1017
1017
me that if FEATURE(always_add_domain) is included in sendmail's
1018
1018
configuration, you can leave the rewrite option off.
1020
If your sendmail complains ``sendmail does not relay'', make sure your
1021
sendmail.cf file says Cwlocalhost so that sendmail recognizes `localhost' as
1020
If your sendmail complains "sendmail does not relay", make sure your
1021
sendmail.cf file says Cwlocalhost so that sendmail recognizes 'localhost' as
1022
1022
a name of its host.
1024
1024
If you're mailing from another machine on your local network, also ensure
1057
1057
T=DNS/RFC822/X-Unix,
1058
1058
A=procmail -Y -a $u -d $h
1060
For both hacks, you have to declare `envelope "Delivered-To:"' on the
1061
fetchmail side, to put the virtual domain (e.g. `domain.com') with RELAY
1062
permission into your access file and to add a line reading `domain.com
1063
local:local-pop-user' for the first and `domain.com mdrop:local-pop-user'
1060
For both hacks, you have to declare 'envelope "Delivered-To:"' on the
1061
fetchmail side, to put the virtual domain (e.g. 'domain.com') with RELAY
1062
permission into your access file and to add a line reading 'domain.com
1063
local:local-pop-user' for the first and 'domain.com mdrop:local-pop-user'
1064
1064
for the second hack to your mailertable.
1066
1066
You will notice that if the mail already has a Delivered-To header, sendmail
1067
1067
will not add another. Further, editing sendmail.cf directly is not very
1068
comfortable. Solutions for both problems can be found in Peter `Rattacresh'
1069
Backes' `hybrid' patch against sendmail. Have a look at it, you can find it
1068
comfortable. Solutions for both problems can be found in Peter 'Rattacresh'
1069
Backes' 'hybrid' patch against sendmail. Have a look at it, you can find it
1070
1070
in the contrib subdirectory.
1072
1072
Feel free to try Martijn Lievaart's detailed recipe in the contrib
1092
1091
using qmail, it is possible to set up one fetchmail link to be reliably
1093
1092
collect the mail for an entire domain.
1095
One of the basic features of qmail is the `Delivered-To:' message header.
1094
One of the basic features of qmail is the 'Delivered-To:' message header.
1096
1095
Whenever qmail delivers a message to a local mailbox it puts the username
1097
1096
and hostname of the envelope recipient on this line. The major reason for
1098
1097
this is to prevent mail loops.
1100
1099
To set up qmail to batch mail for a disconnected site the ISP-mailhost will
1101
have normally put that site in its `virtualhosts' control file so it will
1100
have normally put that site in its 'virtualhosts' control file so it will
1102
1101
add a prefix to all mail addresses for this site. This results in mail sent
1103
1102
to 'username@userhost.userdom.dom.com' having a 'Delivered-To:' line of the
1129
1128
Peter Wilson adds:
1131
``My ISP uses "alias-unzzippedcom-" as the prefix, which means that I need
1132
to name my file ".qmail-unzzippedcom-default". This is due to qmail's
1130
"My ISP uses "alias-unzzippedcom-" as the prefix, which means that I need to
1131
name my file ".qmail-unzzippedcom-default". This is due to qmail's
1133
1132
assumption that a message sent to user-xyz is handled by the file
1134
~user/.qmail-xyz (or ~user/.qmail-default).''
1133
~user/.qmail-xyz (or ~user/.qmail-default)."
1136
1135
Luca Olivetti adds:
1138
1137
If you aren't using qmail locally, or you don't want to set up the alias
1139
mechanism described above, you can use the option `qvirtual "mbox-userstr-"'
1138
mechanism described above, you can use the option 'qvirtual "mbox-userstr-"'
1140
1139
in your fetchmail config file to strip the prefix from the local user name.
1141
_________________________________________________________________
1143
1141
T3. How can I use fetchmail with exim?
1200
1197
You may also need to say -smtp_hello_broken_allow=127.0.0.1 in order for
1201
1198
smail to accept the "localhost" that fetchmail normally appends to recipient
1203
_________________________________________________________________
1205
1201
T5. How can I use fetchmail with SCO's MMDF?
1207
1203
MMDF itself is difficult to configure, but it turns out that connecting
1208
1204
fetchmail to MMDF's SMTP channel isn't that hard. You can read an MMDF
1209
1205
recipe that describes replacing a UUCP link with fetchmail feeding MMDF.
1210
_________________________________________________________________
1212
1207
T6. How can I use fetchmail with Lotus Notes?
1214
1209
The Lotus Notes SMTP gateway tries to deduce when it should convert \n to
1215
1210
\r\n, but its rules are not the intuitive and correct-for-RFC822 ones. Use
1217
_________________________________________________________________
1219
1213
T7. How can I use fetchmail with Courier IMAP?
1221
1215
The courier mta doesn't like RCPT addresses that look like
1222
1216
someone@localhost. Work around this with an smtphost or smtpaddress.
1223
_________________________________________________________________
1225
1218
T8. How can I use fetchmail with vbmailshield?
1504
1494
The autodetection works by looking at the hostname in the POP3 greeting
1505
1495
line; if you're accessing Demon Internet through a proxy it may fail. To
1506
1496
force SDPS mode, pick "sdps" as your protocol.
1507
_________________________________________________________________
1509
1498
I3. How can I use fetchmail with usa.net's servers?
1511
Enable `fetchall'. A user reports that the 2.2 version of USA.NET's POP
1512
server reports that you must use the `fetchall' option to make sure that all
1500
Enable 'fetchall'. A user reports that the 2.2 version of USA.NET's POP
1501
server reports that you must use the 'fetchall' option to make sure that all
1513
1502
of the mail is retrieved, otherwise some may be left on the server. This is
1514
1503
almost certainly a server bug.
1545
1533
Fix: Get an email provider that doesn't suck. The pop-up ads on Geocities
1546
1534
are lame, you should boycott them anyway.
1547
_________________________________________________________________
1549
I5. How can I use fetchmail with Hotmail?
1551
You can't, yet. But gotmail or HotWayDaemon might be what you need.
1552
_________________________________________________________________
1536
I5. How can I use fetchmail with Hotmail or Lycos Webmail?
1538
You can't directly. But you can use fetchmail with hotmail or lycos webmail
1539
with the help of the HotWayDaemon daemon. You don't even need to install
1540
hotwayd as a daemon in inetd.conf but can use it as a plugin. Your
1541
configuration should look like this:
1542
poll localhost protocol pop3 tracepolls
1543
plugin "/usr/local/sbin/hotwayd -l 0 -p yourproxy:yourproxyport"
1544
username "youremail@hotmail.com" password "yourpassword"
1547
As a second option you may consider using gotmail.
1554
1549
I6. How can I use fetchmail with MSN?
1571
1565
that if your connection drops in mid-message, it may end up invisibly stuck
1572
1566
on your mail spool. Use the fetchall flag to ensure that it's recovered on
1573
1567
the next cycle.
1574
_________________________________________________________________
1576
I8. How can I use fetchmail with comcast.net?
1578
Stock fetchmail will work with a comcast.net server...but the Maillennium
1579
POP3 server comcat uses seems to have an 80K limit on the length of
1580
downloaded messages if you use POP3 TOP to retrieve. Anything larger is
1581
silently truncated. Don't mistake this for a fetchmail bug. (Reported July
1584
Workaround: use the fetchall option.
1585
_________________________________________________________________
1569
I8. How can I use fetchmail with comcast.net or other Maillennium servers?
1571
Stock fetchmail will work with a Maillennium POP3/PROXY server... but this
1572
server will truncate "TOP" responses after 64&dots;82 kB (we have varying
1573
reports), in violation of Internet Standard #53 aka. RFC-1939 (POP3). Don't
1574
mistake this for a fetchmail bug. (Reported July 2003.) Comcast documented
1575
they haven't understood what this is about in two messages from April 2004.
1577
Beginning with version 6.3.2, fetchmail will fall back to the RETR command
1578
if the greeting string contains "Maillennium POP3/PROXY server", and print a
1579
warning message. This means however that fetchmail has no means to prevent
1580
the "seen" flag from being set on the server (Note that officially, POP3 has
1581
no notion of seen tracking, but it works for some sites.)
1583
Workaround for older versions: use the fetchall option.
1584
_________________________________________________________________
1586
How to set up well-known security and authentication methods
1587
1588
K1. How can I use fetchmail with SOCKS?
1589
1590
Giuseppe Guerini added a --with-socks option that supports linking with
1590
socks library. If you specify the value of this option as ``yes'', the
1591
socks library. If you specify the value of this option as "yes", the
1591
1592
configure script will try to find the Rconnect library and set the makefile
1592
1593
up to link it. You can also specify a directory containing the Rconnect
1595
1596
Alan Schmitt has added a similar --with-socks5 option that may work better
1596
1597
if you have a recent version of the SOCKS library.
1597
_________________________________________________________________
1599
1599
K2. How can I use fetchmail with IPv6 and IPsec?
1601
1601
To use fetchmail with IPv6, you need a system that supports IPv6, the "Basic
1602
Socket Interface Extensions for IPv6" (RFC 2133). This currently means that
1603
you need to have a BSD/OS or NetBSD system with the NRL IPv6+IPsec software
1604
distribution or a Linux system with a 2.2 or later kernel and net-tools. It
1605
should not be hard to build fetchmail on other IPv6 implementations if you
1606
can port the inet6-apps kit.
1608
To use fetchmail with networking security (read: IPsec), you need a system
1609
that supports IPsec, the API described in the "Network Security API for
1610
Sockets" (draft-metz-net-security-api-01.txt), and the inet6-apps kit. This
1611
currently means that you need to have a BSD/OS or NetBSD system with the NRL
1612
IPv6+IPsec software distribution. A Linux IPsec implementation supporting
1613
this API will probably appear in the coming months.
1602
Socket Interface Extensions for IPv6" (RFC 2133).
1615
1604
The NRL IPv6+IPsec software distribution can be obtained from:
1616
1605
http://web.mit.edu/network/isakmp
1618
The inet6-apps kit can be obtained from
1619
http://ftp.ps.pl/pub/linux/IPv6/inet6-apps/.
1621
1607
More information on using IPv6 with Linux can be obtained from:
1622
1608
* http://www.bieringer.de/linux/IPv6/IPv6-HOWTO/IPv6-HOWTO.html
1623
* http://www.ipv6.inner.net/ipv6 (via IPv6)
1624
* http://www.inner.net/ipv6 (via IPv4)
1625
_________________________________________________________________
1627
1610
K3. How can I get fetchmail to work with ssh?
1707
1688
toolkit, something like this may work:
1708
1689
poll MYSERVER port 993 plugin "openssl s_client -connect %h:%p"
1709
1690
protocol imap username MYUSERNAME password MYPASSWORD
1692
You should note that SSL is only secure against a "man-in-the-middle" attack
1693
if the client is able to verify that the peer's public key is the correct
1694
one, and has not been substituted by an attacker. fetchmail can do this in
1695
one of two ways: by verifying the SSL certificate, or by checking the
1696
fingerprint of the peer's public key.
1698
There are three parts to SSL certificate verification: checking that the
1699
domain name in the certificate matches the hostname you asked to connect to;
1700
checking that the certificate expiry date has not passed; and checking that
1701
the certificate has been signed by a known Certificate Authority (CA). This
1702
last step takes some preparation, as you need to install the root
1703
certificates of all the CA's which you might come across.
1705
The easiest way to do this is using the root CA keys supplied in the OpenSSL
1706
distribution, which means you need to download and unpack the source tarball
1707
from www.openssl.org. Once you have done that:
1708
1. mkdir /etc/ssl/certs
1709
2. in the openssl-x.x.x/certs directory: cp *.pem /etc/ssl/certs/
1710
3. in the openssl-x.x.x/tools directory: edit c_rehash and set
1712
4. run "perl c_rehash". This generates a number of symlinks within the
1713
/etc/ssl/certs/ directory
1715
Now in .fetchmailrc, set option sslcertpath to point to this directory:
1716
poll pop3.example.com proto pop3 uidl no dns
1717
user foobar@example.com password xyzzy is foobar ssl sslcertpath /etc/ssl/cer
1720
If the server certificate has not been signed by a known CA (e.g. it is a
1721
self-signed certificate), then this certificate validation will always fail.
1723
Certificate verification is always attempted. If it fails, by default a
1724
warning is printed but the connection carries on (which means you are not
1725
protected against attack). If your server's certificate has been properly
1726
set up and verifies correctly, then add the "sslcertck" option to enforce
1727
validation. If your server doesn't have a valid certificate though (e.g. it
1728
has a self-signed certificate) then it will never verify, and the only way
1729
you can protect yourself is by checking the fingerprint.
1731
To check the peer fingerprint: first use fetchmail -v once to connect to the
1732
host, at a time when you are pretty sure that there is no attack in progress
1733
(e.g. you are not traversing any untrusted network to reach the server).
1734
Make a note of the fingerprint shown. Now embed this in your .fetchmailrc
1735
using the sslfingerprint option: e.g.
1736
poll pop3.example.com proto pop3 uidl no dns
1737
user foobar@example.com password xyzzy is foobar
1738
ssl sslfingerprint "67:3E:02:94:D3:5B:C3:16:86:71:37:01:B1:3B:BC:E2"
1740
When you next connect, the public key presented by the server will be
1741
verified against the fingerprint given. If it's different, it may mean that
1742
a man-in-the-middle attack is in progress - or it might just mean that the
1743
server changed its key. It's up to you to determine which has happened.
1745
K6. How can I tell fetchmail not to use TLS if the server advertises it?
1747
Some servers advertise STLS (POP3) or STARTTLS (IMAP), and fetchmail will
1748
automatically attempt TLS negotiation if SSL was enabled at compile time.
1749
This can however cause problems if the upstream didn't configure his
1750
certificates properly.
1752
In order to prevent fetchmail from trying TLS (STLS, STARTTLS) negotiation,
1756
This restricts fetchmail's SSL/TLS protocol choice from the default "SSLv2,
1757
SSLv3, TLSv1" to the two SSL variants, disabling TLSv1. Note however that
1758
this causes the connection to be unencrypted unless an encrypting "plugin"
1759
is used or SSL is requested explicitly.
1710
1760
_________________________________________________________________
1712
R1. Fetchmail isn't working, and -v shows `SMTP connect failed' messages.
1762
Runtime fatal errors
1764
R1. Fetchmail isn't working, and -v shows 'SMTP connect failed' messages.
1714
1766
Fetchmail itself is probably working, but your SMTP port 25 listener is down
1715
1767
or inaccessible.
1717
1769
The first thing to check is if you can telnet to port 25 on your smtp host
1718
(which is normally `localhost' unless you've specified an smtp option in
1770
(which is normally 'localhost' unless you've specified an smtp option in
1719
1771
your .fetchmailrc or on the command line) and get a greeting line from the
1720
1772
listener. If the SMTP host is inaccessible or the listener is down, fix that
1903
1946
Otherwise you will occasionally get mysterious delivery failures with a
1904
1947
SIGPIPE as the sendmail instance dies. The problem is messages with a single
1905
1948
dot at start of a text line.
1906
_________________________________________________________________
1908
1950
R11. My server is hanging or emitting errors on CAPA.
1910
1952
Your POP3 server is broken. You can work around this with the declaration
1911
1953
auth password in your .fetchmailrc.
1955
R12. Fetchmail isn't working and reports getaddrinfo errors.
1957
1. Make sure you haven't mistyped the host name or address, and that your
1958
DNS is working. If you cannot fix DNS, give the numeric host literal,
1959
for instance, 192.168.0.1
1960
2. Make sure your /etc/services file (or other services database) contains
1961
the necessary service entries. If you cannot fix the services database,
1962
use the --service option and give the numeric port address. Common port
1912
1970
_________________________________________________________________
1914
1974
H1. Fetchmail hangs when used with pppd.
1916
Your problem may be with pppd's `demand' option. We have a report that
1917
fetchmail doesn't play well with it, but works with pppd if `demand' is
1976
Your problem may be with pppd's 'demand' option. We have a report that
1977
fetchmail doesn't play well with it, but works with pppd if 'demand' is
1918
1978
turned off. We have no idea why this is.
1919
_________________________________________________________________
1921
1980
H2. Fetchmail hangs during the MAIL FROM exchange.
2012
2070
option) from the listener. No interrupt can cause it to lose mail.
2014
2072
However, IMAP2bis has a design problem in that its normal fetch command
2015
marks a message `seen' as soon as the fetch command to get it is sent down.
2073
marks a message 'seen' as soon as the fetch command to get it is sent down.
2016
2074
If for some reason the message isn't actually delivered (you take a line hit
2017
2075
during the download, or your port 25 listener can't find enough free disk
2018
space, or you interrupt the delivery in mid-message) that `seen' message can
2076
space, or you interrupt the delivery in mid-message) that 'seen' message can
2019
2077
lurk invisibly in your server mailbox forever.
2021
Workaround: add the `fetchall' keyword to your fetch options.
2079
Workaround: add the 'fetchall' keyword to your fetch options.
2023
2081
Solution: switch to an IMAP4 server.
2024
2082
_________________________________________________________________
2084
Multidrop-mode problems
2026
2086
M1. I've declared local names, but all my multidrop mail is going to root
2029
2089
Somehow your fetchmail is never recognizing the hostname part of recipient
2030
2090
names it parses out of To/Cc/envelope-header lines as matching the name of
2031
2091
the mailserver machine. To check this, run fetchmail in foreground with -v
2032
-v on. You will probably see a lot of messages with the format ``line
2033
rejected, %s is not an alias of the mailserver'' or ``no address matches;
2092
-v on. You will probably see a lot of messages with the format "line
2093
rejected, %s is not an alias of the mailserver" or "no address matches;
2036
2096
These errors usually indicate some kind of DNS configuration problem either
2037
2097
on the server or your client machine.
2039
The easiest workaround is to add a `via' option (if necessary) and add
2099
The easiest workaround is to add a 'via' option (if necessary) and add
2040
2100
enough aka declarations to cover all of your mailserver's aliases, then say
2041
`no dns'. This will take DNS out of the picture (though it means mail may be
2101
'no dns'. This will take DNS out of the picture (though it means mail may be
2042
2102
uncollected if it's sent to an alias of the mailserver that you don't have
2065
2124
If neither of these alternatives is available, multidrop mode may do (though
2066
2125
you are going to get hurt by some mailing list software; see the caveats
2067
2126
under THE USE AND ABUSE OF MULTIDROP MAILBOXES on the man page). If you want
2068
to try it, the way to do it is with the `localdomains' option.
2127
to try it, the way to do it is with the 'localdomains' option.
2070
2129
In general, if you use localdomains you need to make sure of two other
2073
2132
1. You've actually set up your .fetchmailrc entry to invoke multidrop mode.
2075
Many people set a `localdomains' list and then forget that fetchmail wants
2076
to see more than one name (or the wildcard `*') in a `here' list before it
2134
Many people set a 'localdomains' list and then forget that fetchmail wants
2135
to see more than one name (or the wildcard '*') in a 'here' list before it
2077
2136
will do multidrop routing.
2079
2. You may have to set `no envelope'.
2138
2. You may have to set 'no envelope'.
2081
2140
Normally, multidrop mode tries to deduce an envelope address from a message
2082
2141
before parsing the To/Cc/Bcc lines (this enables it to avoid losing to
2111
2168
As of 2.2, the configure script has been hacked so the bind library is
2112
2169
linked only if it is actually needed. So under Linux it won't be, and this
2113
2170
problem should go away.
2114
_________________________________________________________________
2116
2172
M5. I'm seeing long DNS delays before each message is processed.
2118
Use the `aka' option to pre-declare as many of your mailserver's DNS names
2174
Use the 'aka' option to pre-declare as many of your mailserver's DNS names
2119
2175
as you can. When an address's host part matches an aka name, no DNS lookup
2120
2176
needs to be done to check it.
2122
2178
If you're sure you've pre-declared all of your mailserver's DNS names, you
2123
can use the `no dns' option to prevent other hostname parts from being
2179
can use the 'no dns' option to prevent other hostname parts from being
2124
2180
looked up at all.
2126
2182
Sometimes delays are unavoidable. Some SMTP listeners try to call DNS on the
2127
2183
From-address hostname as a way of checking that the address is valid.
2128
_________________________________________________________________
2130
2185
M6. How do I get multidrop mode to work with majordomo?
2187
2241
Some (unusual) mailserver configurations will generate extra Received lines
2188
2242
which you need to skip. To arrange this, use the optional skip prefix
2189
argument of the `envelope' option; you may need to say something like
2190
`envelope 1 Received' or `envelope 2 Received'.
2243
argument of the 'envelope' option; you may need to say something like
2244
'envelope 1 Received' or 'envelope 2 Received'.
2192
The `by' clause doesn't contain a mailserver alias:
2246
The 'by' clause doesn't contain a mailserver alias:
2194
2248
When fetchmail parses a Received line that looks like
2195
2249
Received: from send103.yahoomail.com (send103.yahoomail.com [205.180.60.92])
2196
2250
by iserv.ttns.net (8.8.5/8.8.5) with SMTP id RAA10088
2197
2251
for <ksturgeon@fbceg.org>; Wed, 9 Sep 1998 17:01:59 -0700
2199
it checks to see if `iserv.ttns.net' is a DNS alias of your mailserver
2200
before accepting `ksturgeon@fbceg.org' as an envelope address. This check
2201
might fail if your DNS were misconfigured, or if you were using `no dns' and
2253
it checks to see if 'iserv.ttns.net' is a DNS alias of your mailserver
2254
before accepting 'ksturgeon@fbceg.org' as an envelope address. This check
2255
might fail if your DNS were misconfigured, or if you were using 'no dns' and
2202
2256
had failed to declare iserv.ttns.net as an alias of your server.
2203
_________________________________________________________________
2205
2258
M8. Users are getting multiple copies of messages.
2274
2327
file. There will likely be a line something like
2275
2328
Mlocal, P=/usr/bin/procmail, F=lsDFMShP, S=10, R=20/40, A=procmail -Y -d $u
2277
describing your local delivery agent. Try inserting the `E' option in the
2330
describing your local delivery agent. Try inserting the 'E' option in the
2278
2331
flags part (the F= string). This will make sendmail turn each dangerous
2279
2332
start-of-line From into a >From, preventing programs further downstream from
2281
_________________________________________________________________
2283
X4.My mail is being mangled in a new and different way
2335
X4. My mail is being mangled in a new and different way
2285
2337
The first thing you need to do is pin down what program is doing the
2286
2338
mangling. We don't like getting bug reports about fetchmail that are
2543
2593
hacking potentially fragile startup scripts. To get around it, just touch(1)
2544
2594
the logfile before you run fetchmail (this will have no effect on the
2545
2595
contents of the logfile if it already exists).
2546
_________________________________________________________________
2548
2597
O2. Every time I get a POP or IMAP message the header is dumped to all my
2549
2598
terminal sessions.
2551
2600
Fetchmail uses the local sendmail to perform final delivery, which Netscape
2552
2601
and other clients doesn't do; the announcement of new messages is done by a
2553
daemon that sendmail pokes. There should be a ``biff'' command to control
2602
daemon that sendmail pokes. There should be a "biff" command to control
2557
2606
to turn it off. If this doesn't work, try the command
2560
2609
which is essentially what biff -n will do. If this doesn't work, comment out
2561
any reference to ``comsat'' in your /etc/inetd.conf file and restart inetd.
2610
any reference to "comsat" in your /etc/inetd.conf file and restart inetd.
2563
2612
In Slackware Linux distributions, the last line in /etc/profile is
2717
2759
Unfortunately, this is exactly the way POP3 servers are supposed to behave
2718
2760
on a line drop, according to the RFCs. I recommend switching to IMAP and
2719
2761
using a short expunge interval.
2720
_________________________________________________________________
2722
2763
O10. Why is the received date on all my messages the same?
2724
2765
This is a design choice in your MTA, not fetchmail. It's taking the received
2725
2766
date from the last Received header.
2726
_________________________________________________________________
2728
2768
O11. I keep getting messages that say "Repoll immediately" in my logs.
2730
2770
This is your server barfing on the CAPA probe that fetchmail sends.
2731
2772
If you run fetchmail in daemon mode (say "set daemon 600"), you will get the
2732
2773
message only once per run.
2734
2775
If you set an authentication method explicitly (say, with auth password),
2735
2776
you will never get the message.
2736
_________________________________________________________________
2738
2778
O12. Fetchmail no longer expunges mail on a 451 SMTP response.
2750
2790
keen on checking the sender addresses. This problem typically occurs if your
2751
2791
mail server is not checking the sender addresses, but your local server is.
2753
Or you could declare antispam 451
2793
Or you could declare antispam 451.
2755
2795
Or, you could check your nameserver configuration and query logs for dns
2758
2798
All these issues are not related to fetchmail directly.
2759
_________________________________________________________________
2761
2800
O13. I want timestamp information in my fetchmail logs.
2763
2802
Write a preconnect command in your configuration file that does something
2764
2803
like "date >> $HOME/Procmail/fetchmail.log".
2805
O14. Fetchmail no longer deletes oversized mails with --flush.
2807
Use --limitflush (available since release 6.3.0) to delete oversized mails
2808
along with the --limit option. If you are already having flush in your
2809
rcfile to delete oversized mails, replace it with limitflush to avoid losing
2810
mails unintentionally.
2812
The --flush option is primarily designed to delete mails which have been
2813
read/downloaded but not deleted yet. This option cannot be overloaded to
2814
delete oversized mails as it cannot be guessed whether the user wants to
2815
delete only read/downloaded mails or only oversized mails or both when a
2816
user specifies both --limit and --flush. Hence, a separate --limitflush has
2817
been added to resolve the ambiguity.
2819
O15. Fetchmail always retains the first message in the mailbox.
2821
This happens when fetchmail sees an "X-IMAP:" header in the very first
2822
message in your mailbox. This usually stems from a message like the one
2823
shown below, which is automatically created on your server. This message
2824
shows up if the University of Washington IMAP or PINE software is used on
2825
the server together with a POP2 or POP3 daemon that is not aware of these
2826
messages, such as some versions of Qualcomm Popper (QPOP):
2828
From MAILER-DAEMON Wed Nov 23 11:38:42 2005
2829
Date: 23 Nov 2005 11:38:42 +0100
2830
From: Mail System Internal Data <MAILER-DAEMON@imap.example.org>
2831
Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA
2832
Message-ID: <1132742322@imap.example.org>
2833
X-IMAP: 1132742306 0000000001
2836
This text is part of the internal format of your mail folder, and is not
2837
a real message. It is created automatically by the mail system software.
2838
If deleted, important folder data will be lost, and it will be re-created
2839
with the data reset to initial values.
2841
As this message does not contain useful information, fetchmail is not
2842
retrieving it. And deleting it might slow down the server if you are keeping
2843
messages on the server, and the server would recreate it anyways, that's why
2844
fetchmail does not bother to delete it either.
2846
O16. Why is the Fetchmail FAQ only available in ISO-216 A4 format? How do I get
2847
the FAQ in Letter format?
2849
All the world uses ISO-216:1975 "A4" paper except for North America. Using
2850
A4 format reaches far more people than (formerly known as DIN A4, from
2851
DIN 476) format. Besides that, A4 paper is available in North America. For
2852
further information on the Letter-vs-A4 story, see:
2853
* Markus Kuhn: "International standard paper sizes"
2854
* Brian Forte: "A4 vs US Letter"
2856
Offering the document formatted for two different paper sizes would bloat
2857
the package beyond reason, and formatting in a way that fits A4 and Letter
2858
paper formats would be a waste of paper in most parts of the world. For that
2859
reason, fetchmail only ships with an A4 formatted PDF document.
2861
To create a letter-sized PDF, install HTMLDOC, edit fetchmail-FAQ.book in
2862
the source directory with your favorite text editor, replace --size A4 by
2863
--size letter, and type:
2864
make fetchmail-FAQ.pdf
2765
2865
_________________________________________________________________
2767
Back to Fetchmail Home Page To Site Map $Date: 2003/10/10 19:10:29 $
2770
2868
Eric S. Raymond <esr@thyrsus.com>