]> Pileus Git - ~andy/fetchmail/blob - fetchmail.man
792093fb93699c74e495f1fab0bee1978dfb94f0
[~andy/fetchmail] / fetchmail.man
1 .\" For license terms, see the file COPYING in this directory.
2 .TH fetchmail 8
3 .SH NAME
4 fetchmail \- fetch mail from a POP, IMAP, or ETRN-capable ESMTP server
5
6 .SH SYNOPSIS
7 \fBfetchmail\fR [\fIoptions\fR] [\fImailserver...\fR]
8
9 .SH DESCRIPTION
10 .I fetchmail
11 is a mail-retrieval and forwarding utility; it fetches
12 mail from remote mailservers and forwards it to your local (client)
13 machine's delivery system.  You can then handle the retrieved mail
14 using normal mail user agents such as \fIelm\fR(1) or \fIMail\fR(1).
15 The \fBfetchmail\fR utility can be run in a daemon mode to repeatedly
16 poll one or more systems at a specified interval.
17 .PP
18 The
19 .I fetchmail
20 program can gather mail from servers supporting any of the common
21 mail-retrieval protocols: POP2, POP3, IMAP2bis, and IMAP4.  It can
22 also use the ESMTP ETRN extension.  (The RFCs describing all these
23 protocols are listed at the end of this ducument.)
24 .PP
25 While
26 .I fetchmail
27 is primarily intended to be used over on-demand TCP/IP links (such as
28 SLIP or PPP connections), it may also be useful as a message transfer
29 agent for sites which refuse for security reasons to permit
30 (sender-initiated) SMTP transactions with sendmail.
31 .PP
32 As each message is retrieved \fIfetchmail\fR normally delivers it via SMTP to
33 port 25 on the machine it is running on (localhost), just as though it
34 were being passed in over a normal TCP/IP link.  The mail will then be
35 delivered locally via your system's MTA (Mail Delivery Agent, usually
36 \fIsendmail\fR(8) but your system may use a different one such
37 as \fIsmail\fR, \fImmdf\fR, or \fIqmail\fR).  All the delivery-control
38 mechanisms (such as \fI.forward\fR files) normally available through
39 your system MTA and local delivery agents will therefore work.
40 .PP
41 The behavior of
42 .I fetchmail
43 is controlled by command-line options and a run control file,
44 \fI~/.fetchmailrc\fR, the syntax of which we describe below.  Command-line
45 options override
46 .I ~/.fetchmailrc
47 declarations.
48 .PP
49 Each server name that you specify following the options on the
50 command line will be queried.  If you don't specify any servers
51 on the command line, each server in your 
52 .I ~/.fetchmailrc
53 file will be queried.
54 .PP
55 To facilitate the use of
56 .I fetchmail
57 In scripts, pipelines, etc., it returns an appropriate exit code upon 
58 termination -- see EXIT CODES below.
59
60 .SH OPTIONS
61 The following options modify the behavior of \fIfetchmail\fR.  It is
62 seldom necessary to specify any of these once you have a
63 working \fI.fetchmailrc\fR file set up.
64 .PP
65 Almost all options have a corresponding keyword which can be used to
66 declare them in a 
67 .I fetchmailrc
68 file.
69 .PP
70 Some special options are not covered here, but are documented insttead
71 in sections on AUTHENTICATION and DAEMON MODE which follows.
72 .SS General Options
73 .TP
74 .B \-V, --version
75 Displays the version information for your copy of 
76 .I fetchmail.
77 No mail fetch is performed.
78 Instead, for each server specified, all option information
79 that would be computed if
80 .I fetchmail.
81 were connecting to that server is displayed.  Any non-printables in
82 passwords or other string names are shown as backslashed C-like
83 escape sequences.  This option is useful for verifying that your
84 options are set the way you want them.
85 .TP
86 .B \-c, --check
87 Return a status code to indicate whether there is mail waiting,
88 without actually fetching or deleting mail (see EXIT CODES below).
89 This option turns off daemon mode (in which it would be useless).  It
90 doesn't play well with queries to multiple sites, and doesn't work
91 with ETRN.  It's also prone to false positives if you leave read but
92 undeleted mail in your server mailbox.
93 .TP
94 .B \-s, --silent
95 Silent mode.  Suppresses all progress/status messages that are normally
96 echoed to standard error during a fetch.  The --verbose option
97 overrides this.
98 .TP
99 .B \-v, --verbose
100 Verbose mode.  All control messages passed between 
101 .I fetchmail
102 and the mailserver are echoed to stderr.  Overrides --silent.
103 .TP
104 .B \-a, --all
105 (Keyword: fetchall)
106 Retrieve both old (seen) and new messages from the mailserver.  The
107 default is to fetch only messages the server has not marked seen.
108 Note that POP2 retrieval behaves as though --all is always on (see
109 RETRIEVAL FAILURE MODES below) and this option does not work with ETRN.
110 .TP
111 .B \-k, --keep
112 (Keyword: keep)
113 Keep retrieved messages on the remote mailserver.  Normally, messages 
114 are deleted from the folder on the mailserver after they have been retrieved.
115 Specifying the 
116 .B keep 
117 option causes retrieved messages to remain in your folder on the
118 mailserver.  This option does not work with ETRN.
119 .TP
120 .B \-K, --kill
121 Delete retrieved messages from the remote mailserver.  This
122 option forces retrieved mail to be deleted.  It may be useful if
123 you have specified a default of \fBnokill\fR in your
124 \fI.fetchmailrc\fR.  This option is forced on with ETRN.
125 .TP
126 .B \-F, --flush
127 POP3/IMAP only.  Delete old (previously retrieved) messages from the mailserver
128 before retrieving new messages. This option does not work with ETRN.
129 .SS Protocol and Query Options
130 .TP
131 .B \-p, \--protocol proto
132 (Keyword: proto[col])
133 Specify the protocol to used when communicating with the remote 
134 mailserver.  If no protocol is specified,
135 .I fetchmail
136 will try each of the supported protocols in turn, terminating after
137 any successful attempt.
138 .I proto 
139 may be one of the following:
140 .RS
141 .IP POP2
142 Post Office Protocol 2
143 .IP POP3
144 Post Office Protocol 3
145 .IP APOP
146 Use POP3 with MD5 authentication.
147 .IP RPOP
148 Use POP3 with RPOP authentication.
149 .IP KPOP
150 Use POP3 with Kerberos V4 authentication on port 1109.
151 .IP IMAP
152 IMAP2bis, IMAP4, or IMAP4rev1 (\fIfetchmail\fR autodetects their capabilities).
153 .IP IMAP-K4
154 IMAP4, or IMAP4rev1 (\fIfetchmail\fR autodetects their capabilities)
155 with RFC 1731 Kerberos v4 authentication.
156 .IP ETRN
157 Use the ESMTP ETRN option.
158 .RE
159 All these alternatives work in basically the same way (communicating
160 with standard server daemons to fetch mail already delivered to a
161 mailbox on the server) except ETRN.  The ETRN mode allows you to ask a
162 compliant ESMTP server (such as BSD sendmail at release 8.8.0 or
163 higher) to immediately open a sender-SMTP connection to your
164 client machine and begin forwarding any items addressed to your client
165 machine in the server's queue of undelivered mail.
166 .TP
167 .B \-U, --uidl
168 (Keyword: uidl)
169 Force UIDL use (effective only with POP3).  Force client-side tracking
170 of `newness' of messages.  Use with `keep' to use a mailbox as a baby
171 news drop for a group of users; if the mailbox is periodically purged,
172 every member will get a chance to read the message.
173 .TP
174 .B \-P, --port
175 (Keyword: port)
176 The  option permits you to specify a TCP/IP port to connect on. 
177 This option will seldom be necessary as all the supported protocols have
178 well-established default port numbers.
179 .TP
180 .B \-r folder, --folder folder
181 (Keyword: folder[s])
182 Causes a specified non-default mail folder on the mailserver (or
183 comma-separated list of folders) to be retrieved.  The syntax of the
184 folder name is server-dependent.  This option is not available under
185 POP3 or ETRN.
186 .SS Delivery Control Options
187 .TP
188 .B \-S host, --smtphost host
189 (Keyword: smtp[host])
190 Specify a hunt list of hosts to forward mail to (one or more
191 hostnames, comma-separated).  In ETRN mode, set the host that the
192 mailserver is asked to ship mail to.  Hosts are tried in list order;
193 the first one that is up becomes the forwarding or ETRN target for the
194 current run.
195 .TP
196 .B \-m, \--mda
197 (Keyword: mda)
198 You can force mail to be passed to an MDA directly (rather than
199 forwarded to port 25) with the -mda or -m option.  If \fIfetchmail\fR
200 is running as root, it sets its userid to that of the target user
201 while delivering mail through an MDA.  Some possible MDAs are
202 "/usr/sbin/sendmail -oem", "/usr/lib/sendmail -oem",
203 "/usr/bin/formail", and "/usr/bin/deliver".  Local delivery addresses
204 will be inserted into the MDA command wherever you place a %s.  Do
205 \fInot\fR use an MDA invocation like
206 "sendmail -oem -t" that dispatches on the contents of To/Cc/Bcc, it
207 will create mail loops and bring the just wrath of many postmasters
208 down upon your head.
209 .SS Resource Limit Control Options
210 .TP
211 .B \-l, --limit
212 (Keyword: limit)
213 Takes a maximum octet size argument.  Messages larger than this size
214 will not be fetched, not be marked seen, and will be left on the
215 server (in foreground sessions, the progress messages will note that
216 they are "oversized").  An explicit --limit of 0 overrides any limits set
217 in your run control file. This option is intended for those needing to
218 strictly control fetch time in interactive mode.  It may not be used
219 with daemon mode, as users would never receive a notification that
220 messages were waiting.  This option does not work with ETRN.
221 .TP
222 .B -b, --batchlimit
223 (Keyword: batchlimit)
224 Specify the maximum number of messages that will be shipped to an SMTP
225 listener before the connection is deliberately torn down and rebuilt
226 (defaults to 0, meaning no limit).  An explicit --batchlimit of 0
227 overrides any limits set in your run control file.  While
228 \fBsendmail\fR(8) normally initiates delivery of a message immediately
229 after receiving the message terminator, some SMTP listeners are not so
230 prompt.  MTAs like \fIqmail\fR(8) and \fIsmail\fR(8) may wait till the
231 delivery socket is shut down to deliver.  This may produce annoying
232 delays when
233 .IR fetchmail (8)
234 is processing very large batches.  Setting the batch limit to some
235 nonzero size will prevent these delays.
236 This option does not work with ETRN.
237 .TP
238 .B -B, --fetchlimit
239 (Keyword: fetchlimit)
240 Limit the number of messages accepted from a given server in a single
241 poll.  By default there is no limit. An explicit --fetchlimit of 0
242 overrides any limits set in your run control file.
243 This option does not work with ETRN.
244 .SS Authentication Options
245 .TP
246 .B \-u name, --username name
247 (Keyword: user[name])
248 Specifies the user identification to be used when logging in to the mailserver.
249 The appropriate user identification is both server and user-dependent.  
250 The default is your login name on the client machine that is running 
251 .I fetchmail.
252 See USER AUTHENTICATION below for a complete description.
253 .TP
254 .B \-I specification, --interface specification
255 (Keyword: interface)
256 Require that a specific interface device be up and have a specific local
257 IP address (or range) before polling.  Frequently
258 .I fetchmail
259 is used over a transient point-to-point TCP/IP link established directly
260 to a mailserver via SLIP or PPP.  That is a relatively secure channel.
261 But when other TCP/IP routes to the mailserver exist (e.g. when the link
262 is connected to an alternate ISP), your username and password may be
263 vulnerable to snooping (especially when daemon mode automatically polls
264 for mail, shipping a clear password over the net at predictable
265 intervals).  The --interface option may be used to prevent this.  When
266 the specified link is not up or is not connected to a matching IP
267 address, polling will be skipped.  The format is:
268 .sp
269         interface/iii.iii.iii.iii/mmm.mmm.mmm.mmm
270 .sp
271 The field before the first slash is the interface name (i.e. sl0, ppp0
272 etc.).  The field before the second slash is the acceptable IP address.
273 The field after the second slash is a mask which specifies a range of
274 IP addresses to accept.  If no mask is present 255.255.255.255 is
275 assumed (i.e. an exact match).  This option is currently only supported
276 under Linux.
277 .TP
278 .B \-M interface, --monitor interface
279 (Keyword: monitor)
280 Daemon mode can cause transient links which are automatically taken down
281 after a period of inactivity (e.g. PPP links) to remain up
282 indefinitely.  This option identifies a system TCP/IP interface to be
283 monitored for activity.  After each poll interval, if the link is up but
284 no other activity has occurred on the link, then the poll will be
285 skipped.  This option is currently only supported under Linux.
286 .TP
287 .B \-A, --auth
288 (Keyword: auth[enticate])
289 This option permits you to specify a preauthentication type (see USER
290 AUTHENTICATION below for details).  The possible values are
291 \&`\fBpassword\fR' and `\fBkerberos\fR' (or, for excruciating
292 exactness, `\fBkerberos_v4\fR').  This option is provided
293 primarily for developers; choosing KPOP protocol automatically selects
294 Kerberos preauthentication, and all other alternatives use
295 password authentication (though APOP uses a generated one-time
296 key as the password and IMAP-K4 uses RFC1731 Kerberos v4 authentication).
297 This option does not work with ETRN.
298 .SS Miscellaneous Options
299 .TP
300 .B \-f pathname, --fetchmailrc pathname
301 Specify a non-default name for the 
302 .I .fetchmailrc
303 run control file.  Unless the --version option is also on, the file must have
304 permissions no more open than  0600 (u=rw,g=,o=) or else be /dev/null.
305 .TP
306 .B \-i pathname, --idfile pathname
307 Specify an alternate name for the .fetchids file used to save POP3
308 UIDs. 
309 .TP
310 .B \-n, --norewrite
311 (Keyword: no rewrite)
312 Normally,
313 .I fetchmail
314 edits RFC-822 address headers (To, From, Cc, Bcc, and Reply-To) in
315 fetched mail so that any mail IDs local to the server are expanded to
316 full addresses (@ and the mailserver hostname are appended).  This enables 
317 replies on the client to get addressed correctly (otherwise your
318 mailer might think they should be addressed to local users on the
319 client machine!).  This option disables the rewrite.  (This option is
320 provided to pacify people who are paranoid about having an MTA edit
321 mail headers and want to know they can prevent it, but it is generally
322 not a good idea to actually turn off rewrite.)
323 When using ETRN, the rewrite option is ineffective.
324 .TP
325 .B -E, --envelope
326 (Keyword: envelope)
327 This option changes the header 
328 .I fetchmail
329 assumes will carry a copy of the mail's envelope address.  Normally
330 this is `X-Envelope-To' but as this header is not standard, practice
331 varies. See the discussion of multidrop address handling below.  Note:
332 do \fInot\fR say `envelope "Received"'; this is not necessary as fetchmail
333 will try to parse Received lines if `envelope' is not specified (unless
334 you explicitly disable Received parsing with `no envelope').
335
336 .SH USER AUTHENTICATION
337 Every mode except ETRN requires authentication of the client.
338 Normal user authentication in 
339 .I fetchmail
340 is very much like the authentication mechanism of 
341 .I ftp(1).
342 The correct user-id and password depend upon the underlying security
343 system at the mailserver.  
344 .PP
345 If the mailserver is a Unix machine on which you have an ordinary user 
346 account, your regular login name and password are used with 
347 .I fetchmail.
348 If you use the same login name on both the server and the client machines,
349 you needn't worry about specifying a user-id with the 
350 .B \-u
351 option \-\- 
352 the default behavior is to use your login name on the client machine as the 
353 user-id on the server machine.  If you use a different login name
354 on the server machine, specify that login name with the
355 .B \-u
356 option.  e.g. if your login name is 'jsmith' on a machine named 'mailgrunt',
357 you would start 
358 .I fetchmail 
359 as follows:
360 .IP
361 fetchmail -u jsmith mailgrunt
362 .PP
363 The default behavior of 
364 .I fetchmail
365 is to prompt you for your mailserver password before the connection is
366 established.  This is the safest way to use 
367 .I fetchmail
368 and ensures that your password will not be compromised.  You may also specify
369 your password in your
370 .I ~/.fetchmailrc
371 file.  This is convenient when using 
372 .I fetchmail
373 in daemon mode or with scripts.
374 .PP
375 If you do not specify a password, and
376 .I fetchmail
377 cannot extract one from your
378 .I .fetchmailrc
379 file, it will look for a 
380 .I .netrc
381 file in your home directory before requesting one interactively; if an
382 entry matching the mailserver is found in that file, the password will
383 be used.  See the
384 .IR ftp (1)
385 man page for details of the syntax of the
386 .I .netrc
387 file.  (This feature may allow you to avoid duplicating password
388 information in more than one file.)
389 .PP
390 On mailservers that do not provide ordinary user accounts, your user-id and 
391 password are usually assigned by the server administrator when you apply for 
392 a mailbox on the server.  Contact your server administrator if you don't know 
393 the correct user-id and password for your mailbox account.
394 .PP
395 Early versions of POP3 (RFC1081, RFC1225) supported a crude form of
396 independent authentication using the
397 .I rhosts
398 file on the mailserver side.  Under this RPOP variant, a fixed
399 per-user ID equivalent to a password was sent in clear over a link to
400 a reserved port, with the command RPOP rather than PASS to alert the
401 server that it should do special checking.  RPOP is supported
402 by
403 .I fetchmail
404 (you can specify `protocol RPOP' to have the program send `RPOP'
405 rather than `PASS') but its use is strongly discouraged.  This
406 facility was vulnerable to spoofing and was withdrawn in RFC1460.
407 .PP
408 RFC1460 introduced APOP authentication.  In this variant of POP3,
409 you register an APOP password on your server host (the program
410 to do this with on the server is probably called \fIpopauth\fR(8)).  You
411 put the same password in your 
412 .I .fetchmailrc
413 file.  Each time 
414 .I fetchmail
415 logs in, it sends a cryptographically secure hash of your password and
416 the server greeting time to the server, which can verify it by
417 checking its authorization database. 
418 .PP
419 If your \fIfetchmail\fR was built with Kerberos support and you specify 
420 Kerberos preauthentication (either with --auth or the \fI.fetchmailrc\fR
421 option \fBauthenticate kerberos_v4\fR) it will try to get a Kerberos
422 ticket from the mailserver at the start of each query. 
423 .PP
424 If you use IMAP-K4, \fIfetchmail\fR will expect the IMAP server to have
425 RFC1731-conformant AUTHENTICATE KERBEROS_V4 capability, and will use it.
426 .PP
427 If you are using POP3, and the server issues a one-time-password
428 challenge conforming to RFC1938, \fIfetchmail\fR will use your
429 password as a pass phrase to generate the required response. This
430 avoids sending secrets over the net unencrypted.
431
432 .SH DAEMON MODE
433 The 
434 .B --daemon
435 or
436 .B -d 
437 option runs 
438 .I fetchmail
439 in daemon mode.  You must specify a numeric argument which is a
440 polling interval in seconds.
441 .PP
442 In daemon mode, 
443 .I fetchmail
444 puts itself in background and runs forever, querying each specified
445 host and then sleeping for the given polling interval.
446 .PP
447 Simply invoking
448 .IP
449 fetchmail -d 900
450 .PP
451 will, therefore, poll all the hosts described in your 
452 .I ~/.fetchmailrc
453 file (except those explicitly excluded with the `skip' verb) once
454 every fifteen minutes.
455 .PP
456 It is possible to set a polling interval 
457 in your
458 .I ~/.fetchmailrc
459 file by saying `set demon <interval>', where <interval> is an
460 integer number of seconds.  If you do this, fetchmail will always
461 start in daemon mode unless you override it with the command-line
462 option --daemon 0 or -d0.
463 .PP
464 Only one daemon process is permitted per user; in daemon mode,
465 .I fetchmail
466 makes a per-user lockfile to guarantee this.  The option
467 .B --quit
468 will kill a running daemon process.  Otherwise, calling fetchmail with
469 a daemon in the background sends a wakeup signal to the daemon,
470 forcing it to poll mailservers immediately.  (The wakeup signal is
471 SIGHUP if fetchmail is running as root, SIGUSR1 otherwise.)
472 .PP
473 The 
474 .B -t
475 or
476 .B --timeout
477 option (keyword: timeout)allows you to set a server-nonresponse
478 timeout in seconds.  If a mailserver does not send a greeting message
479 or respond to commands for the given number of seconds,
480 \fIfetchmail\fR will hang up on it.  Without such a timeout
481 \fIfetchmail\fR might hang up indefinitely trying to fetch mail from a
482 down host.  This would be particularly annoying for a \fIfetchmail\fR
483 running in background.
484 .PP
485 The
486 .B -L
487 or
488 .B --logfile
489 option (keyword: set logfile) allows you to redirect status messages
490 emitted while in daemon mode into a specified logfile (follow the
491 option with the logfile name).  The logfile is opened for append, so
492 previous messages aren't deleted.  This is primarily useful for
493 debugging configurations.
494 .PP
495 The
496 .B --syslog
497 option (keyword: syslog) allows you to redirect status and error
498 messages emitted to the
499 .IR syslog (3)
500 system daemon if available.
501 Messages are logged with an id of \fBfetchmail\fR, the facility \fBLOG_MAIL\fR,
502 and priorities \fBLOG_ERR\fR, \fBLOG_ALERT\fR or \fBLOG_INFO\fR.
503 This option is intended for logging status and error messages which
504 indicate the status of the daemon and the results while fetching mail
505 from the server(s).
506 Error messages for command line options and parsing the \fI.fetchmailrc\fR
507 file are still written to stderr, or the specified log file if the
508 .B -L
509 or
510 .B --logfile
511 option was used.
512 .PP
513 The 
514 .B \-N
515 or --nodetach option suppresses detachment of the daemon process
516 from its control terminal.  This is primarily useful for debugging.
517 .PP
518 Note that while running in daemon mode polling a POP2 or POP3 server,
519 transient errors (such as DNS failures or sendmail delivery refusals)
520 may force the fetchall option on for the duration of the next polling
521 cycle.  This is a robustness feature.  It means that if a message is
522 fetched (and thus marked seen by the mailserver) but not delivered
523 locally due to some transient error, it will be re-fetched during the
524 next poll cycle.  (The IMAP logic doesn't delete messages until
525 they're delivered, so this problem does not arise.)
526
527 .SH RETRIEVAL FAILURE MODES
528 The protocols \fIfetchmail\fR uses to talk to mailservers are next to
529 bulletproof.  In normal operation forwarding to port 25, no message is
530 ever deleted (or even marked for deletion) on the host until the SMTP
531 listener on the client has acknowledged to \fIfetchmail\fR that the
532 message has been accepted for delivery.  When forwarding to an MDA,
533 however, there is more possibility of error (because there's no way
534 for fetchmail to get a reliable positive acknowledgement from the MDA).
535 .PP
536 The normal mode of \fIfetchmail\fR is to try to download only `new'
537 messages, leaving untouched (and undeleted) messages you have already
538 read directly on the server (or fetched with a previous \fIfetchmail
539 --keep\fR).  But you may find that messages you've already read on the
540 server are being fetched (and deleted) even when you don't specify
541 --all.  There are several reasons this can happen.
542 .PP
543 One could be that you're using POP2.  The POP2 protocol includes no
544 representation of `new' or `old' state in messages, so \fIfetchmail\fR
545 must treat all messages as new all the time.  But POP2 is obsolete, so
546 this is unlikely.
547 .PP
548 Under POP3, blame RFC1725.  That version of the POP3 protocol
549 specification removed the LAST command, and some POP servers follow it
550 (you can verify this by invoking \fIfetchmail -v\fR to the mailserver
551 and watching the response to LAST early in the query).  The
552 \fIfetchmail\fR code tries to compensate by using POP3's UID feature,
553 storing the identifiers of messages seen in each session until the
554 next session, in the \fI.fetchids\fR file.  But this doesn't track
555 messages seen with other clients, or read directly with a mailer on
556 the host but not deleted afterward.  A better solution would be to
557 switch to IMAP.
558 .PP
559 Another potential POP3 problem might be servers that insert messages
560 in the middle of mailboxes (some VMS implementations of mail are
561 rumored to do this).  The \fIfetchmail\fR code assumes that new
562 messages are appended to the end of the mailbox; when this is not true
563 it may treat some old messages as new and vice versa.  The only 
564 real fix for this problem is to  switch to IMAP.
565 .PP
566 The IMAP code uses the presence or absence of the server flag \eSeen
567 to decide whether or not a message is new.  Under Unix, it counts on
568 your IMAP server to notice the BSD-style Status flags set by mail user
569 agents and set the \eSeen flag from them when appropriate.  All Unix
570 IMAP servers we know of do this, though it's not specified by the IMAP
571 RFCs.  If you ever trip over a server that doesn't, the symptom will
572 be that messages you have already read on your host will look new to
573 the server.  In this (unlikely) case, only messages you fetched with
574 \fIfetchmail --keep\fR will be both undeleted and marked old.
575 .PP
576 In ETRN mode, \fIfetchmail\fR does not actually retrieve messages;
577 instead, it asks the server's SMTP listener to start a queue flush
578 to the client via SMTP.  Therefore it sends only undelivered messages.
579
580 .SH SPAM FILTERING
581 Many SMTP listeners allow administrators to set up `spam filters' that
582 block unsolicited email from specified domains.  A MAIL FROM line that
583 triggers this feature will elicit an SMTP response which
584 (unfortunately) varies according to the listener.
585 .PP
586 Newer versions of 
587 .I sendmail
588 return an error code of 571.  This return value
589 is blessed by RFC1893 as "Delivery not authorized, message refused".
590 .PP
591 According to current drafts of the replacement for RFC821, the correct
592 thing to return in this situation is 550 "Requested action not taken:
593 mailbox unavailable" (the draft adds "[E.g., mailbox not found, no
594 access, or command rejected for policy reasons].").
595 .PP
596 The
597 .I exim
598 MTA returns 501 "Syntax error in parameters or arguments" , but will
599 move to 550 soon.
600 .PP
601 The
602 .I fetchmail
603 code recognizes any of these error codes and discards the message.  This is the
604 .I only
605 circumstance under which fetchmail ever discards mail.
606 .P
607 If
608 .I fetchmail
609 is fetching from an IMAP server, the antispam response will be detected and
610 the message rejected immediately after the headers have been fetched,
611 without reading the message body.  Thus, you won't pay for downloading 
612 spam message bodies.
613
614 .SH THE RUN CONTROL FILE
615 The preferred way to set up fetchmail (and the only way if you want to
616 avoid specifying passwords each time it runs) is to write a
617 \&\fI.fetchmailrc\fR file in your home directory.  When there is a
618 conflict between the command-line arguments and the arguments in this
619 file, the command-line arguments take precedence.
620 .PP
621 To protect the security of your passwords, when --version is not on
622 your \fI~/.fetchmailrc\fR may not have more than 0600 (u=rw,g=,o=) permissions;
623 .I fetchmail
624 will complain and exit otherwise.
625 .PP
626 You may read the \fI.fetchmailrc\fR file as a list of commands to 
627 be executed when 
628 .I fetchmail
629 is called with no arguments.
630 .PP
631 Comments begin with a '#' and extend through the end of the line.
632 Otherwise the file consists of a series of server entries or global
633 option statements in a free-format, token-oriented syntax.
634 .PP
635 There are four kinds of tokens: grammar keywords, numbers
636 (i.e. decimal digit sequences), unquoted strings, and quoted strings.
637 A quoted string is bounded by double quotes and may contain
638 whitespace (and quoted digits are treated as a string).  An unquoted
639 string is any whitespace-delimited token that is neither numeric, string
640 quoted nor contains the special characters `,', `;', `:', or `='.
641 .PP
642 Any amount of whitespace separates tokens in server entries, but is
643 otherwise ignored. You may use standard C-style escapes (\en, \et,
644 \eb, octal, and hex) to embed non-printable characters or string
645 delimiters in strings.
646 .PP
647 Each server entry consists of one of the keywords `poll' or `skip',
648 followed by a server name, followed by server options, followed by any
649 number of user descriptions.
650 .PP
651 The `poll' verb tells fetchmail to query this host when it is run with
652 no arguments.  The `skip' verb tells
653 .I fetchmail 
654 not to poll this host unless it is explicitly named on the command
655 line.  (The `skip' verb allows you to experiment with test entries
656 safely, or easily disable entries for hosts that are temporarily down.)
657 .PP
658 Legal server options are:
659
660     via
661     protocol (or proto)
662     port
663     authenticate (or auth)
664     timeout
665     envelope
666     aka
667     interface
668     monitor
669     dns
670     no dns
671
672 Legal user options are
673
674     username (or user)
675     is
676     to
677     password (or pass)
678     folder
679     smtphost (or smtp)
680     mda
681     preconnect
682     keep
683     flush
684     fetchall
685     rewrite
686     stripcr
687     forcecr
688     pass8bits
689     dns
690     no keep
691     no flush
692     no fetchall
693     no rewrite
694     no stripcr
695     no forcecr
696     no pass8bits
697     no dns
698     no envelope
699     limit
700     batchlimit
701     fetchlimit
702     syslog
703 .PP
704 The 'folder' and 'smtphost' options can take a space- or
705 comma-separated list of names following them.
706 .PP
707 All options correspond to the obvious command-line arguments, except
708 the following: `via', `interval', `aka', `is', `to', `dns'/`no dns',
709 \&`password', \&`preconnect', `localdomains', `stripcr'/`no stripcr' ,
710 \&`forcecr'/`no forcecr', `pass8bits'/`no pass8bits' and `no
711 received'.
712 .PP
713 The `via' option is for use with ssh, or if you want to have more
714 than one configuration pointing at the same site.  If it is present,
715 the string argument will be taken as the actual DNS name of the 
716 mailserver host to query.  So, for example, you can say:
717
718 .nf
719 poll mailhost.net via localhost port 1234 with pop3:
720         preconnect "ssh -f -L 1234:mailhost.net:110 mailhost.net sleep 20 </dev/null >/dev/null";
721 .fi
722
723 This will override the argument of poll, which can simply be a
724 distinct label for the configuration.  The poll name will still be the
725 one you would give on the command line to explicitly query this host.
726 It will also still be used as a possible match in multidrop mode, in
727 case it is (as in this case) the real host name.
728 .PP
729 The `interval' option (which takes a numeric argument) allows you to poll a
730 server less frequently than the basic poll interval.  If you say
731 \&`interval N' the server this option is attached to will only be
732 queried every N poll intervals. 
733 .PP
734 The `is' or `to' keywords associate the following local (client)
735 name(s) (or server-name to client-name mappings separated by =) with
736 the mailserver user name in the entry.  If an is/to list has `*' as
737 its last name, unrecognized names are simply passed through.
738 .PP
739 A single local name can be used to support redirecting your mail when
740 your username on the client machine is different from your name on the
741 mailserver.  When there is only a single local name, mail is forwarded
742 to that local username regardless of the message's Received, To, Cc,
743 and Bcc headers.  In this case 
744 .I fetchmail
745 never does DNS lookups.
746 .PP
747 When there is more than one local name (or name mapping) the
748 \fIfetchmail\fR code does look at the Received, To, Cc, and Bcc
749 headers of retrieved mail (this is `multidrop mode').  It looks for
750 addresses with hostname parts that match your `aka' or `localdomains'
751 options, and usually also for hostname parts which DNS tells it are
752 aliases of the mailserver.  See the discussion of `dns',
753 `localdomains', and `aka' for details on how matching addresses are
754 handled.  If \fIfetchmail\fR cannot match any mailserver usernames or
755 localdomain addresses, the default recipient is the calling user.
756 .PP
757 The `dns' option (normally on) controls the way addresses from
758 multidrop mailboxes are checked.  On, it enables logic to check each
759 host address that doesn't match an `aka' or `localdomains' declaration
760 by looking it up with DNS.  When a mailserver username is recognized
761 attached to a matching hostname part, its local mapping is added to
762 the list of local recipients.
763 .PP
764 The `aka' option is for use with multidrop mailboxes.  It allows you
765 to pre-declare a list of DNS aliases for a server.  This is an
766 optimization hack that allows you to trade space for speed.  When
767 .IR fetchmail ,
768 while processing a multidrop mailbox, grovels through message headers
769 looking for names of the mailserver, pre-declaring common ones can
770 save it from having to do DNS lookups.
771 .PP
772 The `localdomains' option allows you to declare a list of domains
773 which fetchmail should consider local.  When fetchmail is parsing
774 address lines in multidrop modes, and a trailing segment of a host
775 name matches a declared local domain, that address is passed through
776 to the listener or MDA unaltered (local-name mappings are \fInot\fR
777 applied).
778 .PP
779 If you are using `localdomains', you may also need to specify \&`no
780 envelope', which disables \fIfetchmail\fR's normal attempt to deduce
781 an envelope address from the Received line or X-Envelope-To header or
782 whatever header has been previously set by `envelope'.  If you set `no
783 envelope' in the defaults entry it is possible to undo that in
784 individual entries by using `envelope <string>'.
785 .PP
786 The \fBpassword\fR option requires a string argument, which is the password
787 to be used with the entry's server.
788 .PP
789 The `preconnect' keyword allows you to specify a shell command to be
790 executed just before each time
791 .I fetchmail
792 establishes a mailserver connection.  This may be useful if you are 
793 attempting to set up secure POP connections with the aid of
794 .IR ssh (1).
795 .PP
796 The `forcecr' option controls whether lines terminated by LF only are
797 given CRLF termination before forwarding.  Strictly speaking RFC821
798 requires this, but few MTAs enforce the requirement it so this option
799 is normally off (only one such MTA, qmail, is in significant use at
800 time of writing).  
801 .PP
802 The `stripcr' option controls whether carriage returns are stripped
803 out of retrieved mail before it is forwarded.  It is normally not
804 necessary to set this, because it defaults to `on' (CR stripping
805 enabled) when there is an MDA declared but `off' (CR stripping
806 disabled) when forwarding is via SMTP.  If `stripcr' and `forcecr' are
807 both on, `stripcr' will override.
808 .PP
809 The `pass8bits' option exists to cope with Microsoft mail programs that
810 stupidly slap a "Content-Transfer-Encoding: 7bit" on everything.  With
811 this option off (the default) and such a header present, 
812 .I fetchmail
813 declares BODY=7BIT to an ESMTP-capable listener; this causes problems for
814 messages actually using 8-bit ISO or KOI-8 character sets, which will
815 be garbled by having the high bits of all characters stripped.  If
816 \&`pass8bits' is on, 
817 .I fetchmail
818 is forced to declare BODY=8BITMIME to any ESMTP-capable listener.  If
819 the listener is 8-bit-clean (as all the major ones now are) the right
820 thing will probably result.
821 .PP
822 Legal protocol identifiers are
823
824     auto (or AUTO)
825     pop2 (or POP2)
826     pop3 (or POP3)
827     imap (or IMAP)
828     imap-k4 (or IMAP-K4)
829     apop (or APOP)
830     kpop (or KPOP)
831
832 .PP
833 Legal authentication types are `password' or `kerberos'.  The former
834 specifies authentication by normal transmission of a password (the
835 password may be plaintext or subject to protocol-specific encryption
836 as in APOP); the second tells \fIfetchmail\fR to try to get a Kerberos
837 ticket at the start of each query instead, and send an arbitrary
838 string as the password.
839 .PP
840 Specifying `kpop' sets POP3 protocol over port 1109 with Kerberos V4
841 preauthentication.  These defaults may be overridden by later options.
842 .PP
843 You can use the noise keywords `and', `with',
844 \&`has', `wants', and `options' anywhere in an entry to make
845 it resemble English.  They're ignored, but but can make entries much
846 easier to read at a glance.  The punctuation characters ':', ';' and
847 \&',' are also ignored.
848 .PP
849 The words `here' and `there' have useful English-like
850 significance.  Normally `user eric is esr' would mean that 
851 mail for the remote user `eric' is to be delivered to `esr',
852 but you can make this clearer by saying `user eric there is esr here',
853 or reverse it by saying `user esr here is eric there'
854 .PP
855 For backward compatibility, the word `server' is a synonym for `poll'.
856 .PP
857 There are currently three global option statements; `set logfile = '
858 followed by a string sets the same global specified by --logfile.  A
859 command-line --logfile option will override this.  Also, `set daemon'
860 sets the poll interval as --daemon does.  This can be overridden by
861 a command-line --daemon option; in particular --daemon 0 can be used 
862 to force foreground operation. Finally, `set syslog' sends log
863 messages to syslogd(8).
864 .PP
865 Basic format is:
866
867 .nf
868   poll SERVERNAME protocol PROTOCOL username NAME password PASSWORD 
869 .fi
870 .PP
871 Example:
872
873 .nf
874   poll pop.provider.net protocol pop3 username jsmith password secret1
875 .fi
876 .PP
877 Or, using some abbreviations:
878
879 .nf
880   poll pop.provider.net proto pop3 user jsmith password secret1
881 .fi
882 .PP
883 Multiple servers may be listed:
884
885 .nf
886   poll pop.provider.net proto pop3 user jsmith pass secret1
887   poll other.provider.net proto pop2 user John.Smith pass My^Hat
888 .fi
889
890 Here's a version of those two with more whitespace and some noise words: 
891
892 .nf
893   poll pop.provider.net proto pop3
894       user jsmith, with password secret1, is jsmith here;
895   poll other.provider.net proto pop2:
896       user John.Smith, with password My^Hat, is John.Smith here;
897 .fi
898
899 This version is much easier to read and doesn't cost significantly
900 more (parsing is done only once, at startup time).
901
902 .PP
903 If you need to include whitespace in a parameter string, enclose the
904 string in double quotes.  Thus:
905
906 .nf
907   poll mail.provider.net with proto pop3:
908         user jsmith there has password "u can't krak this"
909                     is jws here and wants mda "/bin/mail"
910 .fi
911
912 You may have an initial server description headed by the keyword
913 `defaults' instead of `poll' followed by a name.  Such a record
914 is interpreted as defaults for all queries to use. It may be overwritten
915 by individual server descriptions.  So, you could write:
916
917 .nf
918   defaults proto pop3
919         user jsmith
920   poll pop.provider.net
921         pass secret1
922   poll mail.provider.net
923         user jjsmith there has password secret2
924 .fi
925
926 It's possible to specify more than one user per server (this is only
927 likely to be useful when running fetchmail in daemon mode as root).
928 The `user' keyword leads off a user description, and every user specification
929 in a multi-user entry must include it.  Here's an example:
930
931 .nf
932   poll pop.provider.net proto pop3 port 3111
933         user jsmith with pass secret1 is smith here
934         user jones with pass secret2 is jjones here
935 .fi
936
937 This associates the local username `smith' with the pop.provider.net
938 username `jsmith' and the local username `jjones' with the
939 pop.provider.net username `jones'.
940 .PP
941 Here's what a simple retrieval configuration for a multi-drop mailbox
942 looks like:
943
944 .nf
945   poll pop.provider.net:
946         user maildrop with pass secret1 to golux hurkle=happy snark here
947 .fi
948
949 This says that the mailbox of account `maildrop' on the server is a
950 multi-drop box, and that messages in it should be parsed for the
951 server user names `golux', `hurkle', and `snark'.  It further
952 specifies that `golux' and `snark' have the same name on the
953 client as on the server, but mail for server user `hurkle' should be
954 delivered to client user `happy'.
955 .PP
956 Here's an example of another kind of multidrop connection:
957
958 .nf
959   poll pop.provider.net localdomains loonytoons.org:
960         user maildrop with pass secret1 to esr * here
961 .fi
962
963 This also says that the mailbox of account `maildrop' on the server is
964 a multi-drop box.  It tells fetchmail that any address in the
965 loonytoons.org domain (including subdomain addresses like
966 `joe@daffy.loonytoons.org') should be passed through to the local SMTP
967 listener without modification.  Be careful of mail loops if you do this!
968
969 .SH THE USE AND ABUSE OF MULTIDROP MAILBOXES
970 Use the multiple-local-recipients feature with caution -- it can bite.
971 Also note that all multidrop features are ineffective in ETRN mode.
972
973 .SS Header vs. Envelope addresses 
974 The fundamental problem is that by having your mailserver toss several
975 peoples' mail in a box, you may have thrown away potentially vital
976 information about who each piece of mail was actually addressed to
977 (the `envelope address', as opposed to the header addresses in the RFC822
978 To/Cc/Bcc headers).  This `envelope address' is the address you need
979 in order to reroute mail properly.
980 .PP
981 Sometimes 
982 .I fetchmail
983 can deduce the envelope address.  If the mailserver MTA is
984 .I sendmail
985 and the item of mail had just one recipient, the MTA will have written
986 a `for' clause that gives the envelope addressee into its Received
987 header. But this doesn't work reliably for other MTAs, nor if there is more
988 than one recipient.
989 .PP
990 Alternatively, some SMTP listeners and/or mail servers insert a header
991 in each message containing a copy of the envelope addresses.  This
992 header (when it exists) is often `X-Envelope-To'.  Fetchmail's
993 assumption about this can be changed with the -E or `envelope' option.
994 Note that writing an envelope header of this kind exposes the names
995 of recipients to all receivers of the messages; it is therefore
996 regarded by some administrators as a security/privacy problem.
997 .PP
998 Sometimes, unfortunately, neither of these methods works.  When they
999 both fail, fetchmail must fall back on the contents of To/Cc/Bcc
1000 headers to try to determine recipient addressees -- and these are not
1001 reliable.  In particular, mailing-list software often ships mail with
1002 only the list broadcast address in the To header.
1003 .PP
1004 When
1005 .I fetchmail
1006 cannot deduce a recipient address that is local, and the intended
1007 recipient address was anyone other than fetchmail's invoking user,
1008 mail will get lost.  This is what makes the multidrop feature risky.
1009
1010 .SS Good Ways To Use Multidrop Mailboxes
1011 Multiple local names can be used to administer a mailing list from the
1012 client side of a \fIfetchmail\fR collection.  Suppose your name is
1013 \&`esr', and you want to both pick up your own mail and maintain a mailing
1014 list called (say) "fetchmail-friends", and you want to keep the alias
1015 list on your client machine.
1016 .PP
1017 On your server, you can alias \&`fetchmail-friends' to `esr'; then, in
1018 your \fI.fetchmailrc\fR, declare \&`to esr fetchmail-friends here'.
1019 Then, when mail including `fetchmail-friends' as a local address
1020 gets fetched, the list name will be appended to the list of
1021 recipients your SMTP listener sees.  Therefore it will undergo alias
1022 expansion locally.  Be sure to include `esr' in the local alias
1023 expansion of fetchmail-friends, or you'll never see mail sent only to
1024 the list.  Also be sure that your listener has the "me-too" option set
1025 (sendmail's -oXm command-line option or OXm declaration) so your name
1026 isn't removed from alias expansions in messages you send.
1027 .PP
1028 This trick is not without its problems, however.  You'll begin to see
1029 this when a message comes in that is addressed only to a mailing list
1030 you do \fInot\fR have declared as a local name.  Each such message
1031 will feature an `X-Fetchmail-Warning' header which is generated
1032 because fetchmail cannot find a valid local name in the recipient
1033 addresses.  Such messages default (as was described above) to being
1034 sent to the local user running
1035 .IR fetchmail ,
1036 but the program has no way to know that that's actually the right thing.
1037
1038 .SS Bad Ways To Abuse Multidrop Mailboxes
1039 Multidrop mailboxes and 
1040 .I fetchmail
1041 serving multiple users in daemon mode do not mix.  The problem, again, is
1042 mail from mailing lists, which typically does not have an individual
1043 recipient address on it.   Unless 
1044 .I fetchmail
1045 can deduce an envelope address, such mail will only go to the account
1046 running fetchmail (probably root).
1047 .PP
1048 If you're tempted to use 
1049 .I fetchmail 
1050 to retrieve mail for multiple users via POP or IMAP, think again.
1051 It would be smarter to just let it sit in the mailserver's queue and
1052 use ETRN mode to trigger SMTP sends periodically (of course, this
1053 means you have to poll more frequently than the mailserver's expiry
1054 period).  If you can't arrange this, try setting up a UUCP feed.
1055
1056 .SS Speeding Up Multidrop Checking
1057 Normally, when multiple user are declared 
1058 .I fetchmail
1059 extracts recipient addresses as described above and checks each host
1060 part with DNS to see if it's an alias of the mailserver.  If so, the
1061 name mappings described in the to ... here declaration are done and
1062 the mail locally delivered.
1063 .PP
1064 This is the safest but also slowest method.  To speed it up,
1065 pre-declare mailserver aliases with `aka'; these are checked before
1066 DNS lookups are done.  If you're certain your aka list contains
1067 .B all
1068 DNS aliases of the mailserver (and all MX names pointing at it) 
1069 you can declare `no dns' to suppress DNS lookups entirely and
1070 \fIonly\fR match against the aka list.
1071
1072 .SH EXIT CODES
1073 To facilitate the use of 
1074 .I fetchmail
1075 in shell scripts, an exit code is returned to give an indication
1076 of what occurred during a given connection.
1077 .PP
1078 The exit codes returned by 
1079 .I fetchmail
1080 are as follows:
1081 .IP 0
1082 One or more messages were successfully retrieved.
1083 .IP 1
1084 There was no mail awaiting retrieval.  (There may have been old mail still
1085 on the server but not selected for retrieval.)
1086 .IP 2
1087 An error was encountered when attempting to open a socket for the POP 
1088 connection.  If you don't know what a socket is, don't worry about it --
1089 just treat this as an 'unrecoverable error'.
1090 .IP 3
1091 The user authentication step failed.  This usually means that a bad 
1092 user-id, password, or APOP id was specified.
1093 .IP 4
1094 Some sort of fatal protocol error was detected.
1095 .IP 5
1096 There was a syntax error in the arguments to 
1097 .I fetchmail.
1098 .IP 6
1099 The run control file had bad permissions.
1100 .IP 7
1101 There was an error condition reported by the server.  Can also
1102 fire if
1103 .I fetchmail
1104 timed out while waiting for the server.
1105 .IP 8
1106 Client-side exclusion error.  This means 
1107 .I fetchmail
1108 either found another copy of itself already running, or failed in such
1109 a way that it isn't sure whether another copy is running.
1110 .IP 9
1111 The user authentication step failed because the server responded "lock
1112 busy".  Try again after a brief pause!  This error is not implemented
1113 for all protocols, nor for all servers.  If not implemented for your
1114 server, "3" will be returned instead, see above.  May be returned when
1115 talking to qpopper or other servers that can respond with "lock busy"
1116 or some similar text containing the word "lock".
1117 .IP 10
1118 The 
1119 .I fetchmail.
1120 run failed while trying to do an SMTP port open or transaction.
1121 .IP 11
1122 Internal error.  You should see a message on standard error with
1123 details.
1124 .PP
1125 When
1126 .I fetchmail
1127 queries more than one host, return status is 0 if \fIany\fR query
1128 successfully retrieved mail. Otherwise the returned error status is
1129 that of the last host queried.
1130
1131 .SH AUTHOR
1132 Eric S. Raymond <esr@snark.thyrsus.com>.  
1133 This program is descended from and replaces 
1134 .IR popclient , 
1135 by Carl Harris <ceharris@mal.com>; the internals are quite different, 
1136 but some of its interface design is directly traceable to that
1137 ancestral program.
1138
1139 .SH FILES
1140 .TP 5
1141 ~/.fetchmailrc
1142 default run control file
1143 .TP 5
1144 ~/.fetchids
1145 default location of file associating hosts with last message IDs seen
1146 (used only with newer RFC1725-compliant POP3 servers supporting the
1147 UIDL command).
1148 .TP 5
1149 ~/.netrc 
1150 your FTP run control file, which (if present) will be searched for
1151 passwords as a last resort before prompting for one interactively.
1152 .TP 5
1153 ~/.fetchmail
1154 lock file to help prevent concurrent runs (non-root mode).
1155 .TP 5
1156 /var/run/fetchmail.pid
1157 lock file to help prevent concurrent runs (root mode).
1158
1159 .SH ENVIRONMENT
1160 For correct initialization, 
1161 .I fetchmail
1162 requires either that both the USER and HOME environment variables are
1163 correctly set, or that \fBgetpwuid\fR(3) be able to retrieve a password
1164 entry from your user ID.
1165
1166 .SH SIGNALS
1167 If a
1168 .I fetchmail
1169 daemon is running as root, SIGHUP wakes it up from its sleep phase and
1170 forces a poll of all non-skipped servers (this is in accordance with
1171 the usual conventions for system daemons).
1172 .PP
1173 If
1174 .I fetchmail
1175 is running in daemon mode as non-root, use SIGUSR1 to wake it (this is
1176 so SIGHUP due to logout can retain the default action of killing it).
1177 .PP
1178 Running
1179 .I fetchmail
1180 in foreground while a background fetchmail is running will do
1181 whichever of these is appropriate to wake it up.
1182
1183 .SH BUGS AND KNOWN PROBLEMS
1184 The RFC822 parser used in multidrop mode chokes on some @-addresses that
1185 are technically legal but bizarre.  Strange uses of quoting and
1186 embedded comments are likely to confuse it.
1187 .PP
1188 Use of any of the supported protocols other than POP3 with OTP, APOP,
1189 KPOP, IMAP-K4, or ETRN requires that the program send unencrypted
1190 passwords over the TCP/IP connection to the mailserver.  This creates
1191 a risk that name/password pairs might be snaffled with a packet
1192 sniffer or more sophisticated monitoring software.  Under Linux, the
1193 --interface option can be used to restrict polling to availability of
1194 a specific interface device with a specific local IP address, but
1195 snooping is still possible if (a) either host has a network device
1196 that can be opened in promiscuous mode, or (b) the intervening network
1197 link can be tapped.
1198 .PP
1199 Send comments, bug reports, gripes, and the like to Eric S. Raymond
1200 <esr@thyrsus.com>.  An HTML FAQ is available at the fetchmail home
1201 page; surf to http://www.ccil.org/~esr/fetchmail or do a WWW search
1202 for pages with `fetchmail' in their titles.
1203
1204 .SH SEE ALSO
1205 elm(1), mail(1), sendmail(8), popd(8), imapd(8)
1206 .SH APPLICABLE STANDARDS
1207 .TP 5
1208 SMTP/ESMTP:
1209 RFC 821, RFC 1869, RFC 1652, RFC 1870, RFC1983, RFC 1985
1210 .TP 5
1211 mail:
1212 RFC 822
1213 .TP 5
1214 POP2:
1215 RFC 937
1216 .TP 5
1217 POP3:
1218 RFC 1081, RFC 1225, RFC 1460, RFC 1725, RFC 1939
1219 .TP 5
1220 APOP:
1221 RFC 1460, RFC 1725, RFC 1939
1222 .TP 5
1223 RPOP:
1224 RFC 1081, RFC 1225
1225 .TP 5
1226 IMAP2/IMAP2BIS:
1227 RFC 1176, RFC 1732
1228 .TP 5
1229 IMAP4:
1230 RFC 1730, RFC 1731, RFC 1732, RFC 2060, RFC 2061
1231 .TP 5
1232 ETRN:
1233 RFC 1985
1234 .TP 5
1235 OTP:
1236 RFC 1938