aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/fetchmaildistrib
blob: 00cc19107230abc10071c94d5c23cf42aa140d0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#/bin/bash
#
# fetchmaildistrib --- Distribute central fetchmail knowledge.
#
# The central fetchmail database, /etc/fetchmail, contains all accounts that
# are to be fetched by the root's daemon. Often, a user desires quicker
# access (e.g., when testing some email path). In such cases, the destination
# user (marked as is USER here in the poll lines) should set up a ~/.fetchmailrc
# for himself. This scripts generates such lines from the central file.
#
# By Rick van Rein.

# From stdin, select poll lines for user $1
function selectuser () {
	grep ^poll | grep "is $1 here"
}


for i in `cut -d: -f1 </etc/passwd`
do	homedir=`grep ^$i: /etc/passwd | cut -d: -f6`
	fetchfile=`selectuser $i </etc/fetchmailrc`
	if [ -z "$fetchfile" ]
	then	rm -f $homedir/.fetchmailrc
	else	cp /dev/null $homedir/.fetchmailrc
		chmod go-rwx $homedir/.fetchmailrc
		grep ^defaults /etc/fetchmailrc >>$homedir/.fetchmailrc
		selectuser $i </etc/fetchmailrc >>$homedir/.fetchmailrc
	fi
done
*/ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
# fetchmail control file sample
#
# This file (or one of your own creation, rather) should be located 
# in your home directory with the name .fetchmailrc.  Permissions on this
# file may be no greater than -rw------- (0600), or fetchmail will refuse to
# use it.
#
# To see what effect your ~/.fetchmailrc file has, do 
#
#	fetchmail --version
#
# This will display the fetchmail version number and an explanation
# in English of what the currently set options and defaults mean.
#
# Comments begin with a '#' and extend through the end of the line.
# Blank lines between server entries are ignored.
# Keywords and identifiers are case sensitive.
# When there is a conflict between the command-line arguments and the
# arguments in this file, the command-line arguments take precedence.
#
# Legal keywords are
#   poll                      -- must be followed by a mailserver name
#   skip                      -- must be followed by a mailserver name
#   interval                  -- must be followed by an interval skip count
#   protocol (or proto)       -- must be followed by a protocol ID
#   uidl
#   port                      -- must be followed by a TCP/IP port number
#   authenticate (or auth)    -- must be followed by an authentication type
#   timeout                   -- must be followed by a numeric timeout value
#   envelope                  -- must be followed by an envelope header name
#   aka                       -- must be followed by one or more server aliases
#   localdomains              -- must be followed by one or more domain names
#   interface                 -- must be followed by device/IP address/mask
#   monitor                   -- must be followed by IP address
#
#   username (or user)        -- must be followed by a name
#   is                        -- must be followed by one or more names
#   folder                    -- must be followed by remote folder names
#   password (or pass)        -- must be followed by a password string
#   smtphost (or smtp)        -- must be followed by host names
#   mda                       -- must be followed by an MDA command string
#   preconnect (or pre)       -- must be followed by an initialization command
#
#   keep
#   flush
#   fetchall
#   rewrite
#   forcecr
#   stripcr
#   pass8bits
#   dns
#   no keep
#   no flush
#   no fetchall
#   no rewrite
#   no forcecr
#   no stripcr
#   no dns
#   no envelope
#   limit                     -- must be followed by numeric size limit
#   fetchlimit                -- must be followed by numeric msg fetch limit
#   batchlimit                -- must be followed by numeric SMTP batch limit
#
# Legal protocol identifiers are
#   pop2 (or POP2)
#   pop3 (or POP3)
#   imap (or IMAP)
#   imap-k4 (or IMAP-K4)
#   apop (or APOP)
#   rpop (or RPOP)
#   kpop (or KPOP)
#   etrn (or ETRN)
#
# Legal authentication types are
#   login
#   kerberos
#
# Legal global option statements are
#
#   set logfile =		-- must be followed by a string
#   set daemon			-- must be followed by a number   
#   set syslog
#
# The noise keywords `and', `with', `has', `wants', and `options' are ignored
# anywhere in an entry; they can be used to make it resemble English.  The
# punctuation characters `,' `:' `;' are also ignored. 
#
# The run control file format is fully described (with more examples) on the
# fetchmail manual page.
# 
# This is what the developer's .fetchmailrc looks like:

set daemon 300	# Poll at 5-minute intervals

defaults
	interface "sl0/10.0.2.15"	# SLIRP standard address
	user esr is esr fetchmail-friends magic-numbers here
	fetchall

# Use this for production
poll imap.ccil.org protocol IMAP:
	no dns, aka snark.thyrsus.com thyrsus.com locke.ccil.org ccil.org 
	password my_remote_password;

# Use this to test POP3
skip pop3.ccil.org with protocol APOP:
	no dns, aka snark.thyrsus.com thyrsus.com locke.ccil.org ccil.org 
	password my_apop_secret;

# Use this to test against a different server
skip pop3.netaxs.com:
	password my_netaxs.password;