summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
Diffstat (limited to 'debian')
-rw-r--r--debian/EDITME.exim4-heavy.diff101
-rw-r--r--debian/EDITME.exim4-light.diff198
-rw-r--r--debian/EDITME.eximon.diff7
-rw-r--r--debian/README.Debian296
-rw-r--r--debian/README.Debian.xinetd43
-rw-r--r--debian/README.SMTP-AUTH50
-rw-r--r--debian/README.TLS125
-rw-r--r--debian/README.local_scan-perl9
-rw-r--r--debian/README.system_aliases44
-rw-r--r--debian/TODO29
-rw-r--r--debian/changelog1335
-rw-r--r--debian/changelog.Debian.old1128
-rw-r--r--debian/compat1
-rwxr-xr-xdebian/config-custom/create-custom-config-package69
-rw-r--r--debian/config-custom/debian/compat1
-rw-r--r--debian/config-custom/debian/control18
-rw-r--r--debian/config-custom/debian/copyright15
-rw-r--r--debian/config-custom/debian/files1
-rwxr-xr-xdebian/config-custom/debian/rules96
-rw-r--r--debian/control126
-rw-r--r--debian/copyright220
-rwxr-xr-xdebian/create-custom-package92
-rw-r--r--debian/debconf.gamla/debconf_eximconfig628
-rw-r--r--debian/debconf.gamla/exim4-base.config260
-rw-r--r--debian/debconf.gamla/exim4-base.postinst92
-rw-r--r--debian/debconf.gamla/exim4-base.templates204
-rw-r--r--debian/debconf/30_exim4-config_example_check_rcpt139
-rw-r--r--debian/debconf/conf.d/acl/00_exim4-config_header8
-rw-r--r--debian/debconf/conf.d/acl/20_exim4-config_whitelist_local_deny29
-rw-r--r--debian/debconf/conf.d/acl/30_exim4-config_check_rcpt118
-rw-r--r--debian/debconf/conf.d/acl/40_exim4-config_check_data29
-rw-r--r--debian/debconf/conf.d/auth/00_exim4-config_header8
-rw-r--r--debian/debconf/conf.d/auth/30_exim4-config_examples102
-rw-r--r--debian/debconf/conf.d/main/01_exim4-config_listmacrosdefs72
-rw-r--r--debian/debconf/conf.d/main/02_exim4-config_options103
-rw-r--r--debian/debconf/conf.d/main/03_exim4-config_tlsoptions46
-rw-r--r--debian/debconf/conf.d/retry/00_exim4-config_header7
-rw-r--r--debian/debconf/conf.d/retry/30_exim4-config14
-rw-r--r--debian/debconf/conf.d/rewrite/00_exim4-config_header7
-rw-r--r--debian/debconf/conf.d/rewrite/31_exim4-config_rewriting23
-rw-r--r--debian/debconf/conf.d/router/00_exim4-config_header11
-rw-r--r--debian/debconf/conf.d/router/100_exim4-config_domain_literal16
-rw-r--r--debian/debconf/conf.d/router/200_exim4-config_primary72
-rw-r--r--debian/debconf/conf.d/router/300_exim4-config_real_local9
-rw-r--r--debian/debconf/conf.d/router/400_exim4-config_system_aliases29
-rw-r--r--debian/debconf/conf.d/router/500_exim4-config_hubuser19
-rw-r--r--debian/debconf/conf.d/router/600_exim4-config_userforward48
-rw-r--r--debian/debconf/conf.d/router/700_exim4-config_procmail11
-rw-r--r--debian/debconf/conf.d/router/800_exim4-config_maildrop14
-rw-r--r--debian/debconf/conf.d/router/900_exim4-config_local_user14
-rw-r--r--debian/debconf/conf.d/router/mmm_mail4root17
-rw-r--r--debian/debconf/conf.d/transport/00_exim4-config_header13
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_address_file11
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_address_pipe12
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_address_reply8
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_mail_spool17
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_maildir_home17
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_maildrop_pipe10
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_procmail_pipe10
-rw-r--r--debian/debconf/conf.d/transport/30_exim4-config_remote_smtp14
-rw-r--r--debian/debconf/conf.d/transport/35_exim4-config_address_directory13
-rw-r--r--debian/debconf/default_acl48
-rw-r--r--debian/debconf/update-exim4.conf360
-rw-r--r--debian/email-addresses9
-rw-r--r--debian/exim-gencert76
-rw-r--r--debian/exim4-base.NEWS43
-rw-r--r--debian/exim4-base.config17
-rw-r--r--debian/exim4-base.cron.daily29
-rw-r--r--debian/exim4-base.dirs6
-rw-r--r--debian/exim4-base.doc-base.filter8
-rw-r--r--debian/exim4-base.doc-base.spec8
-rw-r--r--debian/exim4-base.docs17
-rw-r--r--debian/exim4-base.examples2
-rw-r--r--debian/exim4-base.init156
-rw-r--r--debian/exim4-base.links3
-rw-r--r--debian/exim4-base.logrotate9
-rw-r--r--debian/exim4-base.manpages12
-rw-r--r--debian/exim4-base.postinst86
-rw-r--r--debian/exim4-base.postrm38
-rw-r--r--debian/exim4-base.templates291
-rw-r--r--debian/exim4-base.templates.master22
-rw-r--r--debian/exim4-config-medium/debian/changelog12
-rw-r--r--debian/exim4-config-medium/debian/compat1
-rw-r--r--debian/exim4-config-medium/debian/config/30_exim4-config_example_check_rcpt139
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/30_exim4-config-medium_example_check_rcpt139
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/00_exim4-config-medium_header8
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/20_exim4-config-medium_whitelist_local_deny42
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/30_exim4-config-medium_check_rcpt118
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/40_exim4-config-medium_check_data24
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/auth/00_exim4-config-medium_header8
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/auth/30_exim4-config-medium_examples91
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/main/01_exim4-config-medium_listmacrosdefs79
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/main/02_exim4-config-medium_options96
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/main/03_exim4-config-medium_tlsoptions30
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/retry/00_exim4-config-medium_header7
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/retry/30_exim4-config-medium14
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/rewrite/00_exim4-config-medium_header7
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/rewrite/31_exim4-config-medium_rewriting23
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/router/00_exim4-config-medium_header11
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/router/100_exim4-config-medium_domain_literal16
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/router/200_exim4-config-medium_primary72
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/router/300_exim4-config-medium_real_local8
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/router/400_exim4-config-medium_system_aliases27
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/router/500_exim4-config-medium_hubuser18
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/router/600_exim4-config-medium_userforward47
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/router/700_exim4-config-medium_procmail10
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/router/800_exim4-config-medium_maildrop13
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/router/900_exim4-config-medium_local_user13
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/router/mmm_mail4root16
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/00_exim4-config-medium_header13
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_address_file11
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_address_pipe12
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_address_reply8
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_mail_spool17
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_maildir_home17
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_maildrop_pipe10
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_procmail_pipe10
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_remote_smtp14
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/35_exim4-config-medium_address_directory13
-rw-r--r--debian/exim4-config-medium/debian/config/conf.d/default_acl48
-rw-r--r--debian/exim4-config-medium/debian/config/default_acl49
-rwxr-xr-xdebian/exim4-config-medium/debian/config/update-exim4.conf205
-rw-r--r--debian/exim4-config-medium/debian/control18
-rw-r--r--debian/exim4-config-medium/debian/copyright15
-rw-r--r--debian/exim4-config-medium/debian/email-addresses9
-rw-r--r--debian/exim4-config-medium/debian/exim4-config-medium.dirs6
-rw-r--r--debian/exim4-config-medium/debian/exim4-config-medium.manpages2
-rw-r--r--debian/exim4-config-medium/debian/exim4-config-medium.postinst71
-rw-r--r--debian/exim4-config-medium/debian/exim4-config-medium.postrm22
-rw-r--r--debian/exim4-config-medium/debian/ip-up.d9
-rw-r--r--debian/exim4-config-medium/debian/manpages/update-exim4.conf.8172
-rw-r--r--debian/exim4-config-medium/debian/manpages/update-exim4defaults.8162
-rwxr-xr-xdebian/exim4-config-medium/debian/rules96
-rw-r--r--debian/exim4-config-medium/debian/update-exim4.conf.conf6
-rw-r--r--debian/exim4-config-medium/debian/update-exim4defaults276
-rw-r--r--debian/exim4-config-simple/debian/changelog11
-rw-r--r--debian/exim4-config-simple/debian/compat1
-rw-r--r--debian/exim4-config-simple/debian/control24
-rw-r--r--debian/exim4-config-simple/debian/copyright12
-rwxr-xr-xdebian/exim4-config-simple/debian/debconf/update-exim4.conf169
-rw-r--r--debian/exim4-config-simple/debian/exim4-config-simple.dirs5
-rw-r--r--debian/exim4-config-simple/debian/exim4-config-simple.manpages1
-rw-r--r--debian/exim4-config-simple/debian/exim4-config-simple.postinst20
-rw-r--r--debian/exim4-config-simple/debian/exim4-config-simple.postrm14
-rw-r--r--debian/exim4-config-simple/debian/exim4.conf.defaults7
-rw-r--r--debian/exim4-config-simple/debian/exim4.conf.source502
-rw-r--r--debian/exim4-config-simple/debian/manpages/update-exim4.conf.875
-rwxr-xr-xdebian/exim4-config-simple/debian/rules86
-rw-r--r--debian/exim4-config.NEWS16
-rw-r--r--debian/exim4-config.config620
-rw-r--r--debian/exim4-config.dirs6
-rw-r--r--debian/exim4-config.docs2
-rw-r--r--debian/exim4-config.install1
-rw-r--r--debian/exim4-config.manpages2
-rw-r--r--debian/exim4-config.postinst295
-rw-r--r--debian/exim4-config.postrm28
-rw-r--r--debian/exim4-config.templates2518
-rw-r--r--debian/exim4-config.templates.master185
-rw-r--r--debian/exim4-daemon-custom.dirs3
-rw-r--r--debian/exim4-daemon-custom.docs2
-rw-r--r--debian/exim4-daemon-custom.links16
-rw-r--r--debian/exim4-daemon-heavy.NEWS7
-rw-r--r--debian/exim4-daemon-heavy.dirs4
-rw-r--r--debian/exim4-daemon-heavy.docs2
-rw-r--r--debian/exim4-daemon-heavy.links16
-rw-r--r--debian/exim4-daemon-light.dirs3
-rw-r--r--debian/exim4-daemon-light.docs1
-rw-r--r--debian/exim4-daemon-light.links16
-rw-r--r--debian/exim4-daemon-light.postinst29
-rw-r--r--debian/exim4-daemon-light.prerm19
-rw-r--r--debian/exim4.links1
-rw-r--r--debian/eximon4.dirs2
-rw-r--r--debian/eximon4.manpages1
-rw-r--r--debian/eximon4.menu2
-rw-r--r--debian/eximonconf-patch7
-rw-r--r--debian/ip-up.d12
-rw-r--r--debian/manpages/exicyclog.869
-rw-r--r--debian/manpages/exigrep.864
-rw-r--r--debian/manpages/exim_checkaccess.875
-rw-r--r--debian/manpages/exim_convert4r4.868
-rw-r--r--debian/manpages/exim_db.8164
-rw-r--r--debian/manpages/exim_dbmbuild.8100
-rw-r--r--debian/manpages/exim_lock.8132
-rw-r--r--debian/manpages/eximon.845
-rw-r--r--debian/manpages/exinext.868
-rw-r--r--debian/manpages/exiqgrep.883
-rw-r--r--debian/manpages/exiqsumm.869
-rw-r--r--debian/manpages/exiwhat.897
-rw-r--r--debian/manpages/update-exim4.conf.8181
-rw-r--r--debian/manpages/update-exim4defaults.8167
-rw-r--r--debian/mtalist1
-rw-r--r--debian/passwd.client7
-rw-r--r--debian/patches/00list11
-rw-r--r--debian/patches/10_daemon_close_fds.dpatch47
-rw-r--r--debian/patches/30_dontoverridecflags.dpatch36
-rw-r--r--debian/patches/31_eximmanpage.dpatch57
-rwxr-xr-xdebian/patches/32_exim4.dpatch126
-rwxr-xr-xdebian/patches/33_eximon.binary.dpatch33
-rwxr-xr-xdebian/patches/34_eximstatsmanpage.dpatch36
-rwxr-xr-xdebian/patches/35_install.dpatch37
-rwxr-xr-xdebian/patches/36_pcre.dpatch91
-rw-r--r--debian/patches/40_boolean_redefine_protect.dpatch47
-rw-r--r--debian/patches/50_localscan_dlopen.dpatch303
-rw-r--r--debian/patches/60_gnutls10.dpatch33
-rw-r--r--debian/patches/exiscan.patch9651
-rw-r--r--debian/po/POTFILES.in2
-rw-r--r--debian/po/cs.po591
-rw-r--r--debian/po/da.po738
-rw-r--r--debian/po/de.po708
-rw-r--r--debian/po/el.po634
-rw-r--r--debian/po/es.po627
-rw-r--r--debian/po/fi.po660
-rw-r--r--debian/po/fr.po632
-rw-r--r--debian/po/it.po597
-rw-r--r--debian/po/ja.po599
-rw-r--r--debian/po/lt.po592
-rw-r--r--debian/po/nb.po594
-rw-r--r--debian/po/nl.po619
-rw-r--r--debian/po/pt.po595
-rw-r--r--debian/po/pt_BR.po711
-rw-r--r--debian/po/ru.po699
-rw-r--r--debian/po/sv.po603
-rw-r--r--debian/po/templates.pot494
-rw-r--r--debian/po/zh_CN.po558
-rwxr-xr-xdebian/rules402
-rwxr-xr-xdebian/syslog2eximlog60
-rw-r--r--debian/update-exim4defaults276
227 files changed, 38530 insertions, 0 deletions
diff --git a/debian/EDITME.exim4-heavy.diff b/debian/EDITME.exim4-heavy.diff
new file mode 100644
index 0000000..5004014
--- /dev/null
+++ b/debian/EDITME.exim4-heavy.diff
@@ -0,0 +1,101 @@
+--- EDITME.exim4-light Wed Dec 3 16:54:31 2003
++++ EDITME.exim4-heavy Wed Dec 3 16:55:05 2003
+@@ -207,7 +207,7 @@
+
+ # This one is very special-purpose, so is not included by default.
+
+-# ROUTER_IPLOOKUP=yes
++ROUTER_IPLOOKUP=yes
+
+
+ #------------------------------------------------------------------------------
+@@ -239,7 +239,7 @@
+
+ SUPPORT_MAILDIR=yes
+ SUPPORT_MAILSTORE=yes
+-# SUPPORT_MBX=yes
++SUPPORT_MBX=yes
+
+
+ #------------------------------------------------------------------------------
+@@ -255,16 +255,16 @@
+ LOOKUP_LSEARCH=yes
+
+ LOOKUP_CDB=yes
+-# LOOKUP_DNSDB=yes
++LOOKUP_DNSDB=yes
+ LOOKUP_DSEARCH=yes
+ # LOOKUP_IBASE=yes
+-# LOOKUP_LDAP=yes
+-# LOOKUP_MYSQL=yes
++LOOKUP_LDAP=yes
++LOOKUP_MYSQL=yes
+ LOOKUP_NIS=yes
+ # LOOKUP_NISPLUS=yes
+ # LOOKUP_ORACLE=yes
+ LOOKUP_PASSWD=yes
+-# LOOKUP_PGSQL=yes
++LOOKUP_PGSQL=yes
+ # LOOKUP_WHOSON=yes
+
+ # These two settings are obsolete; all three lookups are compiled when
+@@ -284,7 +284,7 @@
+ # with Solaris 7 onwards. Uncomment whichever of these you are using.
+
+ # LDAP_LIB_TYPE=OPENLDAP1
+-# LDAP_LIB_TYPE=OPENLDAP2
++LDAP_LIB_TYPE=OPENLDAP2
+ # LDAP_LIB_TYPE=NETSCAPE
+ # LDAP_LIB_TYPE=SOLARIS
+
+@@ -303,6 +303,9 @@
+ # LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include
+ # LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq -lgds
+
++LOOKUP_INCLUDE=-I/usr/include/mysql -I/usr/include/postgresql
++LOOKUP_LIBS=-lldap -llber -lmysqlclient -lpq
++
+ #------------------------------------------------------------------------------
+ # Compiling the Exim monitor: If you want to compile the Exim monitor, a
+ # program that requires an X11 display, then EXIM_MONITOR should be set to the
+@@ -311,7 +314,7 @@
+ # files are defaulted in the OS/Makefile-Default file, but can be overridden in
+ # local OS-specific make files.
+
+-EXIM_MONITOR=eximon.bin
++# EXIM_MONITOR=eximon.bin
+
+
+
+@@ -389,7 +392,7 @@
+
+ AUTH_CRAM_MD5=yes
+ AUTH_PLAINTEXT=yes
+-# AUTH_SPA=yes
++AUTH_SPA=yes
+
+
+ #------------------------------------------------------------------------------
+@@ -615,7 +618,7 @@
+ # (version 5.004 or later) installed, set EXIM_PERL to perl.o. Using embedded
+ # Perl costs quite a lot of resources. Only do this if you really need it.
+
+-# EXIM_PERL=perl.o
++EXIM_PERL=perl.o
+
+
+ #------------------------------------------------------------------------------
+@@ -625,11 +628,11 @@
+ # support, which is intended for use in conjunction with the SMTP AUTH
+ # facilities, is included only when requested by the following setting:
+
+-# SUPPORT_PAM=yes
++SUPPORT_PAM=yes
+
+ # You probably need to add -lpam to EXTRALIBS, and in some releases of
+ # GNU/Linux -ldl is also needed.
+-EXTRALIBS=-ldl
++EXTRALIBS=-lpam
+
+
+ #------------------------------------------------------------------------------
diff --git a/debian/EDITME.exim4-light.diff b/debian/EDITME.exim4-light.diff
new file mode 100644
index 0000000..80dbfc3
--- /dev/null
+++ b/debian/EDITME.exim4-light.diff
@@ -0,0 +1,198 @@
+--- src/EDITME Wed Dec 3 16:49:58 2003
++++ EDITME.exim4-light Wed Dec 3 16:54:31 2003
+@@ -98,7 +98,7 @@
+ # /usr/local/sbin. The installation script will try to create this directory,
+ # and any superior directories, if they do not exist.
+
+-BIN_DIRECTORY=/usr/exim/bin
++BIN_DIRECTORY=/usr/sbin
+
+
+ #------------------------------------------------------------------------------
+@@ -114,7 +114,7 @@
+ # don't exist. It will also install a default runtime configuration if this
+ # file does not exist.
+
+-CONFIGURE_FILE=/usr/exim/configure
++CONFIGURE_FILE=/etc/exim4/exim4.conf:/var/lib/exim4/config.autogenerated
+
+ # It is possible to specify a colon-separated list of files for CONFIGURE_FILE.
+ # In this case, Exim will use the first of them that exists when it is run.
+@@ -132,7 +132,7 @@
+ # owner of a local mailbox.) Specifying these values as root is very strongly
+ # discouraged.
+
+-EXIM_USER=
++EXIM_USER=ref:Debian-exim
+
+ # If you specify EXIM_USER as a name, this is looked up at build time, and the
+ # uid number is built into the binary. However, you can specify that this
+@@ -154,6 +154,7 @@
+ # you want to use a group other than the default group for the given user.
+
+ # EXIM_GROUP=
++EXIM_GROUP=ref:Debian-exim
+
+ # Many sites define a user called "exim", with an appropriate default group,
+ # and use
+@@ -174,7 +175,7 @@
+
+ # Almost all installations choose this:
+
+-SPOOL_DIRECTORY=/var/spool/exim
++SPOOL_DIRECTORY=/var/spool/exim4
+
+
+
+@@ -227,7 +228,7 @@
+ # This one is special-purpose, and commonly not required, so it is not
+ # included by default.
+
+-# TRANSPORT_LMTP=yes
++TRANSPORT_LMTP=yes
+
+
+ #------------------------------------------------------------------------------
+@@ -236,8 +237,8 @@
+ # MBX, is included only when requested. If you do not know what this is about,
+ # leave these settings commented out.
+
+-# SUPPORT_MAILDIR=yes
+-# SUPPORT_MAILSTORE=yes
++SUPPORT_MAILDIR=yes
++SUPPORT_MAILSTORE=yes
+ # SUPPORT_MBX=yes
+
+
+@@ -253,16 +254,16 @@
+ LOOKUP_DBM=yes
+ LOOKUP_LSEARCH=yes
+
+-# LOOKUP_CDB=yes
++LOOKUP_CDB=yes
+ # LOOKUP_DNSDB=yes
+-# LOOKUP_DSEARCH=yes
++LOOKUP_DSEARCH=yes
+ # LOOKUP_IBASE=yes
+ # LOOKUP_LDAP=yes
+ # LOOKUP_MYSQL=yes
+-# LOOKUP_NIS=yes
++LOOKUP_NIS=yes
+ # LOOKUP_NISPLUS=yes
+ # LOOKUP_ORACLE=yes
+-# LOOKUP_PASSWD=yes
++LOOKUP_PASSWD=yes
+ # LOOKUP_PGSQL=yes
+ # LOOKUP_WHOSON=yes
+
+@@ -386,8 +387,8 @@
+ # included in the Exim binary. You will then need to set up the run time
+ # configuration to make use of the mechanism(s) selected.
+
+-# AUTH_CRAM_MD5=yes
+-# AUTH_PLAINTEXT=yes
++AUTH_CRAM_MD5=yes
++AUTH_PLAINTEXT=yes
+ # AUTH_SPA=yes
+
+
+@@ -397,7 +398,7 @@
+ # one that is set in the headers_charset option. The default setting is
+ # defined by this setting:
+
+-HEADERS_CHARSET="ISO-8859-1"
++HEADERS_CHARSET="UTF-8"
+
+ # If you are going to make use of $header_xxx expansions in your configuration
+ # file, or if your users are going to use them in filter files, and the normal
+@@ -466,14 +467,14 @@
+ # leave these settings commented out.
+
+ # This setting is required for any TLS support (either OpenSSL or GnuTLS)
+-# SUPPORT_TLS=yes
++SUPPORT_TLS=yes
+
+ # Uncomment this setting if you are using OpenSSL
+ # TLS_LIBS=-lssl -lcrypto
+
+ # Uncomment these settings if you are using GnuTLS
+-# USE_GNUTLS=yes
+-# TLS_LIBS=-lgnutls -ltasn1 -lgcrypt
++USE_GNUTLS=yes
++TLS_LIBS=-lgnutls
+
+ # If you are running Exim as a server, note that just building it with TLS
+ # support is not all you need to do. You also need to set up a suitable
+@@ -548,6 +549,7 @@
+ # to form the final file names. Some installations may want something like this:
+
+ # LOG_FILE_PATH=/var/log/exim_%slog
++LOG_FILE_PATH=/var/log/exim4/%slog
+
+ # which results in files with names /var/log/exim_mainlog, etc. The directory
+ # in which the log files are placed must exist; Exim does not try to create
+@@ -596,7 +598,7 @@
+ # files. Both the name of the command and the suffix that it adds to files
+ # need to be defined here. See also the EXICYCLOG_MAX configuration.
+
+-COMPRESS_COMMAND=/usr/bin/gzip
++COMPRESS_COMMAND=/bin/gzip
+ COMPRESS_SUFFIX=gz
+
+
+@@ -604,7 +606,7 @@
+ # If the exigrep utility is fed compressed log files, it tries to uncompress
+ # them using this command.
+
+-ZCAT_COMMAND=/usr/bin/zcat
++ZCAT_COMMAND=/bin/zcat
+
+
+ #------------------------------------------------------------------------------
+@@ -627,6 +629,7 @@
+
+ # You probably need to add -lpam to EXTRALIBS, and in some releases of
+ # GNU/Linux -ldl is also needed.
++EXTRALIBS=-ldl
+
+
+ #------------------------------------------------------------------------------
+@@ -671,6 +674,8 @@
+
+ # CYRUS_SASLAUTHD_SOCKET=/var/state/saslauthd/mux
+
++# default in Debian's sasl2-bin
++CYRUS_SASLAUTHD_SOCKET=/var/run/saslauthd/mux
+
+ #------------------------------------------------------------------------------
+ # TCP wrappers: If you want to use tcpwrappers from within Exim, uncomment
+@@ -733,8 +738,8 @@
+ # haven't got Perl, Exim will still build and run; you just won't be able to
+ # use those utilities.
+
+-# CHOWN_COMMAND=/usr/bin/chown
+-# CHGRP_COMMAND=/usr/bin/chgrp
++CHOWN_COMMAND=/bin/chown
++CHGRP_COMMAND=/bin/chgrp
+ # MV_COMMAND=/bin/mv
+ # RM_COMMAND=/bin/rm
+ # PERL_COMMAND=/usr/bin/perl
+@@ -932,6 +937,7 @@
+ # file can be specified here. Some installations may want something like this:
+
+ # PID_FILE_PATH=/var/lock/exim.pid
++PID_FILE_PATH=/var/run/exim4/exim.pid
+
+ # If PID_FILE_PATH is not defined, Exim writes a file in its spool directory
+ # using the name "exim-daemon.pid".
+@@ -964,6 +970,9 @@
+ # run time option is required to cause the moving actually to occur. Such
+ # messages become "invisible" to the normal management tools.
+
+-# SUPPORT_MOVE_FROZEN_MESSAGES=yes
++SUPPORT_MOVE_FROZEN_MESSAGES=yes
+
+ # End of EDITME for Exim 4.
++
++# enable support for IPv6
++HAVE_IPV6=YES
diff --git a/debian/EDITME.eximon.diff b/debian/EDITME.eximon.diff
new file mode 100644
index 0000000..f4022d5
--- /dev/null
+++ b/debian/EDITME.eximon.diff
@@ -0,0 +1,7 @@
+--- exim_monitor/EDITME Mon Jul 22 10:59:52 2002
++++ EDITME.eximon Wed Dec 3 16:55:18 2003
+@@ -1,3 +1,4 @@
++# -*- makefile -*-
+ ##################################################
+ # The Exim Monitor #
+ ##################################################
diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644
index 0000000..00e9270
--- /dev/null
+++ b/debian/README.Debian
@@ -0,0 +1,296 @@
+This is the Debian package for exim4.
+
+As with the apache package, exim4 is an entirely different package
+that does not currently offer a smooth upgrade path from the Debian
+exim 3 packages. exim 3 will stay default MTA for Debian sarge.
+
+It is the first exim package in Debian that can be configured using
+debconf. However, the entire configuration framework is extremely
+flexible, allowing you to get exactly the amount of control you need
+for the job at hand.
+
+To use exim4, you need at least the following packages:
+exim4-base EXperimental Internal Mailer -- a Mail Transport
+exim4-config Debian configuration for exim4
+exim4-daemon-light Lightweight version of the Exim (v4) MTA
+
+Just apting the meta-package exim4 will pull in the other packages per
+dependency. You'll get an exim daemon with minimal feature set (no external
+lookups).
+
+If you want to have a different feature set, you can install one of
+the other exim4-daemon-Packages instead of exim4-daemon-light, or you
+can modify the source package to build exim4-daemon-custom according
+to your needs. The infrastructure to do so is already in place, see
+debian/rules for instructions.
+
+********************************************
+Updating from exim 3 ***********************
+********************************************
+
+If you use exim4-config from Debian, you'll get the debconf based
+configuration scheme that is intended to cover the majority of cases.
+
+If exim4-config is installed while an exim 3 package is present on the
+system, exim4-config tries to parse the exim 3 config file to
+determine the answers that were given to eximconfig on exim 3
+installation. These answers are then taken as default values for the
+debconf based configuration process. Be warned! eximconfig from the
+exim 3 packages doesn't record the explicit answers given on exim 3
+configuration. So we have to guess the answers from the exim 3
+configuration file /etc/exim/exim.conf, which is bound to fail if the
+config file has been modified after using eximconfig.
+
+This is the reason why we refrained from doing a "silent update", but
+only use the guessed answers to get reasonable defaults for our
+debconf based configuration process.
+
+Please note that we do not use the exim_convert4r4 script, but try to
+configure the exim 4 package in the same way exim 3 was. This will
+hopefully aid future updates.
+
+If you have used a customized exim 3 configuration, you can of course
+use exim_convert4r4, and install the resulting file as /etc/exim4/exim4.conf
+after careful inspection. exim4 will then use that file and ignore the
+file that it generated from the debconf configuration. To aid future
+updates, we do, however, encourage you not to use the
+exim_convert4r4-generated file verbatim but instead drop appropriate
+configuration snippets in their appropriate place in
+/etc/exim4/conf.d.
+
+*******************************************************
+What are these gazillion number of files in /etc/exim4/conf.d? How do I
+get rid of them? How does the configuration work? What kind of crack are
+you smoking?
+*******************************************************
+
+Our packages offer two (actually three, see below at
+/etc/exim4/exim4.conf) possibilities:
+
+#1 Generate exim's configuration from /etc/exim4/exim4.conf.template
+#2 Generate exim's configuration from the multiple files in
+ /etc/exim4/conf.d/.
+
+You can choose between the alternatives with dpkg-reconfigure
+exim4-config or by changing the value of dc_use_split_config in
+update-exim4.conf.conf manually.
+
+The split into multiple files below /etc/exim4/conf.d/ is quite
+straightforward. Each section of exim's configuration has its own
+subdirectory and the files in there are supposed to be read in
+alphanumeric order. router/00_exim4-config_header is followed by
+router/100_exim4-config_domain_literal, ...
+
+Benefits of this approach:
+ * it means less work for you when upgrading. If we shipped one big file
+ and modified for example the Maildir transport in a new version you
+ won't have to do manual conffile merging unless you had changed
+ exactly _this_ transport.
+ * It allows other packages (e.g. sa-exim) to modify exim's
+ configuration by shipping files in /etc/exim4/conf.d.
+
+Downsides of this approach:
+ * It is more fragile. If I add optionfoo=bar to the Debian setup of
+ a later version, and you have already set this option in a local
+ file, exim will break with the new version until you manually
+ correct this.
+
+If in doubt go for the unsplit config, because it is easier to roll
+back to Debian's default configuration in one step. If you intend to
+do many changes to the Debian setup, you might want to use the split
+config at the price of having to more closely examine the config file
+after an update.
+
+What about debconf?
+------
+Debconf just "manages" the file /etc/exim4/update-exim4.conf.conf. This is
+a simple shell-script snippet used to store the answers that you passed to
+debconf when initially configuring exim4. You may also modify this file
+with an editor of your choice, debconf can handle it and will preserve
+your changes.
+
+How does this work? Exim cannot handle the gazillion files or parse
+/etc/exim4/update-exim4.conf.conf.
+------
+The script update-exim4.conf does the work.
+
+Depending on the value of dc_use_split_config, it either
+- takes all the files below /etc/exim4/conf.d/ and concatenates
+ them together or
+- uses exim4.conf.template as input.
+
+The debconf-managed information from /etc/exim4/update-exim4.conf.conf
+is merged into the generated configuration file. Strings like
+DEBCONFfooDEBCONF are replaced by the value that is set in
+/etc/exim4/update-exim4.conf.conf for the keyword dc_foo.
+
+DEBCONFsmarthostDEBCONF, for example, is replaced with the value of
+$dc_smarthost in /etc/exim4/update-exim4.conf.conf which holds the
+answer to "Which machine will act as the smarthost and handle outgoing
+mail?"
+
+The result of these operations is saved as
+/var/lib/exim4/config.autogenerated, which is _NOT_ a dpkg-conffile!
+Manual changes to this file will be overwritten by update-exim4.conf.
+
+Please consult the manpage of update-exim4.conf for more detailed
+information.
+
+update-exim4.conf is invoked by the init script prior to any operation
+that may invoke an exim process, and gives an error message if the
+generated config file is syntactically invalid. If you want to activate
+your changes to files in conf.d/ just execute "invoke-rc.d exim4 reload".
+
+I still don't like it. I want one monolithic file.
+------
+No problem. Take your file and install it as /etc/exim4/exim4.conf. Exim
+will use that file. /var/lib/exim4/config.autogenerated, the file
+generated by update-exim4.conf, is ignored in that case. You should not
+edit /etc/exim4/exim4.conf directly when exim is running, because the
+forked processes exim starts for SMTP receiving or queue running would
+use the new configuration file, while the original main exim-daemon
+would still use the old configuration file.
+
+
+*******************************************************
+Using a completely different configuration scheme *****
+*******************************************************
+
+We have split off exim's configuration system (debconf,
+update-exim4.conf, and the files in /etc/exim4/conf.d) to a separate
+package, exim4-config. If you want to, you can replace exim4-config by
+something entirely different. The other packages don't care. Your
+package needs to:
+
+ * Provides: exim4-config-2, Conflicts: exim4-config-2,exim4-config
+ * drop the exim 4 configuration either into
+ /var/lib/exim4/config.autogenerated or into /etc/exim4/exim4.conf.
+
+Your package might provide an executable update-exim4.conf that must
+be in root's path (/usr/sbin recommended). The init script will invoke
+that executable prior to invoking the actual exim daemon.
+
+The source package contains a number of little helpers that can aid
+you in creating your own configuration packages:
+
+ * The subdirectory debian/exim4-config-simple contains a simple,
+ not debconf-driven configuration scheme as example (in form of a
+ Debian source package) which can be used as template for a
+ classical, exim4.conf based configuration scheme.
+
+ * The subdirectory debian/exim4-config-medium contains the conf.d
+ driven configuration of the main package with the debconf
+ interaction removed. This can be used to create you own non-debconf
+ configuration package that uses the conf.d mechanism.
+
+ * Finally, you can invoke the script
+ "debian/config-custom/create-custom-config-package" which will
+ create a new source package "exim4-config-custom" with the
+ debconf-driven config scheme of exim4-config for your local
+ modification.
+
+Please note that exim4-config-simple and exim4-config-medium are only
+targetet to be used as template. The configurations contained are not
+suitable for productive use. Of course, the Debian maintainers
+appreciate any patches you might find suitable. The scripts in
+exim4-config-simple and exim4-config-medium may not work at all in
+your environment.
+
+Exchanging the entire exim4-config package with something custom comes
+particularly handy for sites that have more than a few machines that
+are similarly configured, but doesn't want to use the original
+exim4-config package. Build your own exim4-config-custom or
+exim4-config-foo, and simply apt that package to the machines that
+need to have that configuration. Future updates can then be handled
+via the dpkg-conffile mechanism, properly detecting local modifications.
+
+In the future, it might be possible that Debian will contain multiple
+flavours of exim4 configuration. However, these packages would have to
+be maintained by someone else because the exim4 package maintainers
+think that the scheme delivered with exim4-config is the best of all
+worlds and wouldn't spend the time to maintain multiple configuration
+schemes while only actually using one. It would be nice to have a
+configuration scheme using a monolithic config file, managed by ucf in
+three-way-merge mode. If anybody feels ready to maintain it, please go
+ahead.
+
+
+********************************************
+Misc Notes *********************************
+********************************************
+
+PAM:
+On Debian systems the PAM modules run as the same user as the calling program,
+so they can't do anything you couldn't do yourself, and in particular can't
+access /etc/shadow unless the user is in group shadow. - If you want to use
+/etc/shadow for Exim's SMTP AUTH you will need to run exim as group shadow.
+Only exim4-daemon-heavy is linked against libpam.
+
+I suggest using saslauthd instead.
+_____________________________________________
+
+convert4r4 is installed as /usr/sbin/exim_convert4r4.
+_____________________________________________
+
+The CVS repository of the Debian package is publically accessible on
+alioth.debian.org, see https://alioth.debian.org/projects/pkg-exim4
+_____________________________________________
+
+Changed defaults:
+* charset for $header_foo expansions defaults to UTF-8 instead of
+ ISO-8859-1
+_____________________________________________
+
+Since version 4.23 exim cannot run deliveries as root anymore. If you
+don't redirect mail for root via /etc/aliases to a nonpriviledged
+account on Debian the mail will be delivered to /var/mail/mail with
+permissions 0600 and owner mail:mail.
+
+This is done by /etc/exim4/conf.d/router/mmm_mail4root.
+_____________________________________________
+
+Most of the scripts that come with this Debian package do a set -x if
+invoked with the environment variable EX4DEBUG defined and non-zero.
+This is particularly handy if you need to debug the maintainer scripts
+that are invoked during package installation. Since dpkg redirects
+stdout of maintainer scripts, calling dpkg with EX4DEBUG set might
+yield interesting results. If in doubt, invoke the maintainer scripts
+with EX4DEBUG set manually directly from the command line.
+_____________________________________________
+
+
+********************************************
+Modifications ******************************
+********************************************
+Patches by Steve Haslam available from
+ http://www.arise.demon.co.uk/exim-patches/:
+******
+boolean_redefine_protect
+ [src/mytypes.h]
+ Surround the definition of TRUE and FALSE macros with #ifndef
+ /#endif, in case some other header defines them (from mixing No
+ Perl and Exim, istr)
+
+******
+Other stuff
+******
+* link exim dynamically against pcre.
+
+* The main binary is /usr/sbin/exim4:
+ - src/globals.c was changed to use 'US BIN_DIRECTORY "/exim4"' as default
+ for exim_path.
+ - changed default for $exim_path (modulo lower/upper case) from
+ BIN_DIRECTORY/exim to BIN_DIRECTORY/exim4 in exicyclog.src,
+ exim_checkaccess.src, eximon.src, exinext.src, exiqgrep.src,
+ exiwhat.src.
+ - OS/Makefile-Linux:EXIWHAT_MULTIKILL_ARG=exim4
+
+* localscan_dlopen.patch downloaded from
+ http://marc.merlins.org/linux/exim/files/sa-exim-current/
+ Allow to use and switch between different local_scan functions without
+ recompiling exim.
+ Use
+ local_scan_path = /path/to/sharedobject
+ to utilize local_scan() in /path/to/sharedobject
+
+# vim:tw=72:expandtab
diff --git a/debian/README.Debian.xinetd b/debian/README.Debian.xinetd
new file mode 100644
index 0000000..52e763f
--- /dev/null
+++ b/debian/README.Debian.xinetd
@@ -0,0 +1,43 @@
+No support for (x)inetd?
+========================
+
+* Why does Debian's exim4 not run from (x)inetd but as a separate daemon?
+
+#1 Ease of maintainance:
+ update-inetd is difficult to impossible to handle correctly (Just
+ check the archived bug reports of exim.) and update-inetd seems to be
+ unmaintained for a long time, nobody dares to touch it. To quote Mark
+ Baker, the maintainer of exim (v3): "I really wish I had never used
+ inetd in the first place, but simply set up exim to run as a daemon,
+ but it's too late to change that now."
+
+#2 Extended features
+ Running from inetd interferes with exim's resource controls (e.g it
+ disables smtp_accept_max_per_host and smtp_accept_max).
+
+If you introduce bugs on your systems by running from (x)inetd you are
+on your own!
+
+==================================
+Dan Weber has provided us with instructions for running from xinetd:
+Disable exim4's listening daemon by executing
+update-exim4defaults --queuerunner queueonly
+
+Save this as /etc/xinetd.d/exim4
+--------------------
+service smtp
+{
+ disable = no
+ flags = NAMEINARGS
+ socket_type = stream
+ protocol = tcp
+ wait = no
+ user = Debian-exim
+ group = Debian-exim
+ server = /usr/sbin/exim4
+ server_args = exim4 -bs
+}
+--------------------
+Run invoke-rc.d exim4 restart; invoke-rc.d (x)inetd restart
+
+Done.
diff --git a/debian/README.SMTP-AUTH b/debian/README.SMTP-AUTH
new file mode 100644
index 0000000..987d405
--- /dev/null
+++ b/debian/README.SMTP-AUTH
@@ -0,0 +1,50 @@
+Using exim as SMTP-AUTH client
+==============================
+
+If you want to set up exim as SMTP AUTH client for delivery to your
+internet access provider's smarthost put the name of the
+server, your login and password in /etc/exim4/passwd.client:
+
+name.of.server.example:mylogin:secretpassword
+
+(Lines starting with a hash-mark (#) are ignored.)
+
+Afterwards edit /etc/exim4/exim4.conf.template [3]
+and remove the hash-mark (#) in front of "hosts_try_auth = DCsmarthost".
+Execute "invoke-rc.d exim4 reload" and you are set.
+
+--------------------------------
+
+AUTH PLAIN and AUTH LOGIN are disabled for connections which are not
+protected by SSL/TLS per default. These authentication methods use
+cleartext passwords (like telnet).
+
+If you need to enable them for unencrypted connections because your
+service provider does support neither TLS encryption nor the CRAM MD5
+authentication method you will have to change the "plain:" and/or
+"login:" authenticator respectively in /etc/exim4/exim4.conf.template [3]
+as described in the comments in the file.
+
+--------------------------------
+
+/etc/exim4/passwd.client needs to be readable for the exim user (user
+Debian-exim, group Debian-exim) I suggest you keep the default permissions
+root:Debian-exim 0640.
+
+Using exim as SMTP-AUTH server
+==============================
+/etc/exim4/exim4.conf.template [3] includes multiple examples for
+server-side smtp-authentication, if you want to authenticate against
+system passwords (e.g. /etc/shadow) I suggest to use saslauthd in the
+Debian package sasl2-bin. You have add the exim-user (currently
+Debian-exim) to the sasl[1] group[2], to give exim permission to use the
+saslauthd service.
+
+[1] Not present on woody, sorry.
+[2] adduser Debian-exim sasl
+[3] If you are using split-configuration (dc_use_split_config='true' in
+/etc/exim4/update-exim4.conf.conf), the files to edit are:
+ /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp
+ /etc/exim4/conf.d/auth/30_exim4-config_examples
+
+# vim:tabstop=3:expandtab:shiftwidth=3:textwidth=73
diff --git a/debian/README.TLS b/debian/README.TLS
new file mode 100644
index 0000000..0f2763b
--- /dev/null
+++ b/debian/README.TLS
@@ -0,0 +1,125 @@
+Notes about TLS/SSL support
+-------------------
+[written by Sander Smeenk <ssmeenk@debian.org>]
+[modified by AndreasMetzler <ametzler@downhill.at.eu.org>]
+[last modified: 2004-03-24]
+
+For a real cool example on what is possible with Exim 4's new ACLs visit
+Marc Merlin's Exim 4 Page: http://marc.merlins.org/linux/exim/
+
+Further down is explanation about dhparams, you might have been directed
+here through exim-gencerts or the package supplied exim configuration file.
+
+EXIM4 AS TLS/SSL-CLIENT
+------------------------
+
+Both exim4-daemon-heavy and exim4-daemon-light support TLS/SSL using the
+GnuTLS library and exim will use TLS *automatically* as client if the
+server exim connects to offers it. You can stop reading now if you are
+not setting up a mailserver which needs to offer TLS for incoming
+connections.
+
+HOW TO ENABLE TLS SUPPORT WITH EXIM-TLS V4+
+-------------------------------------------
+
+You should have created certificates in /etc/exim4/ either by hand
+or by usage of the exim-gencert (which requires openssl).
+exim-gencert is shipped in /usr/share/doc/exim4-base/examples/
+
+Next edit /etc/exim4/exim4.conf.template (or if you are using
+split-configuration - dc_use_split_config='true' in
+/etc/exim4/update-exim4.conf.conf -
+/etc/exim4/conf.d/main/03_exim4-config_tlsoptions) and activate these
+options by removing the hash-mark ("#") in front of them.
+# hostlist auth_over_tls_hosts = *
+# log_selector = +tls_cipher +tls_peerdn
+# tls_advertise_hosts = *
+# tls_certificate = /etc/exim4/exim.crt
+# tls_privatekey = /etc/exim4/exim.key
+
+If you don't manage exim's configuration with debconf, you'll have to add
+these options to your handcrafted configuration file
+/etc/exim4/exim4.conf instead.
+
+* auth_over_tls_hosts
+ Defines what hosts to 'advertise' AUTHentication to when they connect
+ via TLS. Setting this to * will advertise this functionality to all
+ hosts that connect with TLS and this is a good default
+
+* log_selector
+ Defines that you want to log what cipher your exim and the peer's mailer
+ uses to encrypt the transaction. It also defines you want to log the 'DN'
+ (Distinguished Name) of the certificate of the peer.
+
+* tls_advertise_hosts
+ Defines what hosts to 'advertise' STARTTLS functionality to. Setting this
+ to * will advertise to all hosts that connect with EHLO, and this is a
+ good default
+
+* tls_certificate & tls_privatekey
+ Defines where your SSL-certificate and SSL-Private Key are located.
+ This requires a full path. The files pointed to must be kept 'secret'
+ and should be owned my root.Debian-exim mode 640 (-rw-r-----). Usually the
+ exim-gencert script takes care of these prerequisites.
+
+
+
+EXIM TELLS ME '454 TLS currently unavailable' WHAT IS WRONG?!!
+--------------------------------------------------------------
+
+Please refer to /var/log/exim/mainlog and/or paniclog.
+You should see messages like:
+ 2003-01-27 19:06:45 TLS error on connection from localhost [127.0.0.1]
+ (cert/key setup): Error while reading file)
+
+
+
+DURING TRANSACTION EXIM TELLS ME 'not enough random bytes available'
+'please do some other work to give the OS a chance to collect more entropy'
+WHAT IS WRONG?!!
+---------------------------------------------------------------------------
+
+Exim was unable to read enough random data from /dev/random to seed it's
+Diffie Hellman parameter generation. Please check that your /dev/random
+device is setup properly. It has been reported that with 2.5.53 kernels
+/dev/random sometimes won't give any output.
+
+Try generating alot of load for a while by doing things (as root) like:
+ % find /usr /var /etc -type f -exec cat {} \; | gzip -c > /dev/null
+ % tar cvzf - / | zcat > /dev/null
+
+Or build a kernel or X11 :)
+
+This will cause alot of interrupts and data to be read. It should generate
+enough entropy. If it doesn't, check if your /dev/random *EVER* returns
+data.
+
+
+DHPARAMS AND WHY IT IS DISABLED EVERYWHERE
+------------------------------------------
+
+This version of Exim is compiled against GnuTLS. GnuTLS is a replacement
+for the restrictive licensed OpenSSL libraries. GnuTLS does not support
+varying its Diffie-Hellman parameters. Therefore tls_dhparam settings are
+ignored in Exim's configuration file, and no dhparam file is generated by
+exim-gencerts.
+
+GnuTLS uses RSA and D-H parameters that are computed when they are needed.
+(eg. when someone sends STARTTLS, exim will compute these parameters).
+After successful computation Exim will store these parameters in a cache
+file located in Exim's spooldirectory (/var/spool/exim4/gnutls.params).
+
+It is wise to remove this file periodically so Exim creates a new set of
+gnutls parameters. This is done by a cronjob that runs every 12 hrs.
+
+It's "more secure" when you have this file regenerated more often.
+But remember that the exim process that has to create the file could take
+a little longer before it responds to a STARTTLS command. (You should not
+notice this on current computers).
+
+NOTE! The fact that GnuTLS does not support generated Diffie-Hellman
+parameters does NOT make it less secure.
+
+Also refer to /usr/share/doc/exim4-base/spec.txt.gz, section 36.
+
+# vim:tabstop=3:expandtab:shiftwidth=3:textwidth=73
diff --git a/debian/README.local_scan-perl b/debian/README.local_scan-perl
new file mode 100644
index 0000000..33334a3
--- /dev/null
+++ b/debian/README.local_scan-perl
@@ -0,0 +1,9 @@
+This package includes a plugin to use a perl script running on Exim's
+builtin perl interpreter for the local_scan interface. To enable it
+set
+local_scan_path = /usr/lib/exim4/local_scan/local_scan_perl-0.2.so
+in the main part of Exim's run-time configuration file
+(/etc/exim4/exim4.conf.template or /etc/exim4/exim4.conf) and put
+your local_scan() perl routine in /etc/exim4/local_scan.pl
+
+See http://oss.bibliotech.net/ for details.
diff --git a/debian/README.system_aliases b/debian/README.system_aliases
new file mode 100644
index 0000000..baa19bd
--- /dev/null
+++ b/debian/README.system_aliases
@@ -0,0 +1,44 @@
+How to use pipe deliveries from alias files
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Using pipes in the /etc/aliases file is disabled by default in the
+Debian exim 4 packages, because the program would run as the exim
+admin-user Debian-exim, which might open up security holes.
+
+Invoking pipes from /etc/aliases file is widely considered obsolete
+and deprecated. The Debian exim package maintainers would like to
+suggest using a dedicated router/transport pair to invoke local
+processes for mail processing. For example, the Debian mailman package
+contains a /usr/share/doc/mailman/README.EXIM file that gives a good
+example how to implement this. Using a dedicated router/transport
+pairs have the following advantages:
+
+ * The router/transport pair can be put in place by another package,
+ giving a well-defined transaction point between exim4 and $PACKAGE.
+ * Not allowing pipe deliveries from alias files makes it harder to
+ accidentally run programs with wrong privileges.
+ * It is possible to run different pipe processes under different
+ accounts is possible with this setup.
+ * Even if only invoking a single local program, it is easier to do
+ with your dedicated router/transport since you won't need to change
+ this file, making automatic updates of this file possible for future
+ versions of the exim4 packages. If you do local changes here, dpkg
+ conffile handling will bother you on future updates.
+
+If you insist on using /etc/aliases in the traditional way, you will need
+to activate the "pipe_transport = ..." entry manually for the
+system_aliases-router in /etc/exim4/exim4.conf.template (or if you are
+using split-configuration - dc_use_split_config='true' in
+/etc/exim4/update-exim4.conf.conf -
+/etc/exim4/conf.d/router/400_exim4-config_system_aliases.
+
+If any of your aliases expand to pipes or files or directories you
+should set up a user and a group for these deliveries to run under.
+You can do this by uncommenting the "user" option below (changing the
+user name as appropriate) and adding a "group" option if necessary.
+Alternatively, you can specify "user" on the transports that are used.
+Note that the transports listed in the system_aliases router are the
+same as are used for .forward files; you might want to set up
+different ones for pipe and file deliveries from aliases.
+
+# vim:tabstop=3:expandtab:shiftwidth=3:textwidth=73
diff --git a/debian/TODO b/debian/TODO
new file mode 100644
index 0000000..00e88c9
--- /dev/null
+++ b/debian/TODO
@@ -0,0 +1,29 @@
+Tell maintainers of exim and exim-tls that they need conflicts/replaces
+with -base (or -common or whatever name we choose).
+
+debconf:
+* validating input
+
+inetd support (sarge+1)
+Hurd patches?
+
+Think about a way to get daemon flavor, daemon version, and config
+package name into exim4.config.autogenerated via update-exim4.conf for
+more descriptive Received:-Headers and/or Banners.
+
+Generate alias files on package installation (see
+http://www.logic.univie.ac.at/mailman/private/exim4debian/2003-November/000997.html
+and following - long running thread that spans multiple months)
+
+Remove package specific routers, and encourage the other package
+maintainers to include them (see
+http://www.logic.univie.ac.at/mailman/private/exim4debian/2003-June/000730.html
+and following - long running thread that spans multiple months)
+
+================================================================
+Clean up misc-db
+
+================
+Post sarge:
+* remove ugly dependencies on passwd and conflicts with old bash.
+* use dh_installppp
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..42f2046
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,1335 @@
+exim4 (4.30-8) unstable; urgency=low
+
+ * remove dc_never_users from /etc/exim4/u-ex.conf.conf and the corresponding
+ pattern DEBCONFnever_usersDEBCONF from the template. The code is
+ superfluous since 4.24 introduced FIXED_NEVER_USERS and was broken, user
+ changes were not preserved. (am)
+ * Link against libmysqlclient10 instead of libmysqlclient12 to circumvent
+ symbol-clashes when using PAM with libpam-mysql. (Closes: #235938) (am)
+ * Dump temporary build-conflict with broken po-debconf. (am)
+ * Copy ugly passwd-dependency from -base to -config. (am)
+ * Do not throw away adduser's errormessages. Together with the added
+ dependency noted above this (Closes: #237657). (am)
+ * Installed copy of default configuration-file (example.conf) refered to the
+ temporary install-directory. Ugly hotfix. (Closes: #236483)
+ * Italian translation of debconf templates by Danilo Piazzalunga.
+ (Closes: #232207)
+ * Rewrite generation of /etc/aliases because it was broken when running
+ under debbian-installer/debootstrap, which installs the packages with
+ DEBIAN_FRONTEND=nointeractive and reconfigures them later (report by
+ Florian Effenberger). (am)
+ Instead of generating it _once_ and touching it never again ask for and
+ add alias for root if it is missing. Debconf template
+ exim4/dc_noalias_regenerate is not used any more. (Closes: #237524)
+ * Norwegian Bokmål translation of debconf templates by Steinar H. Gunderson.
+ (Closes: #237680)
+ * Dump local_scan perl-plugin. Upstream development has stopped. (am)
+ * Maintainer scripts now run with -x if environment variable EX4DEBUG
+ is set (mh).
+ * Minor clarifications of debian/README (mh).
+ * rm -rf Local on debian/rules clean (mh).
+ * Swedish translation of debconf templates by André Dahlqvist.
+ (Closes: #238987)
+ * Portuguese (pt) translation of debconf templates by Nuno Sénica.
+ (Closes: #239030)
+ * Lithuanian translation of debconf templates by Kęstutis Biliūnas.
+ (Closes: #239118)
+ * Add examples for client certificate-checking by J.H.M. Dassen (Ray)
+ (Closes: #236609)
+ * Adapt README.* to /etc/exim4/exim4.conf.template (am)
+ * Update to exiscan v16
+
+ -- Andreas Metzler <ametzler@debian.org> Wed, 24 Mar 2004 15:39:35 +0100
+
+exim4 (4.30-7) unstable; urgency=low
+
+ * 4.30-6 was rejected, we use | and || for OR in dependency fields.
+ * libldap2 now uses GnuTLS10. Follow suit. (Temporarily bumped libldap2-dev
+ build-dependencies for paranoia's sake.)
+
+ -- Andreas Metzler <ametzler@debian.org> Mon, 23 Feb 2004 17:03:58 +0100
+
+exim4 (4.30-6) unstable; urgency=low
+
+ * Finnish translation of debconf templates by Tapio Lehtonen.
+ (Closes: #229792)
+ * Simplified Chinese translation of debconf templates by Carlos Z.F. Liu.
+ (Closes: #229910)
+ * Spanish translation of debconf templates by Javi Castelo. (Closes: #232207)
+ * To increase robustness set explicit "domains = +local_domains" on all the
+ routers that are supposed to be handling _only_ local mail (i.e. anything
+ after dnslookup or smarthost) instead of relying on the no_more.
+
+ If the router handling remote addresses was modified by adding a
+ precondition the address would have wrongly been handled by the later
+ routers if the precondition failed, breaking at least "verify = sender".
+ (Closes: #230403) (am)
+ * In the data ACL add a Message-ID header to mails injected with SMTP from
+ +relay_from_hosts. (Exim stopped doing this by default in 4.30.) (mh)
+ * binary-all metapackage exim4 does not depend anymore on exim4-base with
+ exactly the same version. There is no necessity for dependencies that
+ strict and it broke both binary NMUs and installability on lagging
+ architectures. (Closes: #231678) (am)
+ * Give way to the "I use sid but keep it outdated by not running apt-get
+ upgrade ever."-fraction. exim4-base now depends on working versions of
+ passwd i.e. the version in woody or the one that has been in sid
+ for more than 6 months. (Closes: #230423,#230836,#231111) (am)
+ * in source-package symlink identical maintainerscripts. (am/mh)
+ * Ship README.Debian.xinetd, explaning why we do not use (x)inetd and how to
+ use xinetd properly if you insist. (Closes: #226627)
+ * Update Build-Depencies to fit the XFree86 4.3 packages.
+ * Make new lintian happy by quoting section and needs in eximon's
+ menu-file.
+
+ -- Andreas Metzler <ametzler@debian.org> Mon, 23 Feb 2004 15:48:56 +0100
+
+exim4 (4.30-5) unstable; urgency=low
+
+ * Only use db_settitle if available (Closes: #226992) (am)
+ * Up to date debconf translations for all nine supported languages, thanks
+ to the translators: Miroslav Kure (Czech), Claus Hindsgaul (Danish),
+ Konstantinos Margaritis (Greek), Christian Perrier (French),
+ Kenshi Muto (Japanese), Bart Cornelis (Dutch), André Luís Lopes
+ (Brazilian Portuguese) and Ilgiz Kalmetev (Russian) (am)
+ * After merging translations split the configtype-template, using the
+ __Choices trick. I don't think I made any errors because podebconf's
+ output has not changed. (am)
+ * Don't use /etc/mailname (DEBCONFvisiblenameDEBCONF) as primary_hostname
+ for minimaldns option. (Closes: #225477)
+ * (Re)introduce /etc/exim4/exim4.conf.template as alternative to the
+ multiple small files in /etc/exim4/conf.d/ and make it the default choice
+ for fresh installations. This trades in a loss of comfort (you will again
+ need to merge in each small change manually) for increased stability.
+ (Closes: #224828) (am)
+ * Disable piping to programs in /etc/aliases per default, because they would
+ run as Debian-exim:Debian-exim per default. Add README.system_aliases
+ suggesting dedicated router/transport pairs (am/mh) (Closes: #228062)
+ * modify create-custom-package and adapt debian/rules to allow
+ building multiple named custom packages in a single build. (mh)
+ * "dpkg-reconfigure exim4-config" actually tells exim4 to read the updated
+ configuration. (am)
+ * Use -qqf instead of -qf in the ip-up.d file to force delivery of all
+ messages over a single SMTP connection. (Closes: #228001)
+
+ -- Andreas Metzler <ametzler@debian.org> Wed, 21 Jan 2004 15:09:00 +0100
+
+exim4 (4.30-4) unstable; urgency=low
+
+ * Updated Japanese debconf template translation by Kenshi Muto
+ (Closes: #224584)
+ * Remove bashism from update-exim4.conf (Closes: #224617) (Jochen Voss)
+ * Czech translation of debconf templates by Miroslav Kure (Closes: #225713)
+ * Fix typos in README.Debian. (Closes: #225149) (Vincent Lefevre)
+ * Replace first, too long debconf question with three short ones (Joey
+ Hess) (Closes: #222720)
+ * Use a custom debconf title. (Closes: #222715)
+ * Greek translation of debconf templates by Konstantinos Margaritis
+ (Closes: #226844)
+
+ -- Andreas Metzler <ametzler@debian.org> Fri, 9 Jan 2004 09:12:07 +0100
+
+exim4 (4.30-3) unstable; urgency=low
+
+ * update debian/copyright from NOTICE. (No substantial changes, credits
+ for new code) (am)
+ * missing \| made exim4-base.postinst configure hang. (Closes: #224294) (am)
+ * update-exim4.conf: Don't try chown if not running as root. (mh)
+ * Remove useless definition of an auth_over_tls_hosts hostlist in
+ 03_exim4-config_tlsoptions. - It was probably a leftover from somebody
+ running convert4r4. (am)
+ * Make it possible to override spooldir in another config-file snippet, too.
+ (Closes: #223973)
+
+ -- Andreas Metzler <ametzler@debian.org> Fri, 19 Dec 2003 15:27:50 +0100
+
+exim4 (4.30-2) unstable; urgency=low
+
+ * Fix exim4-base.logrotate to create logfiles accessible for the new
+ exim-user. (Closes: #223860,#223862)
+ * comment in 03_exim4-config_tlsoptions refered to the user "mail" too.
+
+ -- Andreas Metzler <ametzler@debian.org> Sat, 13 Dec 2003 15:01:20 +0100
+
+exim4 (4.30-1) unstable; urgency=low
+
+ * Exim now runs under its own uid (Debian-exim) instead of using
+ mail:mail. (am)
+
+ WARNING: You cannot downgrade this version to an older one without
+ manual chown|chgrp all files owned by Debian-exim to mail.
+
+ - control: dependency on adduser and virtual package exim4-config-2 to
+ force review of external -config packages.
+ - use a statoverride for passwd.client.
+ - different postinst scripts:
+ * adduser.
+ * chown|chgrp files/directories owned by mail (group|user) to
+ Debian-exim.
+ * update-exim4.conf does not exit immidiately if /etc/exim4/exim4.conf
+ exists AND -o is specified. (Bill Moseley)
+ * Brazilian Portuguese debconf template translation by André Luís Lopes
+ (Closes: #219781)
+ * Dutch debconf template translation by Bart Cornelis (cobaco)
+ (Closes: #220694)
+ * Pull Dansk debconf template translation from ddtp.
+ * Use a macro to make it possible to overide the value of spool_directory
+ with -DSPOOLDIR=. Needed for mailscanner, (Closes: #221468), suggested by
+ Matthias Klose.
+ * enable support for Cyrus saslauthd (package sasl2-bin,
+ /var/run/saslauthd/mux) for SMTP AUTH against /etc/shadow. (am)
+ * Christian Perrier has reviewed the debconf-templates and changed them to
+ follow the "Debconf Templates Style Guide". (Closes: #221838) Thanks to
+ the (ru|nl|fr|pt_BR) translators for updating their translations.
+ * New upstream version 4.30 with exiscan 4.30-14 (am)
+ - option table for -d in exim(8) readable (but not perfect).
+ (Closes: #214853)
+ - Messages for configuration errors now include the name of the main
+ configuration files (Closes: #202136)
+ - does not reject IPv6 address literals in EHLO/HELO anymore
+ (Closes: #222521)
+ * exim4-config.config: support going back to previous *package* when invoked
+ by base-config 2.0. (Closes: #222773). Suggested by Joey Hess. (am)
+ * exim4-config now conflicts with non-exim4 packages providing MTA, to keep
+ dselect from automatically installing it (and -base) on dist-upgrades on
+ systems that use a different MTA. (mh)
+ * exim4-base depends on netbase again because exim requires
+ /etc/services.(mh)
+ * reindent init-script with two spaces instead of tabs to fit it in 80
+ chars/line. (Closes: #221458)
+
+ -- Andreas Metzler <ametzler@debian.org> Mon, 8 Dec 2003 16:52:32 +0100
+
+exim4 (4.24-3) unstable; urgency=low
+
+ * rename create-custom-package to create-custom-config-package (mh)
+ * add create-custom-package to create renamed exim4-daemon-custom (mh)
+ * README.TLS: Don't suggest to use commands messing up the local terminal
+ (Sander Smeenk)
+ * Pull Dansk debconf translation from ddtp (not yet up to date)
+ * correct last references to uncompressed /u/s/d/e/README.Debian
+ (Closes: #216639), also kill references to exim-tls. (Closes: #216979)
+ (Kevin "Starfox" Arima). (am)
+ * add exim4-config-medium template package to sources, document (mh)
+ * Update to exiscan 4.24-13 (bugfix-release).
+ * Ask about mailname after configtype. (Closes: #217931) (am)
+ * minor thinko in debconf "local mail only"-config. (am)
+ * update-exim4.conf: now add comment indicating the source file
+ (Closes: #202040) (mh)
+ * add --confdir option to update-exim4.conf (mh)
+ * add "nodaemon" and "queueonly" option to /etc/default/exim4 and
+ init script (mh).
+ * Fix po2debconf on woody systems with old debhelper and po2debconf. (am)
+ * exim4-config does not depend on exim4-base. (am)
+ * Use "command -v" to check for existence of invoke-rc.d instead of
+ hardcoding its path. (am)
+ * Russian debconf translation by Ilgiz Kalmetev (Closes: #219101)
+
+ -- Andreas Metzler <ametzler@debian.org> Tue, 4 Nov 2003 12:18:38 +0100
+
+exim4 (4.24-2) unstable; urgency=low
+
+ * Grammar of debconf-templates rectified by Ben Foley.
+ * Handholded by Denis Barbier I have imported debconf translations from
+ postfix: fr.po (Philippe Batailler), ja.po (Kenshi Muto), nl.po (Bart
+ Cornelis) and pt_BR.po (André Luís Lopes). It is just 5 translated
+ messages, 4 fuzzy translations, but it's a start.
+ * No more first person in debconf-templates (Adam D. Barratt)
+ * README.TLS was updated.
+ * pseudopackage libxaw-dev is gone in sid (and libxaw7-dev is already
+ available in woody) - Removed from build-depends.
+ * French debconf translation by Christian Perrier (Thanks for the other
+ hints, too.)
+ * Build-Conflict with broken po-debconf (= 0.8.0). (Closes: #215432)
+ * Add menu-entry for eximon (Artur R. Czechowski) (Closes: #215579).
+ * Resolve name-clash between client- and server-side authenticators (Bug
+ found by Rob Ristroph)
+
+ -- Andreas Metzler <ametzler@debian.org> Wed, 15 Oct 2003 12:45:49 +0200
+
+exim4 (4.24-1) unstable; urgency=low
+
+ * New upstream version
+ - 55_fixesfrom-4.23.dpatch is not needed anymore.
+ - most interesting new feature: $acl_xx are now saved with the
+ message, and can be accessed later in routers, transports, and filters.
+ - Cannot run deliveries as root anymore. If you don't redirect mail for
+ root via /etc/aliases or other means to a nonpriviledged account the
+ mail will be delivered to /var/mail/mail with permissions 0600 and owner
+ mail:mail. Change to local_user router to keep it from trying to route
+ mail for root.
+ * debconf for exim4-config pointed to /u/s/d/e/README.Debian but the
+ file is available as README.Debian.gz (Closes: #211934)
+ * exim(8) manpage provides correct NAME section for mailq/runq/... to
+ generate corresponding whatis/apropos info (Thanks to Dan Jacobson
+ <jidanni@jidanni.org> for mentioning lexgrog(1))
+ * polish and crosslink documentation about SMTP AUTH in config-files,
+ documentation and debconf templates. (Closes: #202920)
+ * Ship README.SIEVE (Thanks to Ross Boylan)
+ * Sync some debconf templates against the respective ones in postfix
+ 2.0.16, to limit the work of translators.
+ * update-exim4defaults/init-script: Add a new value fuer QUEUERUNNER,
+ "ppp". - Don't run queue by daemon but still run it from
+ /etc/ppp/ip-up.d/exim4. (Dan Jacobson pointed out that this was very
+ akward to accomplish with old setup.) update-exim4defaults now exits with
+ an error if the argument for --queuerunner is invalid.
+ * Enable gettext-style localisation of debconf templates with
+ compatibility code for woody
+ * Add German debconf-translation. (Some strings were copied from Martin A.
+ Godischs translation of postfix's templates).
+
+ -- Andreas Metzler <ametzler@debian.org> Sun, 5 Oct 2003 13:41:30 +0200
+
+exim4 (4.22-5) unstable; urgency=low
+
+ * Sorry, this is not 4.23. Tom is on holidays and because 4.23 changes
+ some ACL code, exiscan needs in depth checking and not just applying the
+ patch by hand.
+ * exim4-config conflicts with bash (<< 2.05), because it cannot handle
+ aliases in functions. This does not necessarily fix dist-upgrades
+ from potato to sarge because debconf-config might happen before the
+ new bash is installed but will keep people running potato from
+ trying to install exim4-config. (Closes: #209720)
+ * sanitize /usr/sbin/exim4's permissions, building with 007 umask
+ could have installed it -rws--x--x
+ * evaluation -oP option for specifying pid-file is broken in 4.22, use fix
+ from 4.23 (Closes: #210847)
+ * "warn log_message blah" in DATA acl triggered dumping of full headers
+ to reject.log, although the message was not rejected by this acl
+ statement. Take fix from 4.23. (Closes: #208782)
+ * On cross-upgrades from exim3 unfold lines continued with a backslash
+ in the old exim3 configuration before trying to parse it to preanswer the
+ debconf-questions. (Closes: #210404) First instance of using perl in our
+ maintainer-scripts, but I could not do it with sed.
+
+ -- Andreas Metzler <ametzler@debian.org> Fri, 19 Sep 2003 13:55:07 +0200
+
+exim4 (4.22-4) unstable; urgency=low
+
+ * Update to exiscan-acl revision -12. (Emergency fix: When you were using
+ 'discard', and it was the last verb affecting a message, the mbox spool
+ files in the scan directory were not cleaned up.)
+ * Add syslog2eximlog by Martin Godisch, a script to make logfiles produced
+ with exim option "log_file_path = syslog" readable for eximstats.
+ (Closes: #208524)
+ * Enhance description of -heavy and light a little bit. (Closes: #208404)
+ * Standards-Version: 3.6.1, no changes required, we already prompt with
+ debconf.
+
+ -- Andreas Metzler <ametzler@debian.org> Thu, 4 Sep 2003 19:19:25 +0200
+
+exim4 (4.22-3) unstable; urgency=low
+
+ * Add copright notice of exiscan-acl to debian/copyright.
+
+ -- Andreas Metzler <ametzler@debian.org> Wed, 27 Aug 2003 17:49:46 +0200
+
+exim4 (4.22-2) unstable; urgency=low
+
+ * Include exiscan-acl patch 4.22-10 http://duncanthrax.net/exiscan-acl/
+ in -heavy and -custom (Closes: #204698)
+ * clean up gnutls-params on purge of base-package.
+
+ -- Andreas Metzler <ametzler@debian.org> Wed, 27 Aug 2003 12:50:59 +0200
+
+exim4 (4.22-1) unstable; urgency=low
+
+ * new upstream version 4.22. Please take a look at README.UPDATING
+ and NewStuff in /usr/share/doc/exim4-base/
+
+ -- Andreas Metzler <ametzler@debian.org> Mon, 18 Aug 2003 16:51:47 +0200
+
+exim4 (4.20-5) unstable; urgency=low
+
+ * Fix EHLO/HELO buffer-overflow CAN-2003-0698 (Closes: #205716)
+ * exim-gencert was using '.' as separator for chown.
+ * "head -n 1" instead of "head -1" in scripts
+ * install /etc/exim4/passwd.client as root:mail 0640 (Closes: #205104)
+ (it needs to be readable for the exim-user or -group, i.e. mail:mail)
+ * set mode_fail_narrower = false for mail_spool and maildir_home transports
+ (Closes: #204228)
+ * Standards-Version: 3.6.0, no changes required.
+
+ -- Andreas Metzler <ametzler@debian.org> Sat, 16 Aug 2003 17:40:17 +0200
+
+exim4 (4.20-4) unstable; urgency=low
+
+ * CFILEMODE and dc_local_interfaces were not saved in update-exim4.conf.conf
+ on fresh installations.
+ * update-exim4.conf: Remove comments _after_ doing DEBCONFpatternDEBCONF
+ replacement.
+ * conf.d/auth/30_exim4-config_examples: Fix forced failure of AUTH LOGIN
+ client on non-encrypted connections.
+
+ -- Andreas Metzler <ametzler@debian.org> Tue, 5 Aug 2003 10:38:16 +0200
+
+exim4 (4.20-3) unstable; urgency=low
+
+ * hub_user router: set correct .ifdef, remove superficial condition=
+ * don't generate main/03_exim4-config_neverusers dynamically, use
+ a DEBCONF_foo pattern that is replaced by up-ex4.conf. exim4 should
+ now play nicely with readonly /etc.
+ * Enable exim-filter in .forward per default. (Closes: #201827)
+ * Enable maildrop-delivery for users with ~/.mailfilter
+ * Easier setup of client side SMTP authentification:
+ -short README file.
+ -passwd.client example shipped in CONFDIR
+ -30_exim4-config_examples:
+ +change order, prefer cram-md5.
+ +enable by default (auth-plain and -login only for TLS protected
+ connections). They remain inactive while hosts_try_auth is
+ disabled.
+ * add comments listing the filename to the files in conf.d that were
+ changed anyway. Addresses part of 202040.
+ * remove misleading comments about "bottom of file" or "see below"
+ from config-snippets. (Closes: #202165)
+ * Disable orphaned inetd-entries from exim (v3) caused by bugs #202670 and
+ #182206 in exim4-config's postinst. I'll close #201143 manually.
+ * Restructure and clarify README.Debian and polish update-exim4.conf(8).
+ Thanks to Ross Boylan for pushing me in the correct direction.
+
+ -- Andreas Metzler <ametzler@debian.org> Thu, 24 Jul 2003 10:29:19 +0200
+
+exim4 (4.20-2) unstable; urgency=low
+
+ * update-exim4.conf works without daemon-package (Closes:#195329)
+ * Add dnslookup_relay_to_domains router for "internet" config to
+ allow relaying for domains with an MX pointing to an rfc1918
+ address. (Closes: #198410) (MH)
+ * update-exim4.conf would hang if one of the subdirectories in conf.d
+ was empty. (Report and fix by Marc Merlin)
+ * Build-Depend on libgnutls7
+ * Preserve comments in update-exim4.conf.conf by first adding missing
+ items and replacing the values with sed instead of regenerating file
+ from scratch (Closes: #184099)
+ * Set return_path_add, delivery_date_add and envelope_to_add for
+ maildir-transport (Closes: #196178)
+ * Use email-addresses file in /etc/ instead of in /etc/exim4 as exim3 does,
+ exim4-config now needs to conflict with exim,exim-tls. We still include
+ code for evaluating the old file if it exist, but suggest moving the
+ contents to the new file in NEWS.Debian. postinst will remove old orphaned
+ file if it is unmodified. (Closes: #197136)
+ * Set return_fail_output instead of return_output on address_pipe transport.
+ (Closes: #201280)
+ * Stop generating rewriting rules dynamically, exim4 accepts any
+ "address-list" item as source-pattern for rewriting. (Changelog entry
+ obfuscated on purpose, read exim4debian for painful details.). Remove old
+ dynamically generated files in postinst if they were managed by upex4conf.
+ * daemon-light supports TLS (Closes: #193596)
+
+ -- Andreas Metzler <ametzler@debian.org> Wed, 16 Jul 2003 13:36:27 +0200
+
+exim4 (4.20-1) unstable; urgency=low
+
+ * New upstream
+ * Standards-version 3.5.10 (no changes required)
+ * The doc packages have got new sane names - update Suggests.
+ * Fix a endless loop (currently ownly showing when upgrading from old
+ experimental packages) - Thanks to Marc Langer for the report.
+ * introduce ${Upstream-Version} as substitution variable for
+ debian/control (MH)
+ * Make dependencies less strict, *-daemon-* 12.34-1 can be installed with
+ -base 12.34-5.
+
+ -- Andreas Metzler <ametzler@debian.org> Mon, 19 May 2003 14:14:16 +0200
+
+exim4 (4.14-1) unstable; urgency=low
+
+ * Upload to sid (Closes: #179066)
+ * Ship an (empty) acl_check_data with commented out examples. Add
+ Infrastructure to ease their activation. (MH)
+
+ -- Andreas Metzler <ametzler@debian.org> Fri, 16 May 2003 18:02:46 +0200
+
+exim4 (4.14-0.6) experimental; urgency=low
+
+ * Don't link to gnutls' (tasn,gcrypt) dependencies directly
+ (Closes: #193018)
+ * fix AUTH PLAIN server side example to work if the data is not given
+ in initial-response (exim-bug 193094)
+ * ACL-updates (MH)
+
+ -- Andreas Metzler <ametzler@debian.org> Wed, 14 May 2003 12:16:06 +0200
+
+exim4 (4.14-0.5) experimental; urgency=low
+
+ * updated version of dlopen patch (Marc Merlin)
+ * don't regenerate files managed by update-exim4.conf on package
+ updates if the local admin had deleted them.
+ * replace the listenonpublic yes/no question with one that allows to
+ specify on which interfaces to listen to (Closes: #190498)
+ * new dc-question for dial-on-demand-users to minimize DNS lookups
+
+ -- Andreas Metzler <ametzler@debian.org> Thu, 1 May 2003 16:03:59 +0200
+
+exim4 (4.14-0.4) experimental; urgency=low
+
+ * Renamed conf.d files from *exim4-base* to *exim4-config* since
+ they can now be found in the exim4-config package.
+ WARNING, this breaks updates. After installation, execute
+ something like the following bash snipped to rename your files:
+ for i in `find . -name *exim4-base*`; do mv $i ${i/exim4-base/exim4-config}; done
+ (MH)
+ * Include more sophisticated check_rcpt ACL, include documentation,
+ include even more sophisticate check_rcpt ACL in
+ /u/s/d/e4-config/examples/acl. (MH)
+ * update-exim4.conf now filters out consecutive empty lines (MH)
+ * make update-exim4.conf's behaviour for configtype=none more consistent,
+ respect CFILEMODE and --removecomments. (Thanks to Marc Merlin)
+ * add warning about editing /etc/exim4/exim4.conf in place (Marc Merlin)
+ * use .rul instead of .disabled to override/disable configfiles in
+ /etc/exim4/conf.d/ (Suggested by Marc Merlin)
+ * fix smtp auth client-side examples (Closes: #188828), thanks to Karl
+ M. Hegbloom for the bug report (AM)
+ * add @DPATCH@-tag to patches, as required by dpath-edit-patch in
+ dpatch 1.17 (AM)
+
+ -- Andreas Metzler <ametzler@debian.org> Fri, 25 Apr 2003 12:37:50 +0200
+
+exim4 (4.14-0.3) experimental; urgency=low
+
+ * add '|| true' to every call of db_input. (Thanks to Pierfrancesco Caci for
+ the bugreport.) (Closes: #187008)
+ * Don't set received_header_text in 02_exim4-base_options, use upstream's
+ default.
+ * renumber routers to have more space for local customization.
+ WARNING WARNING upgrade is broken, execute this in
+ /etc/exim4/conf.d/router to get rid of the superfluous files:
+ mv 20_exim4-base_domain_literal 100_exim4-base_domain_literal
+ mv 22_exim4-base_primary 200_exim4-base_primary
+ mv 24_exim4-base_real_local 300_exim4-base_real_local
+ mv 26_exim4-base_system_aliases 400_exim4-base_system_aliases
+ mv 28_exim4-base_hubuser 500_exim4-base_hubuser
+ mv 30_exim4-base_userforward 600_exim4-base_userforward
+ mv 32_exim4-base_procmail 700_exim4-base_procmail
+ mv 34_exim4-base_maildrop 800_exim4-base_maildrop
+ mv 36_exim4-base_local_user 900_exim4-base_local_user
+ * add *syntax_errors* directives to userforward router, to use partially
+ valid .forward files instead of skipping them. (Marc Haber)
+ * update mysql build-depends
+
+ -- Andreas Metzler <ametzler@debian.org> Wed, 9 Apr 2003 16:19:46 +0200
+
+exim4 (4.14-0.2) experimental; urgency=low
+
+ * upstream fix for crash with AUTH PLAIN
+ * upgrade to policy 3.5.9.0 (CFLAGS in debian/rules)
+ * Add (maildir) transport for handling file addresses generated by
+ alias or .forward files if the path ends in "/", enabled for .forward per
+ default, but not for /etc/aliases. Thanks to Andreas Horter.
+ * add debconf question to move files from exim3 spool to exim4 spool
+ * run exim_tidydb as mail:mail using start-stop-daemon
+ * Make manpages UTF-8 compatible with nicer quotes and escaped dashes.
+ * fakeroot debian/rules builddaemonpackages=exim4-daemon-custom \
+ buildbasepackages=no binary produced a broken exim4-config package.
+ (Bug found by Soren Andersen)
+ * introduce new replacement item DEBCONFpackageversionDEBCONF holding
+ the complete version number, might be useful for Received headers (Marc
+ Haber)
+
+ -- Andreas Metzler <ametzler@debian.org> Thu, 27 Mar 2003 17:04:02 +0100
+
+exim4 (4.14-0.1) experimental; urgency=low
+
+ * New upstream version
+ * 20_fix.lsearch.dpatch not needed anymore
+ * use new feature .ifdef instead of simulating it with condition=...
+ * change priority of exim4-daemon-light to important
+
+ -- Andreas Metzler <ametzler@debian.org> Thu, 13 Mar 2003 15:03:41 +0100
+
+exim4 (4.12-0.2) experimental; urgency=low
+
+ * instead of generating 22_exim4-base_primary by copying the correct
+ file into it, use condition=... to select the correct one. Similar
+ change to 28_exim4-base_hubuser
+
+ -- Andreas Metzler <ametzler@debian.org> Thu, 6 Mar 2003 11:55:55 +0100
+
+exim4 (4.12-0.1) experimental; urgency=low
+
+ * minimal doc-updates
+ * init-script: output status-message before starting upex4conf()
+ * polish smtp-auth examples - don't hardcode passwords in main
+ configuration file.
+ * change default file-permissions of configfile to 0644. This can be changed
+ by setting CFILEMODE in the default file.
+ * rename debian/patches/*, giving each one an unambiguous number
+ * ignore private rfc1918 and APIPA addresses in internet router (MH)
+ * correct info about authorship of dlopen patch
+ * don't link exim4-daemon-light against PAM (explicitely link it against libdl)
+ * same_domain_copy_routing = yes for primrout-internet, primrout-satellite
+ and primrout-smarthost (MH)
+ * rename debconf.results to update-exim4.conf.conf, add upgrading-magic for
+ upgrading from 4.12-0 and earlier (marked as REMOVEMEBEFORERELEASE)
+ * introduce REMOVEMEBEFORERELEASE-tag, grep -r on debian/ will show us all
+ the cruft that needs to be removed before uploading to unstable.
+
+ -- Andreas Metzler <ametzler@debian.org> Wed, 5 Mar 2003 19:03:59 +0100
+
+exim4 (4.12-0) experimental; urgency=low
+
+ * removed TODO marker from the copyright file
+ * version number for first Debian upload
+ * built i386 binary package on sid
+
+ -- Marc Haber <mh+debian-packages@zugschlus.de> Fri, 21 Feb 2003 14:40:42 +0100
+
+exim4 (4.12-0.0.21) experimental; urgency=low
+
+ * update copyright
+ * exim-gencert: generate certificates valid for three years instead 30
+ days
+ * remove debian/debconf/exim4.conf.template
+ * enable LMTP, LOOKUP_NIS and mailstore for daemon-light
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Fri, 21 Feb 2003 12:55:40 +0100
+
+exim4 (4.12-0.0.20) experimental; urgency=low
+
+ * ship /usr/lib/exim4/exim4 and use it to check whether daemon package
+ is installed.
+ * Exim doesn't require a HUP after logrotation. (See spec 44.2) (MH)
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 20 Feb 2003 19:23:45 +0100
+
+exim4 (4.12-0.0.19) experimental; urgency=low
+
+ * Ship upstream-changelog only in exim4-base, Symlinks in packages depending
+ on it. Split off changelog entries up to 3.34-1 to changelog.Debian.old
+ which is only included in exim4-base. - Spares about 100KB.
+ * Ship ACKNOWLEDGMENTS in exim4-base docs.
+ * remove debian/exim4-config.docs, files are already shipped in exim4-
+ base
+ * disable some the unneeded dh_* commands from binary-indep target.
+ * make exim4 a metapackage
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 20 Feb 2003 12:41:17 +0100
+
+exim4 (4.12-0.0.18) experimental; urgency=low
+
+ * split off all configuration to exim4-config
+ * include exim4-config-simple source package
+ * include script to generate exim4-config source package
+ * changed distribution to experimental
+ * Add patch by Phil Hazel to fix lsearch*@ lookups. (AM)
+ * Remove exim4-daemon-perl; merge it into exim4-daemon-heavy (AM)
+ * Prepare removal of "exim4" daemon-flavour: Exchange the roles of
+ "exim4" and "exim4-daemon-light" in debian/rules: build helper
+ binaries, eximon, et.al. while building exim4-daemon-light. Rename
+ EDITME.exim4-base.diff to EDITME.exim4.diff. (AM)
+ -----
+ WARNING: This breaks your debian/EDITME.exim4-custom.diff, as it was
+ generated to show the differences to debian/EDITME.exim4-base instead of
+ EDITME.exim4-light. (AM)
+ -----
+
+ -- Marc Haber <mh+debian-packages@zugschlus.de> Tue, 18 Feb 2003 16:16:45 +0100
+
+exim4 (4.12-0.0.17) unstable; urgency=low
+
+ * mv 26_exim4-base_aliases 26_exim4-base_system_aliases (MH)
+ * mv 30_exim4-base_forward 30_exim4-base_userforward (MH)
+ * WARNING: upgrades are broken!
+ -After ugrading delete conffiles no longer in package in directories
+ below /etc/exim4/conf.d/:
+ router/26_exim4-base_aliases
+ router/30_exim4-base_forward
+ * all file names for transports and routers are now consistent with
+ Transport/Router defined inside (MH)
+ * add debug_print to all transports/routers (MH)
+ * add cut -d\ -f1 to all md5sum calls in pipes (MH)
+ * add man page for exiqgrep (MH)
+ * fix typos in exiqsumm and exicyclog man page (MH)
+ * Don't install exim.8.diff as manpage, apply the patch instead. (AM)
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Sat, 15 Feb 2003 16:35:26 +0100
+
+exim4 (4.12-0.0.16) unstable; urgency=low
+
+ * Define CONFDIR-macro and use it in update-exim4.conf and some files in
+ CONFDIR. (AM)
+ * Enhance update-exim4.conf: remove comments by default, allow to write
+ output to a different file. (AM)
+ * update-exim4.conf: check validity of configfile before installing it
+ * fix breakage with newer md5sum - thanks to Sander (AM)
+ * check in init-script for smtp-service in inetd that is compatible with
+ openbsd-inetd's extended syntax (Hubert Chan) (AM)
+ * Don't link against libwrap, exim3 doesn't either (Alexander Koch) (AM)
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Fri, 14 Feb 2003 19:55:54 +0100
+
+exim4 (4.12-0.0.15) unstable; urgency=low
+
+ * If exim4/dc_listenonpublic=false add an explaing line to the
+ resulting configfile instead of a blank-line (Marc Haber)
+ * In postinst and cronjob make sure that db files are owned by
+ mail:mail
+ * Add buzzword convert4r4 to description of "No configuration" profile
+ * Body of manpage exim_convert4r4: s/convert4r4/exim_convert4r4/g
+ * Change maintainer, add Marc Haber to Uploaders
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sun, 2 Feb 2003 22:06:06 +0100
+
+exim4 (4.12-0.0.14) unstable; urgency=low
+
+ * fix bugs found by Marc Haber:
+ - search for email-addresses file in /etc/exim4/
+ - s/hostname -fqdn/hostname --fqdn/
+ * exim4-base.config: don't grep in /etc/aliases if does not exist yet.
+ * clear up config-script, using both $mailname and $dc_mailname was
+ irritating.
+ * fix wrong logic for aliases generation (= instead of !=)
+ * fix major breakage of debconf code: config-script is called two times
+ _before_ postinst writes debconf.results, db_set-commands (for sane
+ defaults) in the second-run overwrote the answers given by the user.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sat, 1 Feb 2003 15:06:58 +0100
+
+exim4 (4.12-0.0.13) unstable; urgency=low
+
+ * link against GNUTLS
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Fri, 31 Jan 2003 16:32:31 +0100
+
+exim4 (4.12-0.0.12) unstable; urgency=low
+
+ * clean up at purge: Remove logfiles, ask about removing
+ undelivered mails in spool directory.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Fri, 31 Jan 2003 13:32:37 +0100
+
+exim4 (4.12-0.0.11) unstable; urgency=low
+
+ * clean up update-exim4.conf:
+ + fix unconditional overwriting 03_exim4-base_neverusers
+ + one central `tempfile -m...`
+ + add skeleton function example
+ * add missing 'set -e' to exim4-base.postrm
+ * If there are no debconf answers and we are making a cross upgrade
+ from exim3, try to parse its config file to seed debconf db.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sun, 26 Jan 2003 12:22:23 +0100
+
+exim4 (4.12-0.0.10) unstable; urgency=low
+
+ * Get rid of error messages: don't call chmod/chown in
+ debconf/update-exim4.conf if the respective files don't exist. Don't try
+ to kill non running daemons.
+ * Don't start unconfigured daemon in init script, ie. require either
+ ${dc_eximconfig_configtype}" != "xnone or existence of handcrafted
+ /etc/exim4/exim4.conf.
+ Thanks to Alexander Koch for firmly pushing me this way.
+ * dc_listenonpublic was overwritten to true in config script.
+ * Typo in exim4-base.postrm prevented removal of
+ /etc/exim4/conf.d/router/28_exim4-base_hubuser
+ * Clean up /var/spool/exim4 properly; at least if there are just empty
+ directories.
+ * hub_user was broken because of unescaped $.
+ * import updated 10_daemon_close_fds.dpatch from Steve.
+ * only set neverusers if root is aliased somewhere.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Fri, 24 Jan 2003 17:14:13 +0100
+
+exim4 (4.12-0.0.9) unstable; urgency=low
+
+ * update-exim4defaults: Fix bugs, add option --init
+ * /etc/default/exim4 is no conffile anymore, it is generated with
+ update-exim4defaults.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Fri, 17 Jan 2003 13:39:46 +0100
+
+exim4 (4.12-0.0.8) unstable; urgency=low
+
+ * Don't ship now unneeded empty /var/lib/exim4/masquerade and
+ /var/lib/exim4/email_addresses
+ * move hub_user router to /etc/e4/c.d/
+ * move primary-router definition to /etc/e4/c.d/
+ * code in debian/rules installing /etc/exim4/conf.d/ tree ignores CVS
+ directories
+ * WARNING: upgrades from 0.0.6 and 0.0.7 are broken!
+ -After ugrading delete conffiles no longer in package in directories
+ below /etc/exim4/conf.d/:
+ rewrite/30_exim4-base
+ router/28_exim4-base_hub_user
+ - replace router/22_exim4-base_primary with a file containg only
+ the line "# d41d8cd98f00b204e9800998ecf8427e"
+ run update-exim4.conf afterwards and start daemon.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Tue, 14 Jan 2003 17:44:50 +0100
+
+exim4 (4.12-0.0.7) unstable; urgency=low
+
+ * Add configuration file managment code using md5sums stored in the file
+ itself to update-exim4.conf(8). Use it and move files for evaluation of
+ /e/e4/email-addresses and the masquerading rules from /var/lib/exim4 to
+ /etc/. Gets rid of /etc/exim4/conf.d/rewrite/30_exim4-base and its two
+ .includes.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Tue, 14 Jan 2003 13:05:51 +0100
+
+exim4 (4.12-0.0.6) unstable; urgency=low
+
+ * generate up to date manpage for eximstats with pod2man.
+ * EXPERIMENTAL: Split /etc/exim4/exim4.conf.template to little files
+ in /etc/exim4/conf.d/ - update docs accordingly.
+ * fix wrong path in exim4-base.doc-base.spec
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sun, 12 Jan 2003 18:25:40 +0100
+
+exim4 (4.12-0.0.5) unstable; urgency=low
+
+ * enhance default-file a lot.
+ * ship update-exim4defaults(8) - a script to allow other packages to modify
+ the default-file.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Mon, 6 Jan 2003 23:00:15 +0100
+
+exim4 (4.12-0.0.4) unstable; urgency=low
+
+ * Compile perl plugin with -fPIC
+ * Enable IPv6 support (Andrew Mulholland)
+ * remove exim4-base.cron.d, it only contained comments (no inetd support).
+ * enhance default-file: Allow disabling any queue runs and passing
+ additional options to exim daemon and/or the queuerunner.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Sun, 5 Jan 2003 13:16:37 +0100
+
+exim4 (4.12-0.0.3) unstable; urgency=low
+
+ * Keep patches separate to make upgrading easier, using dpatch.
+ * Rename eximon to eximon4: Otherwise this would force anybody who has
+ installed eximon and runs exim v3 to switch to exim v4
+ * Polish package descriptions a little bit.
+ * Drop Recommends for netbase. We don't support inetd anyway.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Tue, 31 Dec 2002 14:31:14 +0100
+
+exim4 (4.12-0.0.2) unstable; urgency=low
+
+ * Actually compile with -O2 (Matthias Klose)
+ * Apply localscan_dlopen.patch from
+ http://marc.merlins.org/linux/exim/files/sa-exim-current/ to make it
+ possible to switch local_scan functions *without* recompiling exim.
+ * compile local_scan.c perl plugin as shared object that is dlopened,
+ document this in exim4-daemon-perl's description and doc-directory.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sat, 21 Dec 2002 14:01:24 +0100
+
+exim4 (4.12-0.0.1) unstable; urgency=low
+
+ * New upstream 4.12, a strict maintainance release. Without any new features
+ (Don't worry - this is the real release i.e. Phil's third shot ;-)
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Wed, 18 Dec 2002 12:17:51 +0100
+
+exim4 (4.11-0.0.4) unstable; urgency=low
+
+ * Get rid of /usr/lib/exim4/exim (see README.Debian for patched files)
+ * Use relative paths in debian/eximon.dirs
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Tue, 17 Dec 2002 13:40:19 +0100
+
+exim4 (4.11-0.0.3) unstable; urgency=low
+
+ * fix dbm lookups (one-line patch to src/search.c)
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Fri, 13 Dec 2002 13:38:31 +0100
+
+exim4 (4.11-0.0.2) unstable; urgency=low
+
+ * Fresh installs were broken, as the initial test in update-exim4.conf
+ failed.
+ * update-exim4.conf exits silently if /etc/exim4/exim4.conf exists.
+ * don't invoke update-exim4.conf in postinst if configtype=none.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Wed, 11 Dec 2002 16:32:47 +0100
+
+exim4 (4.11-0.0.1) unstable; urgency=low
+
+ * New upstream version 4.11:
+ includes spec und util/* in orig.tar.gz, diff is small again.
+ see NewStuff items 49 to 57 for new features since snapshot 4.10.13.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Wed, 11 Dec 2002 13:01:07 +0100
+
+exim4 (4.10.13-0.0.4) unstable; urgency=low
+
+ * reformat manpages a little bit, start each sentence on a new line, refer
+ to /usr/share/doc/exim4-base/
+ * remove the %s from PID_FILE_PATH
+ * apply debian/fix-pid.issue.patch to fix minor security issue
+ http://www.exim.org/pipermail/exim-users/Week-of-Mon-20021202/046978.html
+ * test in init-script for working config before reloading/restarting
+ (Andreas Piesk)
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 5 Dec 2002 13:04:51 +0100
+
+exim4 (4.10.13-0.0.3) unstable; urgency=low
+
+ * update copyright from NOTICE
+ * Typos in exim(8)
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Wed, 4 Dec 2002 10:35:18 +0100
+
+exim4 (4.10.13-0.0.2) unstable; urgency=low
+
+ * Fix path for eximon.bin in eximon script (Andreas Piesk)
+ * Add comments at the head of exim4.conf.template, containing a short
+ introduction to the configuration scheme.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Tue, 3 Dec 2002 23:52:28 +0100
+
+exim4 (4.10.13-0.0.1) unstable; urgency=low
+
+ * Snapshot 4.10.13
+ * CONFIGURE_FILE=/etc/exim4/exim4.conf:/var/lib/exim4/config.autogenerated
+ * update update-exim4.conf* and documentation accordingly.
+ * Generate config.autogenerated with same permissions as
+ /etc/exim4/exim4.conf.template (it might conatain passwords)
+ * Add BIG FAT warning at head of autogenerated file.
+ * don't ship /var/lib/exim4/config.autogenerated, simply remove it on
+ purge if it exists.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Mon, 2 Dec 2002 12:45:58 +0100
+
+exim4 (4.10.12-0.0.1) unstable; urgency=low
+
+ * Upgrade to testing snapshot 4.10.12
+ * patches accepted/superseded by upstream: exim4-MID-expanded.patch, hmac*,
+ perl.c.patch
+ * patches that do not apply cleanly anymore: bV_shows_openssl_version.txt,
+ daemon_close_fds.txt, gcc_attributes-eximon.diff, gcc_attributes.txt,
+ tls_common.txt, tls_misc.txt, tls_session_cache.txt.
+ * minimize changes to scripts/exim_install - use INSTALL_ARG=-no_symlink instead.
+ * no util/cramtest.pl util/logargs.sh util/unknownuser.sh in upstream
+ tarball - perhaps only in testing version?
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 28 Nov 2002 16:11:52 +0100
+
+exim4 (4.10-0.srh20.19) unstable; urgency=low
+
+ * ship convert4r4 as /usr/sbin/exim_convert4r4 (with manpage)
+ * eximon does not provides/Conflicts: exim4-daemon
+ * switch AGAIN *-daemon provides MTA:
+ - *-daemon depends on -base instead of the other way round
+ - explicit "conflicts/replaces: exim, exim-tls" for the base package -
+ these need to add this the other way round, too (TODO).
+ - move symlinks for sendmail, mailq, rmail, rsmtp and their manpages (+the one
+ for newaliases) to the daemon-packages.
+ - no more non-debhelper-generated exim4-base.prerm, simplified
+ *daemon.postinst
+ * try to start daemon in postinst no matter whether configtype=none, people
+ might use it with a handcrafted exim4.conf.
+ * register /var/lib/exim4/email_addresses for dpkg.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sun, 24 Nov 2002 15:04:32 +0100
+
+exim4 (4.10-0.srh20.18) unstable; urgency=low
+
+ * add "Replaces: exim4-daemon" to all the daemon flavours, needed for
+ switching.
+ * Marc Haber:
+ make exim4-daemon-custom actually work.
+ building from CVS was broken
+ clean target missed Local/eximon.conf
+ * exim-daemon-perl recommends libexim-localscan-perl
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 21 Nov 2002 17:04:54 +0100
+
+exim4 (4.10-0.srh20.17) unstable; urgency=low
+
+ * add support for building a customized daemon (exim4-daemon-custom)
+ * tighten build-depends: official exim4-base linked against db3 won't
+ work well together with exim4-daemon-custom linked against libdb2
+ * ship compile time configuration (EDITME-files) in /usd/daemon-flavour.
+ * use /var/mail instead of /var/spool/mail (#169747)
+ * make uucp a trusted user. (#169545)
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sun, 17 Nov 2002 23:06:29 +0100
+
+exim4 (4.10-0.srh20.16) unstable; urgency=low
+
+ * fix Gecos pattern: 'From: "Andreas Metzler,,," <am...'#
+ * _big_ update for README.Debian: Document which patches were applied. Short
+ note about PAM.
+ * document that the perl flavour won't deliver any mail without
+ /etc/exim4/local_scan.pl in package description.
+ * fix examples for server-side SMTP AUTH
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sat, 9 Nov 2002 10:12:34 +0100
+
+exim4 (4.10-0.srh20.15) unstable; urgency=low
+
+ * Fix crash with perl 5.8 (threads), thanks to Eckebrecht von Pappenheim
+ <evp@heise.de>
+ * perl-package: search local_scan.pl in /etc/exim4 instead of /etc/exim.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Wed, 6 Nov 2002 22:46:12 +0100
+
+exim4 (4.10-0.srh20.14) unstable; urgency=low
+
+ * add /etc/default/exim4 (#123184, #95325)
+ * Don't start a queue runner with cron per default, exim runs as daemon.
+ * polish config-script: more states, strip blanks.
+ * Ask whether to bind to all local interfaces or only to localhost with sane
+ default depending on configtype. (#108853)
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 31 Oct 2002 14:05:50 +0100
+
+exim4 (4.10-0.srh20.13) unstable; urgency=low
+
+ * send stdout of logrotate postrotate-script to /dev/null
+ * polish exim4-base.postinst and exim4-base.templates
+ * use tcp-wrappers
+ * simplify update-exim4.conf. There is no need to only add remote_smtp
+ transport for special configurations. It does not hurt and should make it
+ easy for users to activate smtp-auth.
+ * install configration example to examples subdirectory
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Tue, 29 Oct 2002 08:42:42 +0100
+
+exim4 (4.10-0.srh20.12) unstable; urgency=low
+
+ * linked against external pcre
+ * clean up a little bit - move all manpages to debian/manpages/
+ * ship template /etc/exim4/email-addresses
+ * LFS support (-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE)
+ * Don't force sender verification by default
+ * I actually use this version.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sun, 27 Oct 2002 17:10:16 +0100
+
+exim4 (4.10-0.srh20.11) unstable; urgency=low
+
+ * if HUPed exim will rexec itself as /usr/lib/exim4/exim, changing the name
+ to exim - start-stop-daemon-daemon would not recognize it. Changed
+ init.script to exec /usr/lib/exim4/exim to set the processname to "exim".
+ This needs to be deuglified.
+ * use black magic in daemon-$flavour postinst to only start it there if
+ switching flavours.
+ * support for inetd has to wait for sarge+1
+ * fix description of 'exim4' daemon flavour.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sat, 26 Oct 2002 11:09:14 +0200
+
+exim4 (4.10-0.srh20.10) unstable; urgency=low
+
+ * don't provide symlink /usr/sbin/exim anymore - this broke coinstallation
+ with uninstalled exim 3 - the exim3-init script started the exim4-daemon.
+ Ship symlink /usr/lib/exim4/exim -> /usr/sbin/exim4 and set BIN_DIRECTORY
+ to /usr/lib/exim4. This is a little bit ugly but the alterative would be to
+ patch 7 files in src.
+ * the daemon packages conflict with each other by each having
+ Conflicts/Provides: exim4-daemon
+ * Add doc base support for spec and filter.txt (bug 165961)
+ * Switching daemon flavours restarts them.
+
+ -- Andreas Metzler <ametzler@balrog.logic.univie.ac.at> Fri, 25 Oct 2002 16:14:44 +0200
+
+exim4 (4.10-0.srh20.9) unstable; urgency=low
+
+ * apply exim4-MID-expanded.patch - make domain part of M-ID configurable.
+ Shipped in debian-subdir so it can be easily patch -R'd before official
+ debian release.
+ * set spool to /var/spool/exim4 in EDITME
+ * remove /var/run/exim4 on purge
+ * remove /var/(spool|log)/exim4 on purge if empty
+ * added manpages.
+ * allow relay for 127.0.0.1 : ::::1
+ * set host_find_failed = defer for smarthost router and mimick exim3. It
+ really sucks to get a frozen message and error to the postmaster _every_
+ time I try to send a message offline.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 24 Oct 2002 14:00:05 +0200
+
+exim4 (4.10-0.srh20.8) unstable; urgency=low
+
+ * info and html doc generated from separate source package - diff is
+ small
+ * remove m4 and texinfo from build-depends
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 24 Oct 2002 12:22:56 +0200
+
+exim4 (4.10-0.srh20.7) unstable; urgency=low
+
+ * config script as state machine - allows going back!
+ * hopefully last forgotten entry of /var/{spool,log,run}/exim in postinst
+ and cron.* fixed.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 24 Oct 2002 09:16:12 +0200
+
+exim4 (4.10-0.srh20.6) unstable; urgency=low
+
+ * generate /etc/aliases with debconf
+ * remove dpkg-statoverride managment with debconf, ship exim binary as 4755
+ root:root.
+ * update debian/copyright from NOTICE.
+ * add (commented out) maildrop-transport to template
+ * add (commented out) maildir-transport to template
+ * Remove some backslashes in template
+ * Fix *lots of* cut and paste errors, introduced by generating the
+ configuration template from the debconf_eximconfig perl script.
+ $local_delivery is wrong, define macro LOCAL_DELIVERY and use it instead.
+ Remove erranous backslashes.
+ * Add comments from the example configuration file to template.
+ * host and domain lists are colon separated.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Mon, 21 Oct 2002 22:37:45 +0200
+
+exim4 (4.10-0.srh20.5) unstable; urgency=low
+
+ * new debconf-code:
+ - shell scripts
+ - debconf-results are saved (and read from) /etc/exim4/debconf.results
+ - /etc/exim4/exim4.conf.template is a dpkg-conffile
+ - update-exim4.conf(8) merges these two files and generates exim's main
+ configuration file /var/lib/exim4/exim4.conf.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Sat, 19 Oct 2002 19:23:35 +0200
+
+exim4 (4.10-0.srh20.4) unstable; urgency=low
+
+ * symlink usr/sbin/exim4 <-> usr/sbin/exim in -base package was wrong.
+ * move invoke-rc.d to -base package - _it_ contains the init-script
+ * move stat-overide-stuff to -base package. - The values are filled in _its_
+ config.
+ * missing stuff from log/exim4 run/exim4 transition: exim-base
+ maintainerscripts.
+ * Daemon-packages have only debconf stuff left as maintainerscripts. How
+ about letting dh_installinit manage the initscript?
+ * exim4-base.postrm has no business removing /etc/exim/exim.conf
+
+ -- Andreas Metzler <ametzler@balrog.logic.univie.ac.at> Fri, 18 Oct 2002 14:40:46 +0200
+
+exim4 (4.10-0.srh20.3) unstable; urgency=low
+
+ * /etc/exim4/...
+ * fix cronjob: Test for existence of /etc/exim4/exim4.conf - it formerly
+ tested for exim3's configuration file
+ * /usr/lib/exim/ --> /usr/lib/exim4/ -- Put eximon.bin there, too.
+
+ -- Andreas Metzler <ametzler@logic.univie.ac.at> Fri, 18 Oct 2002 13:43:37 +0200
+
+exim4 (4.10-0.srh20.2) unstable; urgency=low
+
+ * more changes:
+ * /var/log/exim/ --> /var/log/exim4/
+ * /var/run/exim/ --> /var/run/exim4/
+ * /etc/init.d/exim --> /etc/init.d/exim4
+ * Use files named after the real package (exim4-base instead of) exim for
+ cron and logrotate. - use dh_installlogrotate and dh_installcron
+ * Don't install exim.8 manpages in daemon packages - symlink is enough, ship
+ real manpage in base-package. - use dh_installman.
+ * Get rid of m4-magic - without the alternatives there is no need.
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 17 Oct 2002 23:52:31 +0200
+
+exim4 (4.10-0.srh20.1) unstable; urgency=low
+
+ * rename package, replace dependencies.
+ - src: exim4
+ - binary exim(-something) --> exim4-something
+ - Remove Provides: exim - does not make sense anymore, dselect/apt
+ would take the real exim instead of the provided one.
+ - Revamp Dependencies and contents
+ * exim4-base provides/confl/repl: mta and depends on one of *our*
+ flavours
+ * each of the flavours only contains only /usr/sbin/exim4 and a manpagelink
+ exim4--->exim - there is no need to provides/confl/repl: mta, because
+ we ship no common file with the same name as in the original
+ exim4-package
+ - drop alternatives.
+ - install configuration example to /usr/share/doc/exim4-doc/examples
+
+ -- Andreas Metzler <ametzler@downhill.at.eu.org> Thu, 17 Oct 2002 17:58:08 +0200
+
+exim (4.10-0.srh20) unstable; urgency=low
+
+ * exim-base.config fixes during testing-- need to run debconf subs in a
+ list context to get their numeric return code.
+ * enqueue_question(): $code == 0 is ok too
+ * main: call fetch_default() not find_default() [when did I last test this?]
+ * install debconf_eximconfig (!!!!!!)
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 21:50:27 +0100
+
+exim (4.10-0.srh19) unstable; urgency=low
+
+ * Move the eximon binary into the eximon package!
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 19:36:48 +0100
+
+exim (4.10-0.srh18) unstable; urgency=low
+
+ * The clean: target now deletes doc/tmp
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 18:10:29 +0100
+
+exim (4.10-0.srh17) unstable; urgency=low
+
+ * Slave alternatives for "rmail" too.
+ * Changed libxaw-dev in build-depends to libxaw7-dev | libxaw-dev
+ * Added libperl-dev and m4 to build-depends
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 17:19:40 +0100
+
+exim (4.10-0.srh16) unstable; urgency=low
+
+ * Put --exec $DAEMON back on the start-stop-daemon --stop calls, since
+ start-stop-daemon complains about the process not being found after it
+ just killed it. (Due to Exim not removing its own pid file?)
+ * Point slave alternatives at .gz versions of manpages
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 16:12:08 +0100
+
+exim (4.10-0.srh15) unstable; urgency=low
+
+ * Fix "update-alternatives --remove" invocation.
+ * Remove alternatives AFTER stopping daemon.
+ * Use logrotate to cycle logs.
+ * Manually install logrotate/cron stuff, to call it "exim" instead of "exim-base".
+ * Install upstream exim.8 manpage, and slave alternatives.
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 15:44:56 +0100
+
+exim (4.10-0.srh14) unstable; urgency=low
+
+ * dh_installinit: pass --noscripts, put the script invocation etc. in
+ ourselves. This is still pretty nasty, but ensures that the deamons
+ are stopped/started themselves, not by exim-base.
+ * Also, pass --init-script=exim to use /etc/init.d/exim, not
+ /etc/init.d/exim-base.
+ * Fix some inconsistencies in the postsinst related to the above that
+ made lintian scream
+ * Remove the --exec option when stopping the daemon in the init script,
+ so that we still stop the daemon if the symlink changed to point to a
+ different version (hacky).
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 14:51:19 +0100
+
+exim (4.10-0.srh13) unstable; urgency=low
+
+ * Bah, fix paths of mailq etc. to be in /usr/bin, not /usr/lib
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 14:08:45 +0100
+
+exim (4.10-0.srh12) unstable; urgency=low
+
+ * The postinsts were totally broken, doing everything off the "install"
+ target, and nothing off "configure". Since they're all pracitcally the
+ same, they are now generated from daemon-postinst.m4.
+ * Fix invocations of dpkg-statoverride (sysuser??)
+ * Added slave alternatives for mailq, sendmail etc.
+ * Removed daemon packages conflicting with mail-transport-agent,
+ although this isn't good-- the deamon packages don't conflict with
+ each other (they use alternatives to arrange themselves), but do
+ conflict with other MTAs that install
+ /usr/lib/sendmail|/usr/sbin/sendmail links. Urnf.
+ * Similar generation system for prerms as postinsts
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 13:47:53 +0100
+
+exim (4.10-0.srh11) unstable; urgency=low
+
+ * Urnf, nasty circular dependencies. Removed exim-base's dependency on exim-daemon.
+ * Fix "use strict" errors in exim-base.config (oops)
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 13:10:25 +0100
+
+exim (4.10-0.srh10) unstable; urgency=low
+
+ * Patch src/expand.c with HMAC support
+ * Rename exim-daemon-default package to just "exim", so upgrading works
+ better, and exim isn't made into a pure virtual package while other
+ packages depend on it. Moreover, mail-transport-agent is provided by
+ each of the daemon packages, not exim-base, since having exim-base
+ alone is not sufficient to have an MTA.
+ * Each exim daemon package depends on exim-base, not exim.
+
+ -- Steve Haslam <araqnid@debian.org> Wed, 16 Oct 2002 12:52:19 +0100
+
+exim (4.10-0.1) unstable; urgency=low
+
+ * Heavy changes to build system.
+ * Split package into:
+ - exim-base: This package contains all utility programs and
+ documentation in plain text format.
+ - exim-daemon-$FOO: (Currently for FOO in light, default, heavy,
+ perl): Conain only the exim daemon in different configurations
+ - exim-doc-info: Contains exim documentation in Info format.
+ - eximon: The X11 monitor for Exim
+
+ -- Hilko Bengen <bengen@toplink-plannet.de> Wed, 2 Oct 2002 17:23:04 +0200
+
+exim (4.10-0.srh4) unstable; urgency=low
+
+ * exim.c: Show the OpenSSL version number if TLS compiled in and the tls
+ debug selector enabled.
+ * exim.postinst et al: Keep the alternatives configured between upgrades
+ (naughty) since exim-light will fail to start if exim-heavy keywords
+ are in the config file
+
+ -- Steve Haslam <araqnid@debian.org> Fri, 13 Sep 2002 16:08:47 +0100
+
+exim (4.10-0.srh3) unstable; urgency=low
+
+ * tls.c: Some debug output changes to verify_callback()
+ * debconf_eximconfig: add more escaping when writing acl_check_rcpt
+ * tls.c and others: ${tls_peercn} now expands to the CN part of the
+ peer's certificate subject when using TLS.
+ * transports/smtp.c and others: Added tls_verify_hostname option to
+ verify the hostname we connected to against the CN/subjectAltName
+ of the peer certificate.
+
+ -- Steve Haslam <araqnid@debian.org> Fri, 13 Sep 2002 15:44:07 +0100
+
+exim (4.10-0.srh2) unstable; urgency=low
+
+ * exim-heavy.postinst: had duplicate sendmail alternative, removed. Had
+ a priority the same as exim-light too... increased.
+ * Replace LOOKUP_CDB=yes in exim-light configuration, since it was in
+ the Exim 3 package and doesn't bring in any dependencies.
+ * exim.postinst: delete files from /var/spool/exim/db if they cannot be
+ read by exim_dumpdb (some DB compatibility lossage)
+
+ -- Steve Haslam <araqnid@debian.org> Tue, 3 Sep 2002 13:28:44 +0100
+
+exim (4.10-0.srh1) unstable; urgency=low
+
+ * My stab at an Exim 4 package. Features include:
+ * An exim-heavy package that contains an Exim binary with LDAP,
+ MySQL, PostgreSQL etc. in, so that the main Exim package's
+ dependencies are kept thin but users can easily get hold of
+ the extra lookup types.
+ * Debconf-based configuration, although it has priority=high
+ questions, so not completely noninteractive yet, and not
+ all features of eximconfig have been ported/checked
+ * Automated conversion of Exim 3 configuration files
+ (using PH's convert4r4)
+
+ -- Steve Haslam <araqnid@debian.org> Tue, 3 Sep 2002 10:20:24 +0100
+
+exim (3.35-1.srh1) unstable; urgency=low
+
+ * Reconfigured to include MySQL and PostgreSQL lookups
+
+ -- Steve Haslam <araqnid@debian.org> Fri, 9 Aug 2002 15:52:37 +0100
+
+exim (3.35-1) unstable; urgency=low
+
+ * New upstream version, fixes buffer overflow (Closes: #135069)
+ * debian/config: Added receiver_try_verify (Closes: #136276)
+ * debian/init.d: Use --retry 30 option for start-stop-daemon when
+ stopping exim (Closes: #136450)
+ * debian/postinst: "noninteractive" in correct case (Closes: #134379)
+ * debian/init.d: Use -n option for echo (from patch in #133288)
+ * debian/exim_lock.8: Manpage for exim_lock - thanks Nick Philips
+ (Closes: #131679)
+ * debian/config: Fixed comment on smtp_accept_queue_per_connection
+ (Closes: #136756)
+ * debian/exim.8,debian/eximon.8: Fixed hyphenation (Closes: #132068)
+ * debian/control: Short description improved (Closes: #130698)
+
+ -- Mark Baker <mark@mnb.org.uk> Mon, 4 Mar 2002 23:04:52 +0000
+
+
diff --git a/debian/changelog.Debian.old b/debian/changelog.Debian.old
new file mode 100644
index 0000000..2b9640b
--- /dev/null
+++ b/debian/changelog.Debian.old
@@ -0,0 +1,1128 @@
+exim (3.34-1) unstable; urgency=low
+
+ * New upstream version
+ * Applied patch so that it isn't an open relay when used from inetd with
+ exim_user = root (but that still doesn't mean you should set this!)
+ (Closes: #126124)
+ * debian/editme-diff: Include lmtp support (Closes: #128052)
+ * debian/postinst: Only run update-inetd if it exists
+ * debian/control: The above means it only recommends rather than depends
+ on netbase (Closes: #118244)
+ * debian/config: Various changes to procmail-pipe transport in
+ eximconfig output (Closes: #117923, #120614, #129338)
+ * debian/config: Added comment mentioning rfcignorant.org to eximconfig
+ output (Closes: #128414)
+ * debian/email-addresses: Corrected typo (Closes: #123082)
+ * debian/init.d: List restart option in usage output (Closes: #122939)
+ * debian/config: Include rfc2142 addresses (such as abuse@) in generated
+ aliases file (Closes: #128411)
+
+ -- Mark Baker <mark@mnb.org.uk> Sat, 19 Jan 2002 17:44:56 +0000
+
+exim (3.33-1) unstable; urgency=low
+
+ * New upstream version
+ * debian/control: include package priorities
+ * debian/copyright: fix spelling of common-licenses (I had spelt it the
+ British way, as licences, which of course isn't what the directory is
+ called) (Closes: #112086)
+ * src/exim.c: upstream patch to fix minor local security hole (Closes:
+ #117835)
+ * debian/postrm: fix test for empty spool directory (Closes: #108956,
+ #116018)
+ * debian/postrm: check update-inetd exists before calling (Closes: #121365)
+
+ -- Mark Baker <mark@mnb.org.uk> Wed, 28 Nov 2001 22:07:14 +0000
+
+exim (3.32-2) unstable; urgency=low
+
+ * Applied upstream patch to fix IPv6 related problems (Closes: #108285,
+ #108309)
+ * debian/cron.daily: exit if exim binary doesn't exist (Closes: #108389)
+ * debian/init.d: check that inetd.conf exists before grepping it for
+ exim (Closes: #108147)
+ * debian/exim.8: update description of -bp option (Closes: #107222)
+
+ -- Mark Baker <mark@mnb.org.uk> Wed, 15 Aug 2001 00:00:36 +0100
+
+exim (3.32-1) unstable; urgency=low
+
+ * New upstream version (bug fixes)
+ * debian/preinst: create /etc/exim before moving exim.conf (Closes:
+ #106659, #107657)
+ * debian/preinst: only do nasty stuff to crontab if upgrading from a
+ version prior to 1.82-3, as that was the first one to use cron in the
+ way we do now.
+
+ -- Mark Baker <mark@mnb.org.uk> Wed, 8 Aug 2001 23:34:04 +0100
+
+exim (3.31-1) unstable; urgency=low
+
+ * New upstream version
+ * debian/postrm: prompt before deleting spool directory if it's not
+ empty (Closes: #101186)
+ * debian/config: remove RBL questions (as ORBS no longer exists, and
+ MAPS now charges); include a comment about RBL instead (Closes: #104524)
+ * debian/rules: no longer have separate diff for hurd, as hurd now
+ supports PAM and LDAP
+ * OS/os.h-GNU, OS/Makefile-GNU: various other hurd changes (Closes: #101409)
+ * debian/postinst: don't run eximconfig if doing a non-interactive
+ install (Closes: #98764)
+ * debian/postinst, debian/preinst: move config file to new location in
+ preinst, not postinst (Closes: #101796)
+ * debian/config: don't use group mail on procmail transport (Closes: #99075)
+ * debian/init.d: use --pidfile option of start-stop-daemon (Closes:
+ #97526, #74803, #62297)
+ * debian/postinst: only grep exim.conf if it exists (Closes: #95031)
+ * src/globals.c: upstream patch to header names
+ * debian/postinst: only grep /etc/aliases if it exists (Closes: #94085)
+ * debian/cron.daily: tidy wait-remote_smtp as well as retry database
+
+ -- Mark Baker <mark@mnb.org.uk> Thu, 19 Jul 2001 00:32:14 +0100
+
+exim (3.22-4) unstable; urgency=low
+
+ * debian/crontab: fix comment so it agrees (Closes: #92654)
+ * debian/rules: don't use {a,b} syntax, which isn't in posix sh (Closes:
+ #92456)
+ * debian/config: RBL is now at blackholes.mail-abuse.org
+
+ -- Mark Baker <mark@mnb.org.uk> Tue, 10 Apr 2001 00:16:30 +0100
+
+exim (3.22-3) unstable; urgency=low
+
+ * src/eximon.src: don't want & on end of exec command (Closes: #53784)
+ * debian/*.8: updated references to docs to /usr/share/doc, and updated
+ my email address.
+ * debian/exicyclog.8: exicyclog is in /usr/sbin, not /opt/exim/bin
+ (Closes: #86642)
+ * debian/control: build-dependencies updated for current X packages
+ (Closes: #88565)
+ * debian/config: generated config uses s (sender) flag on rewrite rules
+ (Closes: #90839)
+ * debian/config: generated config doesn't use b or c (bcc and cc) flags
+ on rewrite rules
+ * debian/crontab: run every 15 minutes
+ * debian/crontab: don't ignore error output (exim should only output
+ anything on errors, so we don't want to redirect anything to /dev/null
+ (Closes: #88334)
+ * debian/config: generated config refers to 127.0.0.1 and ::1, and not
+ to localhost; which caused problems for some people when it tried to
+ look up the ipv6 address for it (Closes: #88629, #76074)
+ * debian/control: priority important
+ * debian/postinst, debian/prerm: don't call suidregister or chmod
+ * debian/control: conflict with suidmanager <<0.50
+
+ -- Mark Baker <mark@mnb.org.uk> Fri, 30 Mar 2001 00:29:30 +0100
+
+exim (3.22-2) unstable; urgency=low
+
+ * debian/crontab: check existence of config file in /etc/exim/exim.conf
+ rather than /etc/exim.conf (Closes: #85745)
+ * debian/postinst, debian/postrm: more places I'd forgotten to fix after
+ moving exim.conf
+ * src/exim_tidydb.c: write "too old" message to stdout, not stderr
+ (Closes: #81727)
+
+ -- Mark Baker <mark@mnb.org.uk> Mon, 12 Feb 2001 23:30:17 +0000
+
+exim (3.22-1) unstable; urgency=low
+
+ * New upstream version
+ * debian/cron.daily: only run exim_tidydb if it exists and is
+ executable (Closes: #83017)
+ * debian/email-addresses: include comment indicating that it is part of
+ the exim package (Closes: #82462)
+
+ -- Mark Baker <mark@mnb.org.uk> Wed, 24 Jan 2001 00:13:35 +0000
+
+exim (3.20-2) unstable; urgency=low
+
+ * debian/rules: allow for a locally modified makefile diff to be used
+ instead of the standard one (patch by Karl Hegbloom) (Closes: #79275)
+ * Put config file in an /etc/exim directory, as many people want to
+ create other files for configuring their exim setup (Closes: #76318)
+ . debian/rules: create /etc/exim directory
+ . debian/config: write config file in $exim/exim/exim.conf
+ . debian/editme-diff.linux: configure exim to read config from this
+ directory.
+ . debian/editme-diff.gnu: as editme-diff.linux
+ . debian/postinst: move config file from existing installations when
+ upgrading.
+ * debian/config: default config includes (commented out) how to do
+ client side SMTP AUTH (Closes: #79173)
+ * debian/cron.daily: only cycle non-empty log files (Closes: #74996)
+ * debian/control: build depends should be on libdb2-dev, not libdb2
+ (Closes: #79290)
+
+ -- Mark Baker <mark@mnb.org.uk> Mon, 11 Dec 2000 22:16:43 +0000
+
+exim (3.20-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/config: swapped procmail and .forward directors in default
+ config (Closes: #63588)
+ * debian/config: include "end" after rewrite section (Closes: #77865)
+ * debian/config: document /etc/email-addresses in eximconfig output
+ * debian/README: document /etc/email-addresses (Closes: #77937)
+
+ -- Mark Baker <mark@mnb.org.uk> Sun, 3 Dec 2000 23:51:58 +0000
+
+exim (3.16-7) unstable; urgency=high
+
+ * debian/postinst: use -f option when deleting old hints databases
+ (Closes: #75451)
+ * src/exim.c: Change to real priveliges before expansion testing
+
+ -- Mark Baker <mark@mnb.org.uk> Thu, 26 Oct 2000 00:15:24 +0100
+
+exim (3.16-6) unstable; urgency=low
+
+ * debian/mails: added announcement of windows executable filter
+ * applied patch so -bP cannot be used to get information from a config
+ file that the user does not have read permission for. Thanks to
+ Wichert Akkerman and Harald Hoyer for the patch (Closes: #67585)
+
+ -- Mark Baker <mbaker@iee.org> Sun, 22 Oct 2000 01:14:18 +0100
+
+exim (3.16-5) unstable; urgency=low
+
+ * debian/config: path option must go after driver (Closes: #72985, #74503)
+ * debian/cron.daily: redirect output of exim_tidydb to /dev/null
+ (Closes: #74474)
+ * src/exim_tidydb.c: actual errors go to stderr so they aren't affected
+ by redirect mentioned above
+ * src/readconf.c: allow config to be group writable (Closes: #74082)
+ * debian/config: depends on netbase (for update-inetd) (Closes: #73060)
+ * debian/postinst: delete hints databases; if the configuration appears
+ to refer to any other db files, warn them that they will have to
+ rebuild them. This is because we are now (since 3.16-3.1) using libdb2
+ (Closes: #75020, #73055, #73048)
+ * debian/config: default config file adds return path header to local
+ deliveries (Closes: #75046)
+ * debian/config: include (commented out) examples of how to set up
+ the server side of an authenticated link
+ * debian/config: default config file allow authenticated hosts to relay
+
+ -- Mark Baker <mbaker@iee.org> Thu, 19 Oct 2000 00:21:44 +0100
+
+exim (3.16-4) unstable; urgency=low
+
+ * Ben's NMU fixed bugs about new libc/libdb (Closes: #72588, #72587)
+ * debian/postinst: set /usr/sbin/exim to be suid root if suidmanager
+ isn't installed. (Closes: #72796, #72741, #72684, #72673, #72671,
+ #72871, #70597)
+ * debian/control: Added build-depends on xlib6-g (used for eximon)
+ (Closes: #72088, #70918)
+ * OS/Makefile-GNU: Use -lcrypt (partially fixes #71705)
+ * debian/eximstats.8: Synopsis includes log file names (Closes: #72644)
+ * debian/config: Include commented out how to restrict to local
+ interface only (Closes: #66510)
+ * debian/config: Set path on address_path transport to include /usr/bin
+ (Closes: #65521)
+ * debian/cron.daily: Run exim_tidydb to clean retry database (Closes:
+ #57543)
+ * debian/postinst: Install /var/log/exim directory as setgid adm
+ (Closes: #35719, #11918)
+ * debian/config: Use check_local_user in forwardfile director, so that
+ correct user and group are used when running pipe entries in forward
+ file (Closes: #72645)
+ * debian/config: Include empty authenticators section
+ * debian/editme-diff.gnu: New file for GNU hurd; old file renamed to
+ editme-diff.linux
+ * debian/rules: Use appropriate editme-diff for OS. This is necessary
+ because currently the hurd doesn't support ldap or pam (Closes: #71705)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 30 Sep 2000 18:43:41 +0100
+
+exim (3.16-3.1) unstable; urgency=low
+
+ * NMU for libdb2/glibc/ldap updates
+ * Build using new libldap2-dev
+ * Change Build-Depends accordingly
+
+ -- Ben Collins <bcollins@debian.org> Wed, 27 Sep 2000 13:11:51 -0400
+
+exim (3.16-3) unstable; urgency=low
+
+ * debian/config: need to escape another ' character (Closes: #70039,
+ #70760, #70722, #70575)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 2 Sep 2000 16:43:40 +0100
+
+exim (3.16-2) unstable; urgency=low
+
+ * debian/config: need to escape ' character (Closes: #70039)
+ * debian/control: added libident-dev and libwrap0-dev to build
+ dependencies (Closes: #70405)
+ * debian/rules: use -p option when creating Local directory, so it
+ doesn't fail if called repeatedly (Closes: #70519)
+
+ -- Mark Baker <mbaker@iee.org> Tue, 29 Aug 2000 21:14:31 +0100
+
+exim (3.16-1) unstable; urgency=low
+
+ * New upstream version (Closes: #66053)
+ * Applied interface discovery patch by Jason Gunthorpe (Closes: #68748)
+ * Applied IPv6 interface discovery patch also by Jason (Closes: #64531)
+ * debian/exim.8: Removed superfluous hyphen (Closes: #69384)
+ * debian/config: Changed /usr/doc/exim to /usr/share/doc/exim in a
+ couple of places (Closes: #69013)
+ * debian/init.d: Don't disable inetd.conf entry when starting MTA - if
+ it wasn't disabled already we wouldn't have got that far, so it's
+ unnecessary and confusing for anyone reading the script (Closes: #69048)
+ * debian/config: add accept_8bitmime, commented out, with a comment
+ explaining why it is probably a bad idea for it to be set
+ * debian/control: add Build-depends: line
+ * linked with libpcre3
+ * debian/editme-diff: include PAM support (Closes: #66398)
+
+ -- Mark Baker <mbaker@iee.org> Fri, 25 Aug 2000 00:14:35 +0100
+
+exim (3.12-10) frozen unstable; urgency=low
+
+ * debian/config: include headers_check_syntax in generated configuration
+ file, commented out (Closes: #63238)
+ * debian/config: don't include system hostname in list of local domains
+ for satellite system (Closes: #61048)
+ * src/host.c: look up an A record if attempt to look up AAAA record
+ returns TRY_AGAIN, so it works with bind 4 nameservers. This was fixed
+ upstream in 3.13, I have taken a patch from there (Closes: #62755)
+
+ -- Mark Baker <mbaker@iee.org> Sun, 30 Apr 2000 01:05:09 +0100
+
+exim (3.12-9) unstable; urgency=low
+
+ * debian/config: test whether /etc/exim.conf can be written replaced by
+ test for $etc/exim.conf, allowing me to test this in another directory
+ while not root
+ * debian/config: don't include "root:root" in generated alias file
+ (Closes: #61498)
+ * debian/postinst: remove "root:root" from aliases file that older exim
+ versions generated (Thanks Kim Oldfield for patch)
+ * debian/mails: added mail from Thomas Schoepf about how he solved a
+ problem he had on a dialup system (Closes: #61331)
+ * debian/README.debian: Update: the instructions on how to run as a
+ daemon needed changing and exim is now built with include LDAP and
+ IPv6 (Closes: #62220)
+ * debian/rules: renamed readme file to debian/README.Debian with upper
+ case D.
+
+ -- Mark Baker <mbaker@iee.org> Thu, 13 Apr 2000 00:11:09 +0100
+
+exim (3.12-8) unstable; urgency=low
+
+ * debian/postinst: fixed typo in warning message: script is called
+ /etc/init.d/exim, not /etc/init.d/conf (Closes: #61118)
+ * debian/postinst: wrap warning mesage at 80 columns (also #61118)
+ * debian/postinst: version of exim in test should be 3.03-2, not 3.99-2
+ which was used for testing purposes (Closes: #61068)
+
+ -- Mark Baker <mbaker@iee.org> Sun, 26 Mar 2000 23:23:48 +0100
+
+exim (3.12-7) frozen unstable; urgency=low
+
+ * debian/config: fixed typo in relay_domains question text (Closes: #60392)
+ * debian/config: indicate default with capital in final question
+ (Closes: #59722)
+ * debian/config: don't check relay_domains, as the check excluded
+ wildcards. (Closes: #59720)
+ * debian/config: add alias entry for nobody (Closes: #59712)
+ * debian/config: don't create aliases.new.O (Closes: #60572)
+ * debian/postinst: warn when upgrading from old versions that don't ever
+ run daemon from default startup script, if exim is not run from
+ inetd.conf (Closes: #60567)
+
+ -- Mark Baker <mbaker@iee.org> Tue, 21 Mar 2000 23:57:00 +0000
+
+exim (3.12-6) frozen unstable; urgency=low
+
+ * debian/postinst: don't run /etc/init.d/exim if exim.conf doesn't exist.
+ It didn't matter, it just gave an error message that it shouldn't have.
+ * Remember to upload to frozen this time :)
+
+ -- Mark Baker <mbaker@iee.org> Tue, 29 Feb 2000 23:46:30 +0000
+
+exim (3.12-5) unstable; urgency=low
+
+ * src/transport.c: upstream patch so transport filters work with
+ outgoing SMTP (Closes: #57835)
+
+ -- Mark Baker <mbaker@iee.org> Sun, 13 Feb 2000 17:12:28 +0000
+
+exim (3.12-4) frozen unstable; urgency=low
+
+ * debian/config: procmail_pipe transport has right options so from hack
+ works on current version of exim (previously mail delivered by
+ procmail was being horriblyl mangled) (Closes: #56865,#56208)
+ * debian/cron.daily: include hostname in subject line of eximstats reports.
+ * debian/copyright: new upstream ftp location
+
+ -- Mark Baker <mbaker@iee.org> Sat, 5 Feb 2000 22:00:49 +0000
+
+exim (3.12-3) unstable; urgency=low
+
+ * debian/rules: create Local directory in build target (and delete it
+ in clean target (Closes: #56788)
+
+ -- Mark Baker <mbaker@iee.org> Tue, 1 Feb 2000 20:45:03 +0000
+
+exim (3.12-2) unstable; urgency=low
+
+ * src/smtp_out.c: failure to create a socket should not be a fatal
+ error; this was causing problems for people without IPv6 in their
+ kernel trying to send mail to sites with IPv6 addresses in the
+ DNS. (Closes: #50628)
+ * debian/rules,debian/editme-diffs(new file): create Local/Makefile at
+ build time by applying a diff to EDITME, rather than having a
+ pre-edited copy included in the debian source. As well as making the
+ debian diff rather smaller this means that upstream changes to the
+ EDITME file won't be ignored (Closes: #55112)
+ * As a result of the above, exigrep of compressed files should work
+ properly (Closes: #54776)
+ * debian/rules: delete most of util/* in clean target
+
+ -- Mark Baker <mbaker@iee.org> Wed, 26 Jan 2000 23:28:56 +0000
+
+exim (3.12-1) unstable; urgency=low
+
+ * New upstream version (bug fixes)
+ * debian/config: procmail director does file existence check as relevant
+ user rather than as exim
+ * debian/config: procmail director fails, rather than freezing message, if
+ home directory can't be read (Closes: #54351,#53326,#53325,#53229)
+ * debian/rules, debian/conffiles, debian/email-addresses (new file): add
+ /etc/email-addresses as a conf-file (Closes: #54124)
+
+ -- Mark Baker <mbaker@iee.org> Sun, 9 Jan 2000 17:45:31 +0000
+
+exim (3.11-2) unstable; urgency=low
+
+ * OS/Makefile-Base: comment out code to check whether makefile needs
+ updating; it didn't seem to work properly on some systems. I don't
+ know why. This is a nasty hack but it works (Closes: #50435)
+ * debian/control: description doesn't start with package name
+ * debian/control: "X" rather than "X-windows"
+
+ -- Mark Baker <mbaker@iee.org> Sun, 19 Dec 1999 11:01:00 +0000
+
+exim (3.11-1) unstable; urgency=low
+
+ * New upstream version (Closes: #51744)
+
+ -- Mark Baker <mbaker@iee.org> Wed, 8 Dec 1999 00:02:59 +0000
+
+exim (3.03-6) unstable; urgency=low
+
+ * debian/config: check that /etc/exim.conf was writable didn't do the
+ right thing when file didn't exist (Closes: #51498,#51789)
+ * debian/config: uncomment second line of rewrite configuration (Closes:
+ #51496,#52111,#52148,)
+ * debian/rules: clean target deletes Local/Makefile-Linux (Closes: #50435)
+ * doc/spec.txt: example cyrus configuration refers to debian location of
+ binary
+
+ -- Mark Baker <mbaker@iee.org> Tue, 7 Dec 1999 22:24:04 +0000
+
+exim (3.03-5) unstable; urgency=low
+
+ * Local/Makefile: don't link with libwrap any more; it causes too many
+ problems for people upgrading (#50250)
+ * debian/config: don't include userforward or procmail directors in
+ satellite configuration (#40570)
+ * debian/crontab: only run queue if /etc/exim.conf exists (#43419)
+ * debian/rules, debian/ipv6.sh, OS/Makefile-Default: Fix so IPv6 support
+ is only included if available, so exim will build on m68k (#50435)
+ * debian/config: exit if not run as root (#50543)
+ * debian/config: don't comment out the example rewrite rule: it is
+ sufficiently widely used, at least for dialups, that it should be in
+ by default (#49202)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 27 Nov 1999 19:11:33 +0000
+
+exim (3.03-4) unstable; urgency=low
+
+ * debian/control: put quotes around $etc/exim.conf (#50071)
+ * Create symlinks in /usr/doc from postinst, not rules (#50072)
+ . debian/postinst: create symlink in /usr/doc if required
+ . debian/postinst-eximon (new file): create symlink in /usr/doc if required
+ . debian/prerm: delete symlink in /usr/doc
+ . debian/prerm-eximon (new file): delete symlink in /usr/doc
+ . debian/rules: don't create symlinks in /usr/doc
+ . debian/rules: install {postinst,prerm}-eximon
+ * debian/rules: install man pages in /usr/share/man as required by
+ policy 3.1.0
+ * debian/copyright: refer to GPL in new location
+ /usr/share/common-licences/GPL instead of /usr/doc/copyright/GPL
+
+ -- Mark Baker <mbaker@iee.org> Sat, 13 Nov 1999 16:52:59 +0000
+
+exim (3.03-3) unstable; urgency=low
+
+ * debian/rules: install docs in /usr/share/doc/exim with symlink from
+ /usr/doc/exim, as required by policy 3.1.0
+ * debian/control: policy version upgraded to 3.1.0
+ * debian/config: if exim.conf already exists, warn that continuing with
+ eximconfig will trash it (#49201)
+ * debian/*: updated Tim Cutts' email address
+
+ -- Mark Baker <mbaker@iee.org> Thu, 11 Nov 1999 21:07:56 +0000
+
+exim (3.03-2) unstable; urgency=low
+
+ * debian/config: don't shift things off @names, as that was removing
+ localhost (#48102)
+ * exim_monitor/em_main.c: fix bindings for popup menu so they work with
+ all combinations of modifiers, working round Xt misfeature. Thanks
+ Kevin Ryde for patch (#20485)
+ * debian/config: fixed typo (FRC instead of RFC)
+ * debian/README.debian: extra backslashes in sample filter (#46462)
+ * debian/crontab: only run every 30 mins instead of every 15; this is
+ the same frequency as we ask a daemon to do a queue run and it makes
+ sense for them to be the same
+ * debian/config: generated configuration will call procmail if it is
+ installed and if users have .procmailrc files
+ * debian/init.d: start exim daemon if no smtp entry in inetd.conf
+ * OS/Makefile-Default: define HAVE_IPV6. The attempt to auto-detect it
+ was a failure (it detected it correctly, but the config.h builder
+ doesn't understand anything so fancy in the makefile)
+ * Local/Makefile: include LDAP support
+ * Local/Makefile: link with libwrap
+
+ -- Mark Baker <mbaker@iee.org> Thu, 4 Nov 1999 21:22:20 +0000
+
+exim (3.03-1) unstable; urgency=low
+
+ * new upstream version
+ * src/exim.h: include <pcre.h> rather than "pcre/pcre.h"
+ * OS/Makefile.Base: don't build pcre (it's not used anyway)
+ * debian/postinst: don't do upgrade from pre-3.0 stuff if /etc/exim.conf
+ doesn't exist (#42305)
+ * debian/eximconfig.8: mention -i option (#41786)
+
+ -- Mark Baker <mbaker@iee.org> Wed, 4 Aug 1999 22:24:57 +0100
+
+exim (3.02-5) unstable; urgency=low
+
+ * OS/Makefile-Linux, OS/Makefile-Default: applied patch from Roman Hodek
+ so it will compile on m68k which doesn't yet have glibc2.1 (#41365)
+ * debian/config: applied patch from Andrew Pimlott so system users with
+ a hyphen in the login name (only www-data normally) get added to
+ aliases file (#41235)
+ * debian/config: typo (exim-doc package name without hyphen) (#41071)
+ * debian/exim.8: updated command line options in manpage (#41082)
+
+ -- Mark Baker <mbaker@iee.org> Mon, 19 Jul 1999 23:26:34 +0100
+
+exim (3.02-4) unstable; urgency=low
+
+ * src/daemon.c: patch in previous release only did half the job; I now
+ have a patch from the upstream author instead.
+
+ -- Mark Baker <mbaker@iee.org> Wed, 7 Jul 1999 22:35:44 +0100
+
+exim (3.02-3) unstable; urgency=low
+
+ * src/daemon.c: if attempt to open AF_INET6 fails, try again as AF_INET; this
+ will hopefully make it work for people without IPv6 in their kernels
+ (#40248)
+ * src/host.c: apply upstream patch so ::ffff:w.x.y.z style IPv4 compatibility
+ addresses will reverse lookup correctly
+
+ -- Mark Baker <mbaker@iee.org> Wed, 30 Jun 1999 23:28:35 +0100
+
+exim (3.02-2) unstable; urgency=low
+
+ * debian/config: fix received headers (#40185,#40210,#40216)
+
+ -- Mark Baker <mbaker@iee.org> Tue, 29 Jun 1999 00:58:15 +0100
+
+exim (3.02-1) unstable; urgency=low
+
+ * New upstream release (bug fixes)
+ * Applied patch for GNU/Hurd support (#39262)
+ * debian/config: include "localhost" as a local domain by default. I do
+ this reluctantly, so fetchmail will work out the box.
+ * debian/config: include "for <x@y>" in received headers (#39344)
+ * debian/config: add Envelope-to: header in local delivery transport
+ * debian/copyright: update copyright date to 1999
+ * src/host.c: Fixed bug with IPv6 address handling properly
+ * src/verify.c: Removed work-around introduced in last release
+
+ -- Mark Baker <mbaker@iee.org> Mon, 21 Jun 1999 22:37:56 +0100
+
+exim (3.01-1) unstable; urgency=low
+
+ * New upstream release (bug fixes)
+ * src/verify.c: Fixed bug with IPv6 address handling
+ * debian/config: eximconfig -i should restart daemon
+
+ -- Mark Baker <mbaker@iee.org> Tue, 25 May 1999 23:33:00 +0100
+
+exim (3.00-1) unstable; urgency=low
+
+ * New upstream release
+ * OS/Makefile-Default: Enabled IPv6 support (this therefore requires
+ glibc 2.1)
+ * debian/config: Outputs new configuration file format
+ * debian/config: If called with -i option, installs exim in inetd.conf etc
+ * debian/postinst: When upgrading from pre-3.00 versions, convert
+ configuration file to new format. Leave exim not running, as the
+ configuration file will need to be manually checked.
+ * debian/postinst: registration of init.d script only done if exim configured
+
+ -- Mark Baker <mbaker@iee.org> Sat, 15 May 1999 01:22:33 +0100
+
+exim (2.11-4) unstable; urgency=low
+
+ * debian/cron.daily: only cycle logs if files exist (#35544, #35585,
+ #34645, #36271)
+ * debian/control: suggests exim-doc (#34086)
+ * debian/README.debian: include sample .forward file to handle mail on
+ debian mailing lists (thanks Giuliano)
+ * debian/config: allow domain name components that start with a
+ number. While these are strictly speaking not allowed, there are
+ plenty out there, and not allowing them was causing problems (#36320)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 22 Apr 1999 23:08:16 +0100
+
+exim (2.11-3) unstable; urgency=low
+
+ * debian/config: recommend adding localhost to local domains if
+ fetchmail is to be used (#34088)
+ * debian/config: was generating invalid rewrite rules for a satellite
+ system with no root alias specified (#34060)
+ * debian/config: generated config includes "for" information in received
+ headers
+ * debian/config: set smtp_accept_queue_per_connection to 100 in
+ generated config, as the default of 10 is much too low for dialup
+ users
+ * debian/config: set freeze_tell_mailmaster to true in generated config
+ * debian/config: always allow relaying from localhost (#31844)
+ * debian/cron.daily: use savelog instead of exicyclog (#33467)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 4 Mar 1999 23:50:16 +0000
+
+exim (2.11-2) unstable; urgency=low
+
+ * debian/config: write config files to /etc instead of /tmp (oops!)
+
+ -- Mark Baker <mbaker@iee.org> Mon, 1 Feb 1999 23:27:05 +0000
+
+exim (2.11-1) unstable; urgency=low
+
+ * New upstream version
+ * (Uses libpcre2 instead of libpcre1)
+ * debian/config: don't set never_users if user doesn't set up a root alias
+
+ -- Mark Baker <mbaker@iee.org> Fri, 28 Jan 1999 00:21:00 +0000
+
+exim (2.05-1) frozen unstable; urgency=low
+
+ * New upstream version (mostly bugfixes)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 7 Nov 1998 00:24:44 +0000
+
+exim (2.04-3) unstable; urgency=low
+
+ * debian/init.d: don't enable inetd service when stopping daemon (#27265)
+ * delete lots of .orig files that didn't need to be in source diff (#27267)
+ * recompile against libident with correct shlibs (#27265)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 1 Oct 1998 21:23:30 +0100
+
+exim (2.04-2) unstable; urgency=low
+
+ * debian/postinst: use -e so it dies on errors
+ * debian/preinst: don't use crontab if it isn't installed
+
+ -- Mark Baker <mbaker@iee.org> Sun, 27 Sep 1998 22:07:51 +0100
+
+exim (2.04-1) unstable; urgency=low
+
+ * New upstream version (mostly bug fixes)
+ * debian/crontab: check exim exists and is executable (#26953)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 26 Sep 1998 21:26:19 +0100
+
+exim (2.02-4) unstable; urgency=low
+
+ * debian/crontab: 2>&1 should be after >/dev/null
+
+ -- Mark Baker <mbaker@iee.org> Tue, 01 Sep 1998 22:49:00 +0100
+
+exim (2.02-3) unstable; urgency=low
+
+ * Local/Makefile: include maildir support (#25575)
+
+ -- Mark Baker <mbaker@iee.org> Mon, 10 Aug 1998 21:46:08 +0100
+
+exim (2.02-2) unstable; urgency=medium
+
+ * debian/crontab: should be 2>&1 instead of 2&>1 (#25539,#25552,#25558)
+
+ -- Mark Baker <mbaker@iee.org> Sun, 09 Aug 1998 22:23:00 +0100
+
+exim (2.02-1) unstable; urgency=low
+
+ * New upstream version (#24692)
+ * debian/crontab: send output to /dev/null (#24384)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 06 Aug 1998 21:46:27 +0100
+
+exim (1.92-4) unstable; urgency=low
+
+ * debian/preinst: redirect stderr of some commands to /dev/null (#22867)
+ * src/macros.h: define iscntrl() so 8-bit strings work in headers
+ (#22932 and hopefully #20958)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 30 May 1998 13:11:27 +0100
+
+exim (1.92-3) frozen unstable; urgency=low
+
+ * debian/config: write config files in /etc, not . (#22387)
+ * debian/config: properly comment out example rewriter (#22388)
+ * debian/postrm: remove rc.d links only on purge, not remove
+
+ -- Mark Baker <mbaker@iee.org> Wed, 13 May 1998 09:55:00 +0100
+
+exim (1.92-2) frozen unstable; urgency=low
+
+ * These together answer all but one of the issues raised in #22067
+ * debian/config: fix typo in "TRANPORTS"
+ * debian/config: put separator between each question
+ * debian/config: clarify question about qualifying domain for satellite
+ system
+ * debian/config: rewrite rule for satellite systems now matches root etc
+ case insensitively
+ * debian/config: include in output (commented out) example of how to
+ rewrite all outgoing addresses according to lookup table
+
+ -- Mark Baker <mbaker@iee.org> Mon, 04 May 1998 22:08:00 +0100
+
+exim (1.92-1) frozen unstable; urgency=low
+
+ * New upstream version (minor bug fixes)
+ * OS/Makefile-Linux: compile with -O2
+ * OS/Makefile-Base: link with existing libident.a
+ * src/eximon.src: don't set LD_LIBRARY_PATH in eximon wrapper script
+ * exim_monitor/em_main.c: show last 8k of log when you start (#21956)
+ * debian/postinst: don't install in inetd.conf unless /etc/exim.conf
+ exists (#19548)
+ * debian/rules: minor changes
+
+ -- Mark Baker <mbaker@iee.org> Fri, 01 May 1998 22:55:25 +0100
+
+exim (1.91-1) frozen unstable; urgency=low
+
+ * New upstream version (bug fixes)
+
+ -- Mark Baker <mbaker@iee.org> Tue, 28 Apr 1998 10:12:38 +0100
+
+exim (1.90-5) frozen unstable; urgency=low
+
+ * debian/postinst: don't die if exim already running (#21181)
+ * debian/config: set umask to 022, so aliases file created has mode that
+ exim won't complain about (#21410)
+ * debian/control: suggest mail-reader, not mail-user-agent (which doesn't
+ exist)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 16 Apr 1998 19:45:55 +0100
+
+exim (1.90-4) frozen unstable; urgency=low
+
+ * Delete debian/files before packaging source (#21217)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 16 Apr 1998 19:45:55 +0100
+
+exim (1.90-3) frozen unstable; urgency=low
+
+ * Fixed silly bug that stopped eximconfig from running (I hadn't tested
+ it, as it was just one minor change to a comment. However, the comment
+ was in the generated exim.conf file, so was embedded in a perl
+ string---using an unescaped apostrophe broke things)
+
+ -- Mark Baker <mbaker@iee.org> Wed, 08 Apr 1998 19:42:51 +0100
+
+exim (1.90-2) frozen unstable; urgency=low
+
+ * Configuration written by eximconfig will not fail if mailbox has a
+ stricter mode than the default 0660
+
+ -- Mark Baker <mbaker@iee.org> Fri, 03 Apr 1998 11:06:20 +0100
+
+exim (1.90-1) frozen unstable; urgency=low
+
+ * New upstream version (bug fixes)
+ * Split out documentation, allowing pristine source to be used
+
+ -- Mark Baker <mbaker@iee.org> Wed, 01 Apr 1998 11:06:20 +0100
+
+exim (1.89.1-1) frozen unstable; urgency=low
+
+ * New upstream version 1.891 (bug fixes)
+
+ -- Mark Baker <mbaker@iee.org> Wed, 18 Mar 1998 20:11:30 +0000
+
+exim (1.89.0-2) frozen unstable; urgency=low
+
+ * Improved inetd.conf handling, hopefully won't lose any changes you make
+ over upgrades
+
+ -- Mark Baker <mbaker@iee.org> Sat, 14 Mar 1998 14:32:00 +0000
+
+exim (1.89.0-1) unstable; urgency=low
+
+ * New upstream version (1.890, a beta test of 1.90)
+ * Fixed cron scripts so they don't fail if exim not installed (eg when
+ upgrading)
+ * Added newline to end of generated /etc/aliases
+ * Pause after first paragraph of eximconfig (#19547)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 14 Mar 1998 14:32:00 +0000
+
+exim (1.82-11) unstable; urgency=low
+
+ * Make ip-up.d script a config file
+ * Check for existence of exim before running it from ip-up.d (#19119)
+ * Only run eximconfig if there is no exim.conf file
+ * This means eximconfig doesn't need to check for exim.conf itself, and
+ so doesn't need a --force option
+
+ -- Mark Baker <mbaker@iee.org> Sat, 07 Mar 1998 21:02:30 +0000
+
+exim (1.82-10) unstable; urgency=low
+
+ * Fixed update-rc.d calls in postrm (#16355)
+ * Replaces: mail-transport-agent (#9305)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 07 Mar 1998 17:54:30 +0000
+
+exim (1.82-9) unstable; urgency=low
+
+ * Added mailq manpage link
+ * Install docs copyright before calculating md5sums
+
+ -- Mark Baker <mbaker@iee.org> Fri, 27 Feb 1998 21:36:38 +0000
+
+exim (1.82-8) unstable; urgency=low
+
+ * Fixed manpages so whatis information can be extracted (#18667)
+ * Added a script for ip-up.d (#18675)
+
+ -- Mark Baker <mbaker@iee.org> Fri, 27 Feb 1998 21:36:38 +0000
+
+exim (1.82-7) unstable; urgency=low
+
+ * Corrected URL in eximconfig script (#18422)
+
+ -- Mark Baker <mbaker@iee.org> Fri, 20 Feb 1998 18:32:27 +0000
+
+exim (1.82-6) unstable; urgency=low
+
+ * exim-doc package doesn't depend on exim (#18285)
+
+ -- Mark Baker <mbaker@iee.org> Wed, 18 Feb 1998 12:03:10 +0000
+
+exim (1.82-5) unstable; urgency=low
+
+ * exim-doc package depends on exim
+ * Inserted space that was missing from depends line for eximon
+ * Added force-reload and restart options to init.d script
+
+ -- Mark Baker <mbaker@iee.org> Sun, 15 Feb 1998 22:29:00 +0000
+
+exim (1.82-4) unstable; urgency=low
+
+ * Written manpages for exiqsumm and eximconfig
+ * Updated FSF snail-mail address in copyright file
+ * Moved eximon.bin into /usr/lib/exim
+ * Updated standards-version to 2.4.0.0
+ * Fixed md5sum generation
+ * Symlinks from /usr/doc/{eximon,exim-doc} to exim
+ * Fixed typo in exim.conf generated by eximconfig (#18054)
+
+ -- Mark Baker <mbaker@iee.org> Tue, 10 Feb 1998 00:45:00 +0000
+
+exim (1.82-3) unstable; urgency=low
+
+ * Rewritten eximconfig
+ + Relaying configuration
+ + RBL spam-blocking (#17805)
+ + Ask before overwriting /etc/aliases (#16056)
+ + New configuration for system with local deliveries but smarthost
+ for remote mail---useful for dialup users
+ + Generally tidied up
+ * use /etc/cron.d instead of mail's crontab
+
+ -- Mark Baker <mbaker@iee.org> Sat, 7 Feb 1998 21:56:25 +0000
+
+exim (1.82-2) unstable; urgency=low
+
+ * Write startup messages in standard format
+
+ -- Mark Baker <mbaker@iee.org> Wed, 7 Jan 1998 21:21:35 +0000
+
+exim (1.82-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Mark Baker <mbaker@iee.org> Sat, 27 Dec 1997 12:17:23 +0000
+
+exim (1.81-1) unstable; urgency=low
+
+ * New upstream release (bug fixes)
+ * Removed bogus Replaces: line (#16054)
+ * Mark /etc/init.d/exim as a conffile
+
+ -- Mark Baker <mbaker@iee.org> Thu, 18 Dec 1997 11:28:11 +0000
+
+exim (1.80-2) unstable; urgency=low
+
+ * Fixed typo in control (#15927)
+ * Removed suggestion of metamail
+ * Don't include docs in exim package
+
+ -- Mark Baker <mbaker@iee.org> Sun, 14 Dec 1997 20:12:14 +0000
+
+exim (1.80-1) unstable; urgency=low
+
+ * New upstream release
+ * Strip binaries (#15720)
+
+ -- Mark Baker <mbaker@iee.org> Sat, 13 Dec 1997 20:46:18 +0000
+
+exim (1.73-11) unstable; urgency=low
+
+ * Really depend on cron. I put it in the changelog but forgot to
+ do it last time!
+
+ -- Mark Baker <mbaker@iee.org> Mon, 24 Nov 1997 23:24:09 +0000
+
+exim (1.73-10) unstable; urgency=low
+
+ * Rewritten copyright file
+ * Put note in prerm about deleting multiple inetd lines (#14554)
+ * Depend on cron (#15229)
+
+ -- Mark Baker <mbaker@iee.org> Mon, 24 Nov 1997 21:29:51 +0000
+
+exim (1.73-9) unstable; urgency=low
+
+ * The | I removed in 1.73-7 should have been changed to a \, not
+ removed altogether. I hope I haven't screwed up too many people's
+ /etc/crontab with this bug :(
+
+ -- Mark Baker <mbaker@iee.org> Tue, 11 Nov 1997 23:04:19 +0000
+
+exim (1.73-8) unstable; urgency=low
+
+ * Patch from upstream to fix bug with DB lookups
+
+ -- Mark Baker <mbaker@iee.org> Mon, 3 Nov 1997 11:25:37 +0000
+
+exim (1.73-7) unstable; urgency=low
+
+ * Remove spurious | from preinst that trashed /etc/crontab
+ * Remove from inetd etc in prerm rather than postrm
+
+ -- Mark Baker <mbaker@iee.org> Wed, 22 Oct 1997 14:36:21 +0100
+
+exim (1.73-6) unstable; urgency=low
+
+ * Now really clear up crontab from old versions
+ * Fix sed expressions (#14044)
+
+ -- Mark Baker <mbaker@iee.org> Wed, 22 Oct 1997 14:34:52 +0100
+
+exim (1.73-5) unstable; urgency=low
+
+ * Comment out crontab entry when removed (#14016)
+
+ -- Mark Baker <mbaker@iee.org> Mon, 20 Oct 1997 21:01:44 +0100
+
+exim (1.73-4) unstable; urgency=low
+
+ * Use mail user's crontab instead of system one
+ * Clear up crontab installed by old versions (#13998)
+ * Add md5sums
+
+ -- Mark Baker <mbaker@iee.org> Sun, 19 Oct 1997 23:21:35 +0100
+
+exim (1.73-3) unstable; urgency=low
+
+ * Rewrite postinst etc (I hadn't realised that they weren't complete) (#13940)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 16 Oct 1997 23:58:46 +0100
+
+exim (1.73-2) unstable; urgency=low
+
+ * Install README.debian file
+ * Install {pre,post}{inst,rm} (#13919)
+
+ -- Mark Baker <mbaker@iee.org> Thu, 16 Oct 1997 14:45:42 +0100
+
+exim (1.73-1) unstable; urgency=low
+
+ * New upstream version
+ * New maintainer
+ * Rewritten most of debian/rules
+ * (and as a result, no longer use debmake)
+ * Documented what EXIM_GID is compiled in (#11907)
+ * Made eximconfig less confusing (#12664)
+
+ -- Mark Baker <mbaker@iee.org> Wed, 15 Oct 1997 17:13:27 +0100
+
+exim (1.71-1) unstable; urgency=low
+
+ * Upstream update and libc6 build. Minimize the diffs to upstream sources.
+
+ -- Christoph Lameter <clameter@debian.org> Thu, 25 Sep 1997 20:07:21 -0700
+
+exim (1.62-3) unstable; urgency=high
+
+ * Fixed buffer overrun security hole in .forward processing
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Tue, 22 Jul 1997 10:00:00 +0100
+
+exim (1.62-2) unstable; urgency=low
+
+ * Fixed paths in exicyclog (bugs #9444, #9759 and #9996)
+ * Transferred eximon man page from exim to eximon (bug #9425)
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Mon, 16 Jun 1997 11:37:56 +0100
+
+exim (1.62-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Mon, 28 Apr 1997 14:36:37 +0000
+
+exim (1.61-1) unstable; urgency=low
+
+ * New upstream release, fixes debian bug #7671
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Tue, 4 Mar 1997 15:24:21 +0000
+
+exim (1.60-3) unstable; urgency=low
+
+ * Added a 'sendmail' alias to the exim manpage
+ * Incorporated Christoph's -1 and -2 changes into my own 1.60 package.
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Thu, 27 Feb 1997 17:57:30 +0000
+
+exim (1.60-2) unstable; urgency=low
+
+ * Add some more manpages
+ * /usr/sbin/sendmail and /usr/sbin/runq symlink was missing.
+
+ -- Christoph Lameter <clameter@debian.org> Wed, 26 Feb 1997 12:34:08 -0800
+
+exim (1.60-1) unstable; urgency=low
+
+ * New upstream version
+ * Manpages written
+
+ -- Christoph Lameter <clameter@debian.org> Wed, 26 Feb 1997 10:18:06 -0800
+
+exim (1.59.8-2) unstable; urgency=low
+
+ * Reversed some of Christoph's changes; put textual documentation
+ back into exim package, and info files into exim-doc package.
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Thu, 27 Feb 1997 12:37:15 +0000
+
+exim (1.59.8-1) unstable; urgency=low
+
+ * Supplies some more information regaring uucp and kernel related NFS
+ problems
+ * New upstream release
+
+ -- Christoph Lameter <clameter@debian.org> Mon, 24 Feb 1997 11:57:10 -0800
+
+exim (1.59.6-1) unstable; urgency=low
+
+ * Put into unstable
+ * Some fixes to the debian setup and the eximconfig script
+ * New upstream release
+
+ -- Christoph Lameter <clameter@debian.org> Thu, 6 Feb 1997 10:26:23 -0800
+
+exim (1.59.5-3) experimental; urgency=low
+
+ * Rebuild with debmake 3.0.6
+ * eximstats: Small bug fixed
+
+ -- Christoph Lameter <clameter@debian.org> Fri, 31 Jan 1997 08:37:35 -0800
+
+exim (1.59.5-2) experimental; urgency=low
+
+ * Rebuild with debmake 3.0.1
+
+ -- Christoph Lameter <clameter@debian.org> Wed, 29 Jan 1997 12:57:12 -0800
+
+exim (1.59.5-1) experimental; urgency=low
+
+ * Experimental package for debstdn (debmake 2.80)
+ * New upstream release. NFS Hacks removed.
+
+ -- Christoph Lameter <clameter@debian.org> Sat, 25 Jan 1997 17:21:41 -0800
+
+exim (1.59-1.2) experimental; urgency=low
+
+ * NFS Problem hacked around (just skipped offending section ....)
+ Locking via NFS is probably broken now.
+
+ -- Christoph Lameter <clameter@debian.org> Fri, 27 Dec 1996 19:39:16 -0800
+
+exim (1.59-1.1) experimental; urgency=low
+
+ * Full Replacement for smail (and better, easier than smail)
+ * Compiled with db libraries instead of dbm.
+ * Send Daily Statistics to Postmaster
+ * Run eximcyclog from /etc/cron.daily
+ * Run exim from inetd.conf. Run queue hourly via crontab.
+ * newaliases command provided for sendmail compatibility.
+
+ -- Christoph Lameter <clameter@debian.org> Mon, 23 Dec 1996 20:45:44 -0800
+
+exim (1.59-1) experimental; urgency=low
+
+ * Upgraded to exim 1.59
+ * Putting PID files in /var/run/exim/
+ * Changes to exim-doc package by Christoph
+ * Included a postrm script (to remove /var/run/exim, /etc/exim.conf and
+ /var/log/exim if purging)
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Wed, 18 Dec 1996 09:00:00 +0000
+
+exim (1.58-7) experimental; urgency=low
+
+ * Local/Makefile updated to be more FSSTND compliant
+ * Minor changes to debian/* files supporting this
+ * Default mail spool changed from /usr/spool/... to /var/spool/...
+ * Added a commented-out user = list line to the system_aliases director
+ for smartlist users to uncomment
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Tue, 17 Dec 1996 17:00:00 +0000
+
+exim (1.58-6) experimental; urgency=low
+
+ * eximinstall script was not installed
+ * problems with the init scripts failing
+
+ -- Christoph Lameter <clameter@debian.org> Mon, 16 Dec 1996 20:45:44 -0800
+
+exim (1.58-5) experimental; urgency=low
+
+ * Revised
+
+ -- Christoph Lameter <clameter@debian.org> Mon, 16 Dec 1996 07:11:31 -0800
+
+exim (1.58-4) unstable; urgency=low
+
+ * Initial efforts
+
+ -- Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk> Mon, 25 Nov 1996 22:33:17 +0000
+
+
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+4
diff --git a/debian/config-custom/create-custom-config-package b/debian/config-custom/create-custom-config-package
new file mode 100755
index 0000000..507b319
--- /dev/null
+++ b/debian/config-custom/create-custom-config-package
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+if [ -n "$1" ]; then
+ PACKAGESUFFIX="$1"
+else
+ PACKAGESUFFIX="custom"
+fi
+
+TARGETDIR="../exim4-config-$PACKAGESUFFIX"
+#DEBUG=1
+
+# copy over -changelog, generating a proper changelog entry
+# copy over update-exim4defaults, ip-up.d, email-addresses
+
+dh_testdir
+
+copytextreplace() {
+ FILE="$1"
+ DSTFILE="$2"
+ DIR="${FILE%/*}"
+ FILE="${FILE##*/}"
+ if [ -z "$DSTFILE" ]; then
+ DSTFILE="$FILE"
+ fi
+ [ $DEBUG ] && echo >&2 "DBG: source $DIR/$FILE"
+ [ $DEBUG ] && echo >&2 "DBG: dst $TARGETDIR/$DIR/$DSTFILE"
+ mkdir -p $TARGETDIR/$DIR
+ if ! [ -e "$TARGETDIR/$DIR/$FILE" ]; then
+ < $DIR/$FILE \
+ sed -e "s/exim4-config/exim4-config-$PACKAGESUFFIX/g" \
+ -e "s/orig-exim4-config-$PACKAGESUFFIX/exim4-config/g" \
+ > $TARGETDIR/$DIR/$DSTFILE
+ chmod --reference=$DIR/$FILE $TARGETDIR/$DIR/$DSTFILE
+ else
+ echo >&2 "ERR: can't write to $TARGETDIR/$DIR/$DSTFILE, file exists"
+ exit 1
+ fi
+}
+
+for file in manpages config templates postinst postrm dirs; do
+ copytextreplace debian/exim4-config.$file exim4-config-$PACKAGESUFFIX.$file
+done
+
+for file in `cat debian/exim4-config.manpages` \
+ `find debian/debconf \( -path '*/CVS/*' -prune \) -or \( -type f -print \)`; do
+ copytextreplace $file
+done
+
+for file in compat control copyright files rules; do
+ copytextreplace debian/config-custom/debian/$file
+done
+
+for file in ip-up.d update-exim4defaults email-addresses; do
+ copytextreplace debian/$file
+done
+
+# manual corrections in target directory
+
+mv $TARGETDIR/debian/config-custom/debian/* $TARGETDIR/debian
+rm -rf $TARGETDIR/debian/config-custom
+chmod 775 $TARGETDIR/debian/rules
+
+# hack changelog
+
+< debian/changelog sed -n "/^exim4/{s/exim4/exim4-config-$PACKAGESUFFIX/p;q;}" > $TARGETDIR/debian/changelog
+echo -e "\n * automatically generated changelog" >> $TARGETDIR/debian/changelog
+< debian/changelog sed -n '/^ --/{p;q;}' >> $TARGETDIR/debian/changelog
+cd $TARGETDIR
+dch --append "generated source package by create-custom-package"
diff --git a/debian/config-custom/debian/compat b/debian/config-custom/debian/compat
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/debian/config-custom/debian/compat
@@ -0,0 +1 @@
+4
diff --git a/debian/config-custom/debian/control b/debian/config-custom/debian/control
new file mode 100644
index 0000000..4eca38e
--- /dev/null
+++ b/debian/config-custom/debian/control
@@ -0,0 +1,18 @@
+Source: exim4-config
+Section: mail
+Priority: optional
+Maintainer: locally built <root@localhost>
+Standards-Version: 3.6.1.0
+Build-Depends-Indep: debhelper (>= 4.0.1)
+
+Package: exim4-config
+Architecture: all
+Priority: important
+Conflicts: orig-exim4-config
+Replaces: orig-exim4-config
+Provides: orig-exim4-config
+Depends: ${shlibs:Depends}, ${misc:Depends}, exim4-base
+Description: exim4-config locally modified Debian configuration for exim4
+ This package provides the configuration for the exim4 daemon
+ packages. It is a locally built special version derived from
+ orig-exim4-config.
diff --git a/debian/config-custom/debian/copyright b/debian/config-custom/debian/copyright
new file mode 100644
index 0000000..1910196
--- /dev/null
+++ b/debian/config-custom/debian/copyright
@@ -0,0 +1,15 @@
+This is a custom made configuration package for Debian GNU/Linux's
+prepackaged version of exim4, a powerful yet easy to configure mail
+transport agent.
+
+This package was originally made by create-custom-package, a script
+written by Marc Haber <mh+debian-packages@zugschlus.de> using work
+provided by Andreas Metzler <ametzler@downhill.at.eu.org>.
+create-custom-package uses the exim4 source package to build this
+source package.
+
+The files in this package are free software; you can redistribute them
+and/or modify them under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2, or (at
+your option) any later version. Full text of the license can be found
+at /usr/share/common-licenses/GPL
diff --git a/debian/config-custom/debian/files b/debian/config-custom/debian/files
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/debian/config-custom/debian/files
@@ -0,0 +1 @@
+
diff --git a/debian/config-custom/debian/rules b/debian/config-custom/debian/rules
new file mode 100755
index 0000000..3a3bab7
--- /dev/null
+++ b/debian/config-custom/debian/rules
@@ -0,0 +1,96 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# This file is public domain software, originally written by Joey Hess.
+#
+# This version is for a hypothetical package that builds an
+# architecture-dependant package, as well as an architecture-independent
+# package.
+
+# Uncomment this to turn on verbose mode.
+export DH_VERBOSE=1
+
+buildname=$${build:-`$(SHELL) scripts/os-type`-`$(SHELL) scripts/arch-type`}
+
+DEBIAN:=$(shell pwd)/debian
+
+configure: configure-stamp
+
+# the patches might change src/EDITME.
+configure-stamp:
+ dh_testdir
+ touch configure-stamp
+
+build-indep: build-indep-stamp
+build-indep-stamp:
+ dh_testdir
+ touch build-indep-stamp
+
+build: build-indep
+
+clean: cleanfiles
+
+cleanfiles:
+ dh_testdir
+ dh_testroot
+ rm -f build-indep-stamp configure-stamp install-stamp
+
+ # Add here commands to clean up after the build process.
+ dh_clean
+
+install: install-stamp
+install-stamp: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ install -m 755 debian/debconf/update-exim4.conf debian/exim4-config/usr/sbin
+ install -m 755 $(DEBIAN)/update-exim4defaults $(DEBIAN)/exim4-config/usr/sbin
+ # install -m644 debian/debconf/exim4.conf.template debian/exim4-config/etc/exim4
+
+ cd $(DEBIAN)/debconf/conf.d && \
+ tar cf - `find \( -path '*/CVS/*' -prune \) -or \( -type f -print \)` | \
+ { cd $(DEBIAN)/exim4-config/etc/exim4/conf.d/ && \
+ tar xf - ; }
+
+ # ship a copy in examples
+ # install -m644 debian/debconf/exim4.conf.template debian/exim4-config/usr/share/doc/exim4-config/examples/exim4.conf.template.debconf
+ install -m644 debian/email-addresses debian/exim4-config/etc/exim4
+ install -m755 debian/ip-up.d debian/exim4-config/etc/ppp/ip-up.d/exim4
+
+# dh_movefiles
+ touch install-stamp
+
+# Build architecture-independent files here.
+binary-indep: build install
+ dh_testdir -i
+ dh_testroot -i
+ dh_installchangelogs -i
+ dh_installdocs -i
+ dh_installexamples -i
+ dh_installmenu -i
+ dh_installdebconf -i
+ dh_installlogrotate -i
+# dh_installemacsen -i
+ dh_installpam -i
+ dh_installmime -i
+# dh_installinit -i
+ dh_installcron -i
+# dh_installinfo -i
+# dh_undocumented -i
+ dh_installman -i
+ dh_install -i
+ dh_strip -i
+ dh_link -i
+ dh_compress -i
+ dh_fixperms -i
+# dh_makeshlibs -i
+ dh_installdeb -i
+# dh_perl -i
+ dh_shlibdeps -i
+ dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
+
+binary: binary-indep
+.PHONY: build clean binary-indep binary-arch binary install
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..632d66b
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,126 @@
+Source: exim4
+Section: mail
+Priority: important
+Maintainer: Andreas Metzler <ametzler@debian.org>
+Uploaders: Marc Haber <mh+debian-packages@zugschlus.de>
+Standards-Version: 3.6.1.0
+Build-Depends: dpatch, libpcre3-dev, libldap2-dev (>=2.1.26-1), libpam0g-dev, libident-dev, libdb3-dev, libxmu-dev|xlibs-dev, libxt-dev|xlibs-dev, libxext-dev|xlibs-dev, libx11-dev|xlibs-dev, libxaw7-dev, postgresql-dev, libmysqlclient10-dev, debhelper (>= 4.0.1), libperl-dev, libgnutls10-dev
+
+Package: exim4-base
+Architecture: any
+Priority: important
+Suggests: mail-reader, eximon4, exim4-doc-html|exim4-doc-info
+Conflicts: exim, exim-tls, exim4-daemon-light (<<${Upstream-Version}), exim4-daemon-heavy (<<${Upstream-Version}), exim4-daemon-custom (<<${Upstream-Version})
+Replaces: exim, exim-tls
+Depends: ${shlibs:Depends}, cron (>=3.0pl1-42), ${misc:Depends}, exim4-config (>=4.30) | exim4-config-2, adduser, passwd (>=1:4.0.3-9) | passwd (<<1:4.0.3-1), netbase
+Description: EXperimental Internal Mailer -- a Mail Transport Agent
+ This MTA is rather easier to configure than smail or sendmail.
+ It is a drop-in replacement for sendmail/mailq/rsmtp.
+ Advanced features include the ability to reject connections from
+ known spam sites, and an extremely efficient queue processing
+ algorithm.
+ .
+ This package provides the support files, you need an additional package
+ containing the main executable to make Exim work. The available packages
+ are:
+ .
+ exim4-daemon-light
+ exim4-daemon-heavy
+ exim4-daemon-custom
+ .
+ Exim comes with very extensive documentation in
+ /usr/share/doc/exim4-base/spec.txt.gz.
+
+Package: exim4-config
+Architecture: all
+Priority: important
+Provides: exim4-config-2
+Conflicts: exim, exim-tls, exim4-config, exim4-config-2, bash (<< 2.05), ${MTA-Conflicts}
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, passwd (>=1:4.0.3-9) | passwd (<<1:4.0.3-1)
+Description: Debian configuration for exim4
+ This package provides the configuration for the exim4 daemon
+ packages. The configuration framework has been split off the main
+ package to allow sites to replace the configuration scheme with their
+ own without having to change the actual exim packages.
+ .
+ Sites with special configuration needs (having a lot of identically
+ configured machines for example) can use this to distribute their own
+ custom configuration via the packaging system, using the magic
+ available with dpkg's conffile handling, without having to do local
+ changes on all of these machines.
+
+Package: exim4-daemon-light
+Architecture: any
+Priority: important
+Provides: mail-transport-agent
+Conflicts: mail-transport-agent
+Replaces: mail-transport-agent
+Depends: exim4-base (>= ${Upstream-Version}), ${shlibs:Depends}
+Description: Lightweight version of the Exim (v4) MTA
+ Exim (v4) is a fully featured MTA (Mail Transport Agent) that is rather
+ easier to configure than smail or sendmail. It is a drop-in
+ replacement for sendmail/mailq/rsmtp.
+ .
+ This version of the Exim daemon has only basic features (including
+ support for TLS encryption) enabled. It works well with the standard
+ setups that are provided by Debian.
+
+Package: exim4
+Architecture: all
+Priority: important
+Depends: exim4-base (>= ${Upstream-Version}), exim4-daemon-light | exim4-daemon-heavy | exim4-daemon-custom
+Description: An MTA (Mail Transport Agent)
+ Exim (v4) is a fully featured MTA (Mail Transport Agent) that is rather
+ easier to configure than smail or sendmail. It is a drop-in
+ replacement for sendmail/mailq/rsmtp.
+ .
+ This metapackage provides the essential components for running
+ an Exim (v4) MTA.
+
+Package: exim4-daemon-heavy
+Architecture: any
+Priority: optional
+Provides: mail-transport-agent
+Conflicts: mail-transport-agent
+Replaces: mail-transport-agent
+Depends: exim4-base (>= ${Upstream-Version}), ${shlibs:Depends}
+Description: Exim (v4) with extended features, including exiscan-acl
+ Exim (v4) is a fully featured MTA (Mail Transport Agent) that is rather
+ easier to configure than smail or sendmail. It is a drop-in
+ replacement for sendmail/mailq/rsmtp.
+ .
+ In addition to the features already supported by exim4-daemon-light this
+ version of the Exim daemon includes extra features such as LDAP, PostgreSQL
+ and MySQL data lookups, SPA SMTP authentication and embedded Perl
+ interpreter.
+ .
+ This package features the exiscan-acl patch
+ http://duncanthrax.net/exiscan-acl/ for integration of virus-scanners
+ and spamassassin.
+
+Package: exim4-daemon-custom
+Architecture: any
+Priority: optional
+Provides: mail-transport-agent
+Conflicts: mail-transport-agent
+Replaces: mail-transport-agent
+Depends: exim4-base (>= ${Upstream-Version}), ${shlibs:Depends}
+Description: Customized version of Exim (v4)
+ Exim (v4) is a fully featured MTA (Mail Transport Agent) that is rather
+ easier to configure than smail or sendmail. It is a drop-in
+ replacement for sendmail/mailq/rsmtp.
+ .
+ This version of the Exim daemon is not provided by Debian but has been
+ built with a custom feature-set tailored for your local needs. See
+ /usr/share/doc/exim4-daemon-custom/ for details.
+
+Package: eximon4
+Architecture: any
+Priority: optional
+Conflicts: eximon
+Replaces: eximon
+Depends: ${shlibs:Depends}, exim4-base (>= 4.10)
+Description: X monitor for the Exim (v4) mail transport agent
+ This allows administrators to view the Exim agent's mail queue
+ and logs, and perform a variety of actions on queued messages,
+ such as freezing, bouncing and thawing messages.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..d1756d9
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,220 @@
+This is Debian GNU/Linux's prepackaged version of exim, a powerful yet easy
+to configure mail transport agent.
+
+-----------------------------------------------------------------
+This package was put together from the original sources which are
+maintained by Philip Hazel <ph10@cus.cam.ac.uk>, and which were
+obtained from
+
+ ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/
+
+Some modifications to the Makefiles have been made to fit with the Linux
+FHS.
+-----------------------------------------------------------------
+
+-----------------------------------------------------------------
+exiscan-acl patch (included in daemon-heavy):
+Upstream author: Tom Kistner <tom@duncanthrax.net>
+Downloaded from: http://duncanthrax.net/exiscan-acl/
+Copyright:
+/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003-???? */
+/* License: GPL */
+-----------------------------------------------------------------
+
+-----------------------------------------------------------------
+Debian Maintainer history:
+- The Debian package for exim was originally made by Tim Cutts
+ <timc@chiark.greenend.org.uk>.
+- Mark Baker <mbaker@iee.org> took over until exim version 3 and is
+ still involved with packaging.
+- Steve Haslam, Hilko Bengen and Marc Haber generated the initial
+ packages of Exim v4.
+- The exim4 packages are now maintained by
+ - Andreas Metzler <ametzler@downhill.at.eu.org> (main maintainer)
+ - Marc Haber <mh+debian-packages@zugschlus.de> (Co-maintainer)
+
+The following people helped in preparing the exim4 packages and gave
+important feedback:
+- Marc Merlin provides the dlopen patch, making it possible to load
+ local_scan-routines for a external shared object.
+ The original patch was written by David Woodhouse, it was modified first
+ by Derrick 'dman' Hudson and afterwards by Marc Merlin.
+- Sander Smeenk provided the TLS-docs and the script to generate the
+ self-signed certificates.
+- The people on the exim4debian list that submitted bug-reports and -fixes,
+ and helped with design issues: Matthias Klose, Alexander Koch, Ola
+ Lundqvist, Andrew Mulholland, David Pashley, Andreas Piesk, Nick Phillips
+ and whoever I forgot to mention.
+- syslog2eximlog script by Martin Godisch.
+-----------------------------------------------------------------
+
+
+-----------------------------------------------------------------
+exim is copyright (c) 1999 University of Cambridge.
+
+The original licence is as follows (from the file NOTICE in the upstream
+distribution); the GPL should be in /usr/share/common-licenses/GPL on a debian
+system.
+
+_________________________________________________________________________
+THE EXIM MAIL TRANSFER AGENT
+----------------------------
+
+Copyright (c) 2002 University of Cambridge
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+In addition, for the avoidance of any doubt, permission is granted to
+link this program with OpenSSL or any other library package and to
+(re)distribute the binaries produced as the result of such linking.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+
+
+UNSOLICITED EMAIL
+-----------------
+
+The use, supply or promotion of Exim for the purpose of sending bulk,
+unsolicited electronic mail is incompatible with the basic aims of the program,
+which revolve around the free provision of a service that enhances the quality
+of personal communications. The author of Exim regards indiscriminate
+mass-mailing as an antisocial, irresponsible abuse of the Internet.
+
+
+INCORPORATED CODE
+-----------------
+
+A number of pieces of external code are included in the Exim distribution.
+
+ . Regular expressions are supported in the main Exim program and in the
+ Exim monitor using the freely-distributable PCRE library, copyright (c)
+ 2003 University of Cambridge. The source is distributed in the directory
+ src/pcre. However, this is a cut-down version of PCRE. If you want to use
+ the PCRE library in other programs, you should obtain and install the
+ full version from ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre.
+
+
+ . Support for the cdb (Constant DataBase) lookup method is provided by code
+ contributed by Nigel Metheringham of Planet Online Ltd. which contains
+ the following statements:
+ _________________________________________________________________________
+
+ Copyright (c) 1998 Nigel Metheringham, Planet Online Ltd
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ This code implements Dan Bernstein's Constant DataBase (cdb) spec.
+ Information, the spec and sample code for cdb can be obtained from
+ http://www.pobox.com/~djb/cdb.html. This implementation borrows some code
+ from Dan Bernstein's implementation (which has no license restrictions
+ applied to it).
+ _________________________________________________________________________
+
+ The implementation is completely contained within the code of Exim. It
+ does not link against an external cdb library.
+
+ . Client support for Microsoft's "Secure Password Authentication" is pro-
+ vided by code contributed by Marc Prud'hommeaux. Server support was
+ contributed by Tom Kistner. This includes code taken from the Samba
+ project, which is released under the Gnu GPL.
+
+
+ . Support for calling the Cyrus "pwcheck" and "saslauthd" daemons is
+ provided by code taken from the Cyrus-SASL library and adapted by
+ Alexander S. Sabourenkov. The permission notice appears below, in
+ accordance with the conditions expressed therein.
+
+ _________________________________________________________________________
+
+ Copyright (c) 2001 Carnegie Mellon University. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. The name 'Carnegie Mellon University' must not be used to endorse or
+ promote products derived from this software without prior written
+ permission. For permission or any other legal details, please
+ contact
+
+ Office of Technology Transfer
+ Carnegie Mellon University
+ 5000 Forbes Avenue
+ Pittsburgh, PA 15213-3890
+ (412) 268-4387, fax: (412) 268-7395
+ tech-transfer@andrew.cmu.edu
+
+ 4. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+ This product includes software developed by Computing Services at
+ Carnegie Mellon University (http://www.cmu.edu/computing/).
+
+ CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE FOR ANY
+ SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ _________________________________________________________________________
+
+
+ . The Exim Monitor program, which is an X-Window application, includes
+ modified versions of the Athena StripChart and TextPop widgets. This code
+ is copyright by DEC and MIT, and their permission notice appears below,
+ in accordance with the conditions expressed therein.
+
+ _________________________________________________________________________
+
+ Copyright 1987, 1988 by Digital Equipment Corporation, Maynard,
+ Massachusetts, and the Massachusetts Institute of Technology, Cambridge,
+ Massachusetts.
+
+ All Rights Reserved
+
+ Permission to use, copy, modify, and distribute this software and its
+ documentation for any purpose and without fee is hereby granted, provided
+ that the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting documen-
+ tation, and that the names of Digital or MIT not be used in advertising
+ or publicity pertaining to distribution of the software without specific,
+ written prior permission.
+
+ DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+ DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ SOFTWARE.
+ _________________________________________________________________________
+
+
+ . Some of the code to support the use of maildirsize files for maildir
+ deliveries is taken from the Courier Imapd source code. This code is
+ released under the GPL.
+ _________________________________________________________________________
+
+--
+Philip Hazel University of Cambridge Computing Service,
+ph10@cus.cam.ac.uk Cambridge, England. Phone: +44 1223 334714.
diff --git a/debian/create-custom-package b/debian/create-custom-package
new file mode 100755
index 0000000..2e53e32
--- /dev/null
+++ b/debian/create-custom-package
@@ -0,0 +1,92 @@
+#!/bin/bash
+
+set -e
+
+[ -n "$EX4DEBUG" ] && set -x
+
+dh_testdir
+if [ -z `which grep-dctrl` ] || ! [ -x `which grep-dctrl` ]; then
+ echo >&2 "ERR: no grep-dctrl binary"
+ exit 1
+fi
+
+fakeroot debian/rules clean
+
+if [ -n "$1" ]; then
+ PACKAGESUFFIX="$1"
+fi
+
+#DEBUG=1
+
+dh_testdir
+
+cd debian
+
+replacepkgname() {
+ sed -e "s/exim4-daemon-custom/exim4-daemon-$PACKAGESUFFIX/g;\
+ s/exim4-custom/exim4-$PACKAGESUFFIX/g"
+}
+
+copytextreplace() {
+ FILE="$1"
+ DSTFILE="$2"
+ if [ -z "$DSTFILE" ]; then
+ echo >&2 "no destination file given to copytextreplace $FILE"
+ exit 1
+ fi
+ [ $DEBUG ] && echo >&2 "DBG: source $FILE"
+ [ $DEBUG ] && echo >&2 "DBG: dst $DSTFILE"
+ if ! [ -e "$DSTFILE" ]; then
+ < $FILE replacepkgname > $DSTFILE
+ chmod --reference=$FILE $DSTFILE
+ else
+ echo >&2 "ERR: can't write to $DSTFILE, file exists"
+ exit 1
+ fi
+}
+
+NEEDEDFILES="exim4-daemon-custom.* rules control"
+for file in $NEEDEDFILES; do
+ if ! [ -e $file ]; then
+ echo >&2 "ERR: $file does not exist, not starting"
+ exit 1
+ fi
+done
+
+# the grep-dctrl|grep construct is necessary on woody,
+# since woody grep-dctrl does not give sensible return values.
+if grep-dctrl --field=Package exim4-daemon-$PACKAGESUFFIX control | \
+ grep -q '^Package:'; then
+ echo >&2 "ERR: there is already a debian/control entry for exim4-daemon-$PACKAGESUFFIX, not starting"
+ exit 1
+fi
+
+if grep -q exim4-daemon-$PACKAGESUFFIX rules; then
+ echo >&2 "ERR: exim4-daemon-$PACKAGESUFFIX already mentioned in debian/rules, not starting"
+ exit 1
+fi
+
+for file in exim4-daemon-custom.* ; do
+ copytextreplace $file ${file/exim4-daemon-custom/exim4-daemon-$PACKAGESUFFIX}
+done
+
+echo >> control
+grep-dctrl --field=Package exim4-daemon-custom control | \
+ replacepkgname >> control
+
+< rules sed "/^builddaemonpackages/ \
+ {s/^builddaemonpackages=/builddaemonpackages=exim4-daemon-$PACKAGESUFFIX /; \
+ }" > rules.new
+echo >> rules.new
+< rules sed -n "\
+ /^build-exim4-daemon-custom/,/^[^[:space:]]/ \
+ { \
+ s/exim4-daemon-custom/exim4-daemon-$PACKAGESUFFIX/; \
+ s/exim4-custom/exim4-$PACKAGESUFFIX/; \
+ /^build-exim4-daemon-$PACKAGESUFFIX/p;
+ /^[^[:space:]]/d; \
+ p; \
+ }" \
+>> rules.new
+chmod --reference=rules rules.new
+mv rules.new rules
diff --git a/debian/debconf.gamla/debconf_eximconfig b/debian/debconf.gamla/debconf_eximconfig
new file mode 100644
index 0000000..5b888bd
--- /dev/null
+++ b/debian/debconf.gamla/debconf_eximconfig
@@ -0,0 +1,628 @@
+#!/usr/bin/perl -w
+
+require 5;
+use strict;
+use Debconf::Client::ConfModule ':all';
+use Carp;
+
+sub get_value($) {
+ my $key = shift;
+ my($code,$text) = get($key);
+ return $text if ($code == 0);
+ croak("Unable to fetch value for \"$key\" (debconf code $code)\n");
+}
+
+version('2.0');
+#my $capb = capb('backup multiselect');
+
+######################################################################
+# Get data, mainly from Debconf
+
+my $syshostname;
+chomp($syshostname = `hostname --fqdn`);
+my $configtype = get_value("exim/eximconfig/configtype");
+my $visiblename;
+if ($configtype eq 'satellite') {
+ $visiblename = get_value("exim/eximconfig/satellite_hostname");
+}
+elsif ($configtype eq 'local') {
+ $visiblename = $syshostname;
+}
+elsif ($configtype eq 'none') {
+ # leave their configuration alone
+ exit(0);
+}
+else {
+ $visiblename = get_value("exim/eximconfig/visible_hostname");
+}
+
+my @local_domains = ($visiblename, "localhost");
+my @relay_domains = ();
+my @relay_nets = ('127.0.0.1', '::::1');
+if ($configtype eq 'satellite' || $configtype eq 'internet' || $configtype eq 'smarthost') {
+ push @local_domains, split(/[ ,]+/, get_value("exim/eximconfig/other_hostnames"));
+ push @relay_domains, split(/[ ,]+/, get_value("exim/eximconfig/relay_domains"));
+ push @relay_nets, split(/[ ,]+/, get_value("exim/eximconfig/relay_nets"));
+}
+
+my $readhost;
+if ($configtype eq 'satellite') {
+ $readhost = get_value("exim/eximconfig/readhost");
+}
+
+my $smarthost;
+if ($configtype eq 'smarthost' || $configtype eq 'satellite') {
+ $smarthost = get_value("exim/eximconfig/smarthost");
+}
+
+my $overwrite_aliases = get_value("exim/eximconfig/overwrite_aliases") eq 'true';
+
+my @postmasters = split(/[ ,]+/, get_value("exim/eximconfig/postmaster"));
+
+my $mailbox_format = get_value("exim/eximconfig/mailbox_format");
+my $local_delivery;
+if ($mailbox_format eq 'spool') {
+ $local_delivery = 'mail_spool';
+}
+elsif ($mailbox_format eq 'maildir') {
+ $local_delivery = 'maildir_home';
+}
+else {
+ die "Unrecognised mailbox format \"$mailbox_format\"\n";
+}
+
+my $use_maildrop = ($mailbox_format eq 'maildir') && (get_value("exim/eximconfig/auto_maildrop") eq 'true');
+my $use_procmail = ($mailbox_format eq 'spool') && (get_value("exim/eximconfig/auto_procmail") eq 'true');
+
+# Read password file and find users that need redirection
+my @redirusers = ('nobody', 'hostmaster', 'usenet', 'news', 'webmaster', 'www', 'ftp', 'abuse', 'noc', 'security');
+while (my @a = getpwent) {
+ next unless ($a[2] < 1000);
+ next if ($a[0] eq 'root');
+ push @redirusers, $a[0];
+}
+
+######################################################################
+# Show summary on stderr
+
+sub say {
+ my @words = map { split(/\s+/, $_) } @_;
+ my $out = '';
+ while (@words) {
+ my $word = shift @words;
+ if (length($out)+length($word)+1 > 70) {
+ print STDERR "$out\n";
+ $out = '';
+ }
+ $out .= "$word ";
+ }
+ print STDERR "$out\n" if ($out);
+ print STDERR "\n";
+}
+
+say("Now using your answers to debconf questions to configure Exim 4. \
+ Use \"dpkg-reconfigure exim\" to change your configuration, or \
+ to disable automatic rebuilding of your configuration on each \
+ and every upgrade.");
+
+say("Mail generated on this system will have \
+ '".($configtype eq 'satellite' ? $readhost : $visiblename)."' used \
+ as the domain part (after the \@) in the From: field and similar places.");
+
+say("The following domain(s) will be recognised as referring to this system: ", @local_domains);
+
+if (@relay_domains) {
+ say("Messages for the following domains will be relayed: ", @relay_domains);
+}
+
+say("Mail for postmaster, root etc. will be sent to: ", @postmasters);
+
+if ($configtype ne 'satellite') {
+ if ($mailbox_format eq 'spool') {
+ say("Local mail is delivered to /var/spool/mail/\$USER mailboxes.", $use_procmail ? ".procmail files will automatically be used by procmail if found" : "");
+ }
+ elsif ($mailbox_format eq 'maildir') {
+ say("Local mail is delivered to \$HOME/Maildir directories.", $use_procmail ? ".mailfilter files will automatically be used by maildrop if found" : "");
+ }
+}
+
+if ($configtype eq 'internet') {
+ say("Outbound remote mail is lookup up in the Internet DNS, and delivered using that data if any is found; otherwise such messages are bounced.");
+}
+elsif ($configtype eq 'smarthost') {
+ say("Outbound remote mail is sent via $smarthost");
+}
+elsif ($configtype eq 'satellite') {
+ say("All mail is being routed and delivered via $smarthost");
+}
+elsif ($configtype eq 'local') {
+ say("Any mail destined for remote addresses is bounced.");
+}
+
+say("Note that you can set email addresses used for outgoing mail by editing /etc/email-addresses.");
+
+######################################################################
+# Write $visiblename into /etc/mailname
+
+if (open(MAILNAME, ">/etc/mailname")) {
+ print STDERR "Writing /etc/mailname...\n";
+ print MAILNAME "$visiblename\n";
+ close(MAILNAME);
+}
+else {
+ warn "Unable to write /etc/mailname: $!\n";
+}
+
+######################################################################
+# This subroutine autodetects whether a file was generated ourselves
+
+sub autogenerated($) {
+ my $filename = shift;
+ open(FILE, $filename) or die "Unable to read $filename: $!\n";
+ my $top = <FILE>;
+ close FILE;
+ return ($top eq "# AUTOGENERATED\n");
+}
+
+######################################################################
+# Write /etc/aliases
+if ($overwrite_aliases) {
+ if (open(ALIASES, ">/etc/aliases.exim-pkg-new.$$")) {
+ print STDERR "Writing /etc/aliases...\n";
+ print ALIASES <<EOF
+# AUTOGENERATED
+#
+# This is the aliases file - it says who gets mail for whom.
+#
+# This file automatically generated. You must reconfigure Exim to stop
+# regenerating this file before you make changes yourself, or your
+# changes will be lost when you upgrade Exim.
+# (use: dpkg-reconfigure exim)
+#
+
+EOF
+;
+ print ALIASES "root: ".join(', ', map { "real-$_" } @postmasters)."\n";
+ print ALIASES "postmaster: root\n";
+ print ALIASES "mailer-daemon: postmaster\n";
+ foreach my $redir (@redirusers) {
+ print ALIASES "$redir: root\n";
+ }
+
+ close(ALIASES);
+ if (-f "/etc/aliases" && !autogenerated("/etc/aliases")) {
+ print "Backing up old /etc/aliases to /etc/aliases.O...\n";
+ unlink("/etc/aliases.O");
+ rename("/etc/aliases", "/etc/aliases.O")
+ or die "Unable to rename /etc/aliases to /etc/aliases.O: $!\n";
+ }
+ rename("/etc/aliases.exim-pkg-new.$$", "/etc/aliases")
+ or die "Unable to rename /etc/aliases.exim-pkg-new.$$ to /etc/aliases: $!\n";
+ }
+ else {
+ warn "Unable to write /etc/aliases.exim-pkg-new.$$: $!\n";
+ }
+}
+else {
+ print STDERR "Not writing /etc/aliases by user request\n";
+}
+
+######################################################################
+# Write /etc/exim4/exim4.conf
+
+unless (open(EXIMCONF, ">/etc/exim4/exim4.conf.exim-pkg-new.$$")) {
+ die "Unable to write /etc/exim4/exim4.conf.exim-pkg-new.$$: $!\n";
+}
+
+print STDERR "Writing /etc/exim4/exim4.conf...\n";
+
+my $local_domains = join(' : ', '@', @local_domains);
+my $relay_domains = join(' : ', @relay_domains);
+my $relay_nets = join(' : ', @relay_nets);
+
+my $now = localtime(time);
+
+print EXIMCONF <<EOF;
+# AUTOGENERATED
+
+# Runtime configuration file for Exim
+# This file generated by debconf_eximconfig, $now
+
+# THIS FILE WILL BE REGENERATED EVERY TIME THE EXIM PACKAGE IS UPGRADED
+# UNLESS YOU RUN
+# dpkg-reconfigure exim
+# AND CHOOSE "NONE" AS THE CONFIGURATION TYPE.
+
+# (you can check what the configuration type is currently set to using
+# the command
+# debconf-show exim | grep configtype
+# )
+
+# Main configuration settings
+
+# Let Exim autodetct this; we autodetected $syshostname at run-time
+# primary_hostname =
+EOF
+
+print EXIMCONF "domainlist local_domains = $local_domains\n";
+print EXIMCONF "domainlist relay_to_domains = $relay_domains\n";
+print EXIMCONF "hostlist relay_from_hosts = $relay_nets\n\n";
+print EXIMCONF "qualify_domain = $visiblename\n\n";
+
+print EXIMCONF <<EOF;
+acl_smtp_rcpt = acl_check_rcpt
+
+# qualify_recipient =
+
+# allow_domain_literals
+
+never_users = root
+
+host_lookup = *
+
+rfc1413_hosts = *
+rfc1413_query_timeout = 30s
+
+# sender_unqualified_hosts =
+# recipient_unqualified_hosts =
+
+# percent_hack_domains =
+
+ignore_bounce_errors_after = 2d
+
+timeout_frozen_after = 7d
+
+freeze_tell = postmaster
+
+received_header_text = "Received: \\
+ \${if def:sender_rcvhost {from \${sender_rcvhost}\\n\\t}\\
+ {\${if def:sender_ident {from \${sender_ident} }}\\
+ \${if def:sender_helo_name {(helo=\${sender_helo_name})\\n\\t}}}}\\
+ by \${primary_hostname} \\
+ \${if def:received_protocol {with \${received_protocol}}} \\
+ (Exim \${version_number} #\${compile_number} (Debian) [+araqnid])\\n\\t\\
+ id \${message_id}\\
+ \${if def:received_for {\\n\\tfor <\$received_for>}}"
+
+begin acl
+
+acl_check_rcpt:
+ accept hosts = :
+ deny local_parts = ^.[\@\%!/|] : ^\\\\.
+ accept local_parts = postmaster
+ domains = +local_domains
+ require verify = sender
+
+ # deny message = rejected because \$sender_host_address is in a black list at \$dnslist_domain\\n\$dnslist_text
+ # dnslists = black.list.example.com
+
+ # warn message = X-Warning: \$sender_host_address is in a black list at \$dnslist_domain
+ # dnslists = black.list.example.com
+
+ accept domains = +local_domains
+ endpass
+ message = unknown user
+ verify = recipient
+
+ accept domains = +relay_to_domains
+ endpass
+ message = unrouteable address
+ verify = recipient
+
+ accept hosts = +relay_from_hosts
+
+ accept authenticated = *
+
+ deny message = relay not permitted
+
+begin routers
+
+EOF
+ ;
+
+if ($configtype eq 'internet') {
+ print EXIMCONF <<EOF;
+dnslookup:
+ driver = dnslookup
+ domains = ! +local_domains
+ transport = remote_smtp
+ ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
+ no_more
+
+EOF
+}
+elsif ($configtype eq 'smarthost' || $configtype eq 'satellite') {
+ print EXIMCONF <<EOF;
+smarthost:
+ driver = manualroute
+ domains = ! +local_domains
+ transport = remote_smtp
+ route_list = * $smarthost
+ no_more
+
+EOF
+}
+else {
+ print EXIMCONF <<EOF;
+# Stand-alone system, so generate an error for amil to a non-local domain
+nonlocal:
+ driver = redirect
+ allow_fail
+ data = :fail: Mailing to remote domains not supported
+ no_more
+ domains = ! +local_domains
+
+EOF
+}
+
+print EXIMCONF <<EOF;
+# The "no_more" above means that all routers below here are for
+# domains in the local_domains list, i.e. just like Exim 3 directors.
+
+real_local:
+ driver = accept
+ local_part_prefix = real-
+ check_local_user
+ transport = $local_delivery
+
+system_aliases:
+ driver = redirect
+ allow_fail
+ allow_defer
+ data = \${lookup{\$local_part}lsearch{/etc/aliases}}
+ file_transport = address_file
+ pipe_transport = address_pipe
+
+EOF
+ ;
+
+if ($configtype eq 'satellite') {
+ print EXIMCONF <<EOF;
+hub_user:
+ driver = redirect
+ data = \${local_part}\@$readhost
+ check_local_user
+
+EOF
+ ;
+}
+
+print EXIMCONF <<EOF;
+userforward:
+ driver = redirect
+ check_local_user
+ file = \$home/.forward
+ no_verify
+ no_expn
+ check_ancestor
+# allow_filter
+ file_transport = address_file
+ pipe_transport = address_pipe
+ reply_transport = address_reply
+
+EOF
+
+if ($use_procmail) {
+ print EXIMCONF <<EOF;
+procmail:
+ driver = accept
+ check_local_user
+ transport = procmail_pipe
+ require_files = \${local_part}:\${home}/.procmailrc:+/usr/bin/procmail
+ no_verify
+ no_expn
+
+EOF
+}
+
+if ($use_maildrop) {
+ print EXIMCONF <<EOF;
+maildrop:
+ driver = accept
+ check_local_user
+ transport = maildrop_pipe
+ require_files = \${local_part}:\${home}/.mailfilter:+/usr/bin/maildrop
+ no_verify
+ no_expn
+
+EOF
+}
+
+ print EXIMCONF <<EOF;
+local_user:
+ driver = accept
+ check_local_user
+ transport = $local_delivery
+
+begin transports
+
+EOF
+ ;
+if ($configtype ne 'local') {
+ print EXIMCONF <<EOF;
+remote_smtp:
+ driver = smtp
+
+EOF
+;
+}
+
+if ($mailbox_format eq 'spool') {
+ print EXIMCONF <<EOF;
+mail_spool:
+ driver = appendfile
+ file = /var/spool/mail/\$local_part
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+ group = mail
+ mode = 0660
+
+EOF
+}
+
+if ($mailbox_format eq 'maildir') {
+ print EXIMCONF <<EOF;
+maildir_home:
+ driver = appendfile
+ directory = \$home/Maildir
+ maildir_format
+ mode = 0600
+
+EOF
+}
+
+print EXIMCONF <<EOF;
+address_pipe:
+ driver = pipe
+ return_output
+
+address_file:
+ driver = appendfile
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+
+address_reply:
+ driver = autoreply
+
+EOF
+
+if ($use_maildrop) {
+ print EXIMCONF <<EOF;
+maildrop_pipe:
+ driver = pipe
+ path = "/bin:/usr/bin:/usr/local/bin"
+ command = "/usr/bin/maildrop"
+ return_path_add
+ delivery_date_add
+ envelope_to_add
+
+EOF
+}
+
+if ($use_procmail) {
+ print EXIMCONF <<EOF;
+procmail_pipe:
+ driver = pipe
+ path = "/bin:/usr/bin:/usr/local/bin"
+ command = "/usr/bin/procmail"
+ return_path_add
+ delivery_date_add
+ envelope_to_add
+
+EOF
+}
+
+print EXIMCONF <<EOF;
+begin retry
+
+# Domain Error Retries
+# ------ ----- -------
+
+* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
+
+begin rewrite
+
+EOF
+ ;
+
+print EXIMCONF <<EOF;
+# This rewriting rule is particularly useful for dialup users who
+# don't have their own domain, but could be useful for anyone.
+# It looks up the real address of all local users in a file
+
+EOF
+ ;
+
+for my $domain (@local_domains) {
+ print EXIMCONF "*\@$domain \${lookup{\${local_part}}lsearch{/etc/email-addresses}{\$value}fail} Ffrs\n";
+}
+
+if ($configtype eq 'satellite') {
+ print EXIMCONF <<EOF
+# These rewriters make sure the mail messages appear to have originated
+# from the real mail-reading host.
+
+EOF
+;
+
+ my $fuser = $postmasters[0];
+ for my $domain (@local_domains) {
+ print EXIMCONF "^(?i)(root|postmaster|mailer-daemon)\@$domain \$\{local_part\}\@in.limbo Ffr\n"
+ if (@postmasters);
+ print EXIMCONF "*\@$domain \$\{local_part\}\@$readhost Ffr\n";
+ }
+ print EXIMCONF "*\@in.limbo $fuser\@$readhost Ffr\n"
+ if (@postmasters);
+}
+
+print EXIMCONF <<'EOF';
+
+begin authenticators
+
+# The examples below are for server side authentication; they allow two
+# styles of plain-text authentication against an /etc/exim4/passwd file
+# which should have user IDs in the first column and crypted passwords
+# in the second.
+
+# plain:
+# driver = plaintext
+# public_name = PLAIN
+# server_condition = "${if crypteq{$2}{${extract{1}{:}{${lookup{$1}lsearch{/etc/exim4/passwd}{$value}{*:*}}}}}{1}{0}}"
+# server_set_id = $1
+#
+# login:
+# driver = plaintext
+# public_name = LOGIN
+# server_prompts = "Username:: : Password::"
+# server_condition = "${if crypteq{$3}{${extract{1}{:}{${lookup{$2}lsearch{/etc/exim4/passwd}{$value}{*:*}}}}}{1}{0}}"
+# server_set_id = $3
+#
+# cram_md5:
+# driver = cram_md5
+# public_name = CRAM-MD5
+# server_condition = "${if crypteq{$2}{${extract{1}{:}{${lookup{$1}lsearch{/etc/exim4/passwd}{$value}{*:*}}}}}{1}{0}}"
+# server_set_id = $1
+
+# Here is an example of CRAM-MD5 authentication against PostgreSQL:
+#
+# psqldb_auth:
+# driver = cram_md5
+# public_name = CRAM-MD5
+# server_condition = "${if crypteq{$2}{${lookup pgsql{SELECT pw FROM users WHERE username = '${quote_pgsql:$1}'}{$value}fail}{1}{0}}"
+# server_set_id = $1
+
+# These examples below are the equivalent for client side authentication.
+# They assume that you only use client side authentication to connect to
+# one host (such as a smarthost at your ISP), or else use the same user
+# name and password everywhere
+
+# plain:
+# driver = plaintext
+# public_name = PLAIN
+# client_send = "^username^password"
+#
+# login:
+# driver = plaintext
+# public_name = LOGIN
+# client_send = ": username : password"
+#
+# cram_md5:
+# driver = cram_md5
+# public_name = CRAM-MD5
+# client_name = username
+# client_secret = password
+
+EOF
+;
+
+close(EXIMCONF);
+
+unlink("/etc/exim4/exim4.conf.O");
+if (-f "/etc/exim4/exim4.conf") {
+ rename("/etc/exim4/exim4.conf", "/etc/exim4/exim4.conf.O")
+ or die "Unable to move /etc/exim4/exim4.conf to /etc/exim4/exim4.conf.O: $!\n";
+}
+rename("/etc/exim4/exim4.conf.exim-pkg-new.$$", "/etc/exim4/exim4.conf")
+ or die "Unable to move /etc/exim4/exim4.conf.exim-pkg-new.$$ to /etc/exim4/exim4.conf: $!\n";
diff --git a/debian/debconf.gamla/exim4-base.config b/debian/debconf.gamla/exim4-base.config
new file mode 100644
index 0000000..8c17115
--- /dev/null
+++ b/debian/debconf.gamla/exim4-base.config
@@ -0,0 +1,260 @@
+#!/usr/bin/perl -w
+
+require 5;
+use strict;
+use Debconf::Client::ConfModule ':all';
+use Carp;
+use vars qw($reconfiguring $exim3conf $capb $default_configtype);
+
+sub get_value($) {
+ my $key = shift;
+ my($code,$text) = get($key);
+ return $text if ($code == 0);
+ croak("Unable to fetch value for \"$key\" (debconf code $code)");
+}
+
+sub enqueue_question($$) {
+ my $priority = shift;
+ my $template = shift;
+ my($code,$text) = input($priority, $template);
+ if ($code && $code != 30) {
+ croak("Error asking question \"$template\" (debconf code $code)");
+ }
+}
+
+sub set_default($$) {
+ my $key = shift;
+ my $defaultvalue = shift;
+ my($code, $text) = get($key);
+ if ($code == 0) {
+ if ($text eq '') {
+ ($code,$text) = set($key, $defaultvalue);
+ # Check $code...
+ }
+ }
+ else {
+ croak("Unable to fetch value for \"$key\" (debconf code $code)");
+ }
+}
+
+sub fetch_default($$) {
+ my $key = shift;
+ my $defaultcb = shift;
+ my($code, $text) = get($key);
+ if ($code == 0) {
+ if ($text eq '') {
+ my $defaultvalue = &$defaultcb;
+ if (defined($defaultvalue)) {
+ ($code, $text) = set($key, $defaultvalue);
+ # Check $code...
+ }
+ }
+ }
+ else {
+ croak("Unable to fetch value for \"$key\" (debconf code $code)");
+ }
+}
+
+sub debug {
+ if ($ENV{EXIMCONF_DEBUG}) {
+ print STDERR "$0: @_\n";
+ }
+}
+
+sub exim3_readconfig {
+ my $filename = shift || "/etc/exim/exim.conf";
+
+ if (open(EXIMCONF, $filename)) {
+
+ my $config;
+
+ my $keyword;
+
+ scanmain:
+ while (<EXIMCONF>) {
+ chomp;
+ if (/^end\b/) {
+ last scanmain;
+ }
+ elsif (/^\s*([a-zA-z0-9_]+)\s*=\s*(.*)/) {
+ $keyword = $1;
+ my $value = $2;
+ while ($value =~ s/\\$//) {
+ my $nextline = <EXIMCONF>;
+ $value .= $nextline;
+ }
+ $config->{main}->{$keyword} = $value;
+ }
+ elsif (/^\s*no_([a-zA-Z0-9_]+)\s*$/) {
+ $config->{main}->{$keyword} = '';
+ }
+ }
+
+ for my $section (qw|transports directors routers|) {
+ scansection:
+ while (<EXIMCONF>) {
+ chomp;
+
+ if (/^end\b/) {
+ last scansection;
+ }
+ elsif (/^([a-zA-Z0-9_]+):\s*/) {
+ my $objname = $1;
+ objectline:
+ while (<EXIMCONF>) {
+ next if (/^\s*\#/ || !/\S/);
+ if (/^\s*([a-zA-Z0-9_]+)\s*=\s*(.*)/) {
+ my $propname = $1;
+ my $value = $2;
+ while ($value =~ s/\\$//) {
+ my $nextline = <EXIMCONF>;
+ $value .= $nextline;
+ }
+ $config->{$section}->{$objname}->{$propname} = $value;
+ }
+ else {
+ redo scansection;
+ }
+ }
+ }
+ }
+ }
+
+ close(EXIMCONF);
+ debug("Read Exim 3 config file $filename");
+ return $config;
+ }
+ else {
+ debug("Unable to read $filename: $!");
+ }
+
+ return undef;
+}
+
+version('2.0');
+$capb = capb(''); # FIXME: Support backup
+
+######################################################################
+
+$reconfiguring = 1 if ($ARGV[0] eq 'reconfigure');
+
+if (-f "/etc/exim4/exim4.conf" && !$reconfiguring) {
+ exit(0); # exit if exim4.conf already built and we are not explicitly reconfiguring
+}
+
+######################################################################
+# Look for old Exim3 config file
+
+if (-f "/etc/exim/exim.conf") {
+ enqueue_question("high", "exim/configconvert/question");
+ go();
+ my $convertresponse = get_value("exim/configconvert/question");
+ if ($convertresponse eq 'convert') {
+ enqueue_question("high", "exim/configconvert/convertnotice");
+ go();
+ system("/etc/init.d/exim4", "stop") if ($reconfiguring);
+ exit(0);
+ }
+ elsif ($convertresponse eq 'none') {
+ enqueue_question("high", "exim/configconvert/breakagenotice");
+ go();
+ exit(0);
+ }
+ elsif ($convertresponse eq 'createnew') {
+ # Do not read exim3 config file for defaults if exim4.conf has been created already
+ # The defaults should have been seen once by the user and stored in debconf anyway.
+ $exim3conf = exim3_readconfig() unless (-f "/etc/exim4/exim4.conf");
+ }
+ else {
+ die "exim/configconvert/question has an unrecognised answer: (\"$convertresponse\")\n";
+ }
+}
+
+######################################################################
+# Ask eximconfig questions
+
+# Grab the configtype from the old exim3 config file
+# TRANSPORT(remote_smtp) does not exist ==> local
+# ROUTER(lookuphost) exists ==> internet
+# DIRECTOR(smart) exists ==> satellite
+# DEFAULT ==> smarthost
+fetch_default("exim/eximconfig/configtype", sub {
+ return "local" if (!defined($exim3conf->{transports}->{remote_smtp}));
+ return "internet" if (defined($exim3conf->{routers}->{lookuphost}));
+ return "satellite" if (defined($exim3conf->{directors}->{smart}));
+ return "smarthost"; });
+
+enqueue_question("high", "exim/eximconfig/configtype");
+go();
+
+my $configtype = get_value("exim/eximconfig/configtype");
+if ($configtype eq 'none') {
+ exit(0);
+}
+
+my $syshostname = $exim3conf->{main}->{primary_hostname} || $exim3conf->{main}->{qualify_domain} || `hostname --fqdn` || `hostname`;
+
+my $visiblename;
+
+if ($configtype eq 'satellite') {
+ set_default("exim/eximconfig/satellite_hostname", $syshostname);
+ enqueue_question("medium", "exim/eximconfig/satellite_hostname");
+ go();
+ $visiblename = get_value("exim/eximconfig/satellite_hostname");
+}
+else {
+ set_default("exim/eximconfig/visible_hostname", $syshostname);
+ enqueue_question("medium", "exim/eximconfig/visible_hostname");
+ go();
+ $visiblename = get_value("exim/eximconfig/visible_hostname");
+}
+
+if ($configtype eq 'internet' || $configtype eq 'smarthost') {
+ subst("exim/eximconfig/other_hostnames", "visiblename", $visiblename);
+
+ enqueue_question("high", "exim/eximconfig/other_hostnames");
+ # Downgrade these to medium since having them empty is likely to be reasonable?
+ enqueue_question("high", "exim/eximconfig/relay_domains");
+ enqueue_question("high", "exim/eximconfig/relay_nets");
+}
+
+my $ourdomain = $syshostname;
+$ourdomain =~ s/^[^.][^.]*\.//;
+
+if ($configtype eq 'satellite') {
+ # Exim 3 satellite configuration?
+ # Look for director called "smart"
+ # .. and new_address setting of "${local_part}@SOME_DOMAIN"
+ if ($exim3conf->{directors}->{smart} && $exim3conf->{directors}->{smart}->{new_address} =~ /^\${local_part}\@(.+)/) {
+ set_default("exim/eximconfig/readhost", $1);
+ }
+ else {
+ set_default("exim/eximconfig/readhost", $ourdomain);
+ }
+ # This is high priority even though it has a default, since $ourdomain
+ # is not necessarily "reasonable".. mail.$ourdomain would be equally "reasonable"
+ enqueue_question("high", "exim/eximconfig/readhost");
+ go();
+ my $readhost = get_value("exim/eximconfig/readhost");
+ set_default("exim/eximconfig/smarthost", $readhost);
+ enqueue_question("medium", "exim/eximconfig/smarthost");
+}
+elsif ($configtype eq 'smarthost') {
+ set_default("exim/eximconfig/smarthost", $ourdomain);
+ enqueue_question("high", "exim/eximconfig/smarthost");
+}
+
+enqueue_question("medium", "exim/eximconfig/overwrite_aliases");
+enqueue_question("medium", "exim/daemon/permissions");
+
+go();
+
+if ($reconfiguring) {
+ system("/etc/init.d/exim4", "stop");
+ if (-f "/etc/exim4/exim4.conf") {
+ unlink("/etc/exim4/exim4.conf-reconfigure");
+ rename("/etc/exim4/exim4.conf", "/etc/exim4/exim4.conf-reconfigure");
+ }
+}
+
+exit(0);
diff --git a/debian/debconf.gamla/exim4-base.postinst b/debian/debconf.gamla/exim4-base.postinst
new file mode 100644
index 0000000..a7037a0
--- /dev/null
+++ b/debian/debconf.gamla/exim4-base.postinst
@@ -0,0 +1,92 @@
+#!/bin/sh
+
+set -e
+. /usr/share/debconf/confmodule
+
+db_version 2.0
+
+get_value() {
+ db_get $1
+ code="$?"
+ if [ "$code" -eq "0" ]; then
+ :
+ else
+ echo "Error getting debconf answer $1: debconf code=$code" >&2
+ exit $code
+ fi
+}
+
+case "$1" in
+ configure)
+ # Create directories for log etc
+ install -d -omail -gadm -m2750 /var/log/exim4
+ install -d -omail -gmail /var/run/exim4
+
+ # Check that db files are readable by this Exim's db library
+ dbfiles=""
+ for f in /var/spool/exim/db/*; do
+ if [ -f "$f" ]; then
+ if echo $f | grep \.lockfile\$ >/dev/null 2>&1; then
+ : # ignore lock files
+ else
+ dbfiles="$dbfiles `basename $f`"
+ fi
+ fi
+ done
+ for dbfile in $dbfiles; do
+ if exim_dumpdb /var/spool/exim $dbfile >/dev/null 2>&1; then
+ : # File OK
+ else
+ echo "Resetting invalid $dbfile hints db"
+ rm -f /var/spool/exim/db/$dbfile /var/spool/exim/db/$dbfile.*
+ fi
+ done
+
+ # Configure Exim
+ get_value exim/configconvert/question
+ convertanswer="$RET"
+ if [ -f /etc/exim4/exim4.conf ]; then
+ : # nothing: leave existing config alone
+ elif [ "$convertanswer" = "convert" ]; then
+ /usr/lib/exim4/convert4r4 < /etc/exim/exim.conf > /etc/exim4/exim4.conf
+ elif [ "$convertanswer" = "createnew" ]; then
+ /usr/lib/exim4/debconf_eximconfig
+ fi
+
+ if [ -x "/etc/init.d/exim4" ]; then
+ update-rc.d exim4 defaults >/dev/null
+ fi
+
+ get_value exim/daemon/permissions
+ case "$RET" in
+ "setuid root")
+ if ! dpkg-statoverride --list /usr/sbin/exim4 >/dev/null; then
+ dpkg-statoverride --update --add root root 4755 /usr/sbin/exim4
+ fi
+ ;;
+ "setuid mail")
+ if ! dpkg-statoverride --list /usr/sbin/exim4 >/dev/null; then
+ dpkg-statoverride --update --add mail root 4755 /usr/sbin/exim4
+ fi
+ ;;
+ "none")
+ if ! dpkg-statoverride --list /usr/sbin/exim4 >/dev/null; then
+ dpkg-statoverride --update --remove /usr/sbin/exim4
+ fi
+ ;;
+ *)
+ echo "Error: Wrong answer for exim/daemon/permissions: $RET" >&3
+ exit 1;
+ ;;
+ esac
+
+ if command -v invoke-rc.d >/dev/null 2>&1; then
+ invoke-rc.d exim4 start
+ else
+ /etc/init.d/exim4 start
+ fi
+
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/debconf.gamla/exim4-base.templates b/debian/debconf.gamla/exim4-base.templates
new file mode 100644
index 0000000..11664e4
--- /dev/null
+++ b/debian/debconf.gamla/exim4-base.templates
@@ -0,0 +1,204 @@
+Template: exim/configconvert/question
+Type: select
+Choices: convert, createnew, none
+Description: Exim 3 configuration not compatible with Exim 4
+ Your existing Exim 3 configuration in /etc/exim/exim.conf cannot be
+ used by Exim 4. It is possible to try to convert your configuration file
+ using a script, or you can build a new configuration file by answering
+ a series of questions about your system.
+ .
+ As a third choice, you can leave Exim 4 unconfigured in case you want to
+ write a configuration file yourself.
+
+Template: exim/configconvert/convertnotice
+Type: note
+Description: Exim 3 configuration will be converted and put in exim4.conf
+ Exim 4 cannot read an Exim 3 configuration file. An attempt has been made
+ to convert your Exim 3 configuration file into an Exim 4 file, but this is
+ not guaranteed to work in all cases.
+ .
+ Exim 4's configuration file is in /etc/exim4/exim4.conf; your original
+ Exim 3 configuration file can still be found at /etc/exim/exim.conf, which
+ will be ignored from now on.
+ .
+ If the configuration file is badly broken, Exim will now refuse to start.
+ You should check your Exim configuration anyway to make sure that messages
+ are still being delivered correctly.
+
+Template: exim/configconvert/breakagenotice
+Type: note
+Description: Exim 4 is not configured
+ Exim 4 has not been configured. You must write an Exim 4 configuration file
+ as /etc/exim4/exim4.conf before Exim is usable. This host cannot
+ send or receive email until this is done.
+
+Template: exim/eximconfig/configtype
+Type: select
+Choices: internet, smarthost, satellite, local, none
+Description: Which major configuration?
+ You must choose one of the options below:
+ .
+ Internet site; mail is sent and received directly using SMTP. If your
+ needs don't fit neatly into any category, you probably want to start
+ with this one and then edit the config file by hand.
+ .
+ Internet site using smarthost: You receive Internet mail on this
+ machine, either directly by SMTP or by running a utility such as
+ fetchmail. Outgoing mail is sent using a smarthost. optionally with
+ addresses rewritten. This is probably what you want for a dialup
+ system.
+ .
+ Satellite system: All mail is sent to another machine, called a "smart
+ host" for delivery. root and postmaster mail is delivered according
+ to /etc/aliases. No mail is received locally.
+ .
+ Local delivery only: You are not on a network. Mail for local users
+ is delivered.
+ .
+ No configuration: No configuration will be done now; your mail system
+ will be broken and should not be used. You must then do the
+ configuration yourself later or run "dpkg-reconfigure exim"
+ as root. Look in /usr/share/doc/exim/example.conf.gz
+
+Template: exim/eximconfig/satellite_hostname
+Type: string
+Description: What is the hostname for this system?
+ What is this system's name? It won't appear on From: lines of mail,
+ as rewriting is used.
+
+Template: exim/eximconfig/visible_hostname
+Type: string
+Description: What is the visible mail name of your system?
+ This will appear on From: lines of outgoing messages.
+
+Template: exim/eximconfig/syshostname
+Type: string
+Description: internal use only
+ This value is only used internally-- this template is never displayed.
+
+Template: exim/eximconfig/other_hostnames
+Type: string
+Description: What other domain names to recognise?
+ Does this system have any other names which may appear on incoming
+ mail messages, apart from the visible name (${visiblename}) and
+ localhost?
+ .
+ By default all domains will be treated the same; if you want different
+ domain names to be treated differently, you will need to edit the config
+ file afterwards.
+ .
+ If there are any more, enter them here, separated with spaces or commas.
+
+Template: exim/eximconfig/relay_domains
+Type: string
+Description: Which domains to relay for?
+ All mail from here or specified other local machines to anywhere on
+ the internet will be accepted, as will mail from anywhere on the
+ internet to here.
+ .
+ Are there any domains you want to relay mail for---that is, you are
+ prepared to accept mail for them from anywhere on the internet, but
+ they are not local domains.
+ .
+ If there are any, enter them here, separated with spaces or commas. You
+ can use wildcards. If you want to relay
+ mail for all domains that specify you as an MX, then say "mx".
+
+Template: exim/eximconfig/relay_nets
+Type: string
+Description: Which machines to allow relaying for?
+ Obviously, any machines that use us as a smarthost have to be excluded
+ from the relaying controls, as using us to relay mail for them is the
+ whole point.
+ .
+ Are there any networks of local machines you want to relay mail for?
+ .
+ If there are any, enter them here, separated with spaces or commas. You
+ should use the standard address/length format (e.g. 194.222.242.0/24)
+ .
+ You need to double the colons in IPv6 addreses (e.g. 5f03::1200::836f::::/48)
+
+Template: exim/eximconfig/readhost
+Type: string
+Description: Domain name for local users
+ Since this is going to be a satellite system, I need to know what domain
+ name to use for mail from local users; typically this is the machine on
+ which you normally receive your mail.
+ .
+ Where will your users read their mail?
+
+Template: exim/eximconfig/smarthost
+Type: string
+Description: Which machine will act as the smarthost and handle outgoing mail?
+ Enter the hostname of the machine to send outgoing mail to.
+
+Template: exim/eximconfig/postmaster
+Type: string
+Description: Who is to receive postmaster mail?
+ Mail for the "postmaster" and "root" accounts is usually redirected
+ to one or more user accounts, of the actual system administrators.
+ By default, I'll set things up so that mail for "postmaster" and for
+ various system accounts is redirected to "root", and mail for "root"
+ is redirected to a real user. This can be changed by editing /etc/aliases.
+ .
+ Note that postmaster-mail should usually be read on the system it is
+ directed to, rather than being forwarded elsewhere, so (at least one of)
+ the users you choose should not redirect their mail off this machine.
+ .
+ Which user account(s) should system administrator mail go to ?
+ Enter one or more usernames separated by spaces or commas . Enter
+ "none" if you want to leave this mail in "root"'s mailbox - NB this
+ is strongly discouraged. Also, note that usernames should be lowercase!
+
+Template: exim/eximconfig/overwrite_aliases
+Type: boolean
+Default: false
+Description: Overwrite existing /etc/aliases?
+ You already have an /etc/aliases file. Do you want to replace this with
+ a new one (the old one will be kept and renamed to aliases.O)?
+
+Template: exim/eximconfig/mailbox_format
+Type: select
+Choices: spool, maildir
+Default: spool
+Description: Where to store user mailboxes?
+ The Debian default place to store user mail is in
+ /var/spool/mail/$USER. However, you may wish to store it
+ elsewhere. One popular choice (particularly with those migrating from
+ qmail) is to store user mail in a "Maildir" in their home directory.
+ .
+ You can choose to store mail in the normal mail spool, or a
+ home-directory Maildir.
+
+Template: exim/eximconfig/auto_procmail
+Type: boolean
+Default: true
+Description: Automatically use procmail to deliver mail?
+ Do you want Exim to automagically deliver mail with procmail if:
+ .
+ a) it is installed, and
+ .
+ b) the target user has a ".procmailrc" file in their home directory.
+
+Template: exim/eximconfig/auto_maildrop
+Type: boolean
+Default: true
+Description: Automatically use maildrop to deliver mail?
+ Do you want Exim to automagically deliver mail with maildrop if:
+ .
+ a) it is installed, and
+ .
+ b) the target user has a ".mailfilter" file in their home directory.
+
+Template: exim/daemon/permissions
+Type: select
+Choices: setuid root, setuid mail, none
+Default: setuid root
+Description: Install Exim daemon with SUID bit set?
+ Exim can be installed without extra privileges, setuid to mail (the
+ Exim user), or setuid to root. The safe default is to install it
+ setuid to root. Changing this can cause problems with usage of
+ .forward files and mail delivery, depending on your setup.
+ .
+ Be sure to read Chapter 55 "Security considerations" of the Exim
+ manual before you change this.
diff --git a/debian/debconf/30_exim4-config_example_check_rcpt b/debian/debconf/30_exim4-config_example_check_rcpt
new file mode 100644
index 0000000..8e8883d
--- /dev/null
+++ b/debian/debconf/30_exim4-config_example_check_rcpt
@@ -0,0 +1,139 @@
+# This access control list is used for every RCPT command in an incoming
+# SMTP message. The tests are run in order until the address is either
+# accepted or denied.
+#
+acl_example_check_rcpt:
+ # Accept if the source is local SMTP (i.e. not over TCP/IP). We do this by
+ # testing for an empty sending host field.
+ accept hosts = :
+
+ # Deny if the local part contains @ or % or / or | or !. These are rarely
+ # found in genuine local parts, but are often tried by people looking to
+ # circumvent relaying restrictions.
+ #
+ # Also deny if the local part starts with a dot. Empty components aren't
+ # strictly legal in RFC 2822, but Exim allows them because this is common.
+ # However, actually starting with a dot may cause trouble if the local part
+ # is used as a file name (e.g. for a mailing list).
+ #
+ deny local_parts = ^.*[@%!/|] : ^\\.
+
+ # Accept mail to postmaster in any local domain, regardless of the source,
+ # and without verifying the sender.
+ #
+ accept local_parts = postmaster
+ domains = +local_domains
+
+ # Deny unless the sender address can be verified.
+ deny !acl = acl_whitelist_local_deny
+ !verify = sender
+
+ # Warn if the sender host does not have valid reverse DNS.
+ warn message = X-Broken-Reverse-DNS: no host name found for IP address $sender_host_address
+ !verify = reverse_host_lookup
+
+ # deny bad senders (envelope sender)
+ # CONFDIR/local_sender_blacklist holds a list of envelope senders that
+ # should have their access denied to the local host. Incoming messages
+ # with one of these senders are rejected at RCPT time.
+ #
+ # The explicit white lists are honored as well as negative items in
+ # the black list. See /usr/share/doc/exim4-config/default_acl for details.
+ deny message = sender envelope address $sender_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
+ !acl = acl_whitelist_local_deny
+ senders = ${if exists{CONFDIR/local_sender_blacklist}\
+ {CONFDIR/local_sender_blacklist}\
+ {}}
+
+ # deny bad sites (IP address)
+ # CONFDIR/local_host_blacklist holds a list of host names, IP addresses
+ # and networks (CIDR notation) that should have their access denied to
+ # The local host. Messages coming in from a listed host will have all
+ # RCPT statements rejected.
+ #
+ # The explicit white lists are honored as well as negative items in
+ # the black list. See /usr/share/doc/exim4-config/default_acl for details.
+ deny message = sender IP address $sender_host_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
+ !acl = acl_whitelist_local_deny
+ hosts = ${if exists{CONFDIR/local_host_blacklist}\
+ {CONFDIR/local_host_blacklist}\
+ {}}
+
+
+ #############################################################################
+ # The DNS "black" lists here might have gone out of existence at the
+ # time you might want to start using this example. Use at your own risk,
+ # and verify the used lists' policies.
+ #############################################################################
+
+ warn message = X-Warning: $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ dnslists = inputs.relays.osirusoft.com:dialups.relays.osirusoft.com:spamhaus.relays.osirusoft.com:spamsites.relays.osirusoft.com:spews.relays.osirusoft.com:relays.ordb.org:relays.bl.kundenserver.de:relays.visi.com:sbl.spamhaus.org
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_postmaster.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_postmaster.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = postmaster.rfc-ignorant.org/$sender_address_domain
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_abuse.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_abuse.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = abuse.rfc-ignorant.org/$sender_address_domain
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_whois.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_whois.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = whois.rfc-ignorant.org/$sender_address_domain
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_dsn.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_dsn.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = dsn.rfc-ignorant.org/$sender_address_domain
+
+ # Accept if the address is in a local domain, but only if the recipient can
+ # be verified. Otherwise deny. The "endpass" line is the border between
+ # passing on to the next ACL statement (if tests above it fail) or denying
+ # access (if tests below it fail).
+ #
+ accept domains = +local_domains
+ endpass
+ message = unknown user
+ verify = recipient
+
+ # Accept if the address is in a domain for which we are relaying, but again,
+ # only if the recipient can be verified.
+ #
+ accept domains = +relay_to_domains
+ endpass
+ message = unrouteable address
+ verify = recipient
+
+ # If control reaches this point, the domain is neither in +local_domains
+ # nor in +relay_to_domains.
+
+ # Accept if the message comes from one of the hosts for which we are an
+ # outgoing relay. Recipient verification is omitted here, because in many
+ # cases the clients are dumb MUAs that don't cope well with SMTP error
+ # responses. If you are actually relaying out from MTAs, you should probably
+ # add recipient verification here.
+ #
+ accept hosts = +relay_from_hosts
+
+ # Accept if the message arrived over an authenticated connection, from
+ # any host. Again, these messages are usually from MUAs, so recipient
+ # verification is omitted.
+ #
+ accept authenticated = *
+
+ # Reaching the end of the ACL causes a "deny", but we might as well give
+ # an explicit message.
+ #
+ deny message = relay not permitted
diff --git a/debian/debconf/conf.d/acl/00_exim4-config_header b/debian/debconf/conf.d/acl/00_exim4-config_header
new file mode 100644
index 0000000..76b017e
--- /dev/null
+++ b/debian/debconf/conf.d/acl/00_exim4-config_header
@@ -0,0 +1,8 @@
+
+######################################################################
+# ACL CONFIGURATION #
+# Specifies access control lists for incoming SMTP mail #
+######################################################################
+begin acl
+
+
diff --git a/debian/debconf/conf.d/acl/20_exim4-config_whitelist_local_deny b/debian/debconf/conf.d/acl/20_exim4-config_whitelist_local_deny
new file mode 100644
index 0000000..7ff368f
--- /dev/null
+++ b/debian/debconf/conf.d/acl/20_exim4-config_whitelist_local_deny
@@ -0,0 +1,29 @@
+# This access control list is used to determine whitelisted senders and
+# hosts. It checks for CONFDIR/local_host_whitelist and
+# CONFDIR/local_sender_whitelist.
+#
+# It is meant to be used from some other acl entry.
+#
+# For example,
+# deny message = local blacklist example
+# !acl = acl_whitelist
+# dnslist = some.dns.list.example
+# will allow messages with envelope sender listed in local_sender_whitelist
+# or messages coming in from hosts listed in local_host_whitelist to be
+# accepted even if the delivering host is listed in the dns list.
+#
+# Whitelisting can also be configured by including negative items in the
+# black list. See /usr/share/doc/exim4-config/default_acl for details.
+#
+# If the files do not exist, the white list never matches, which is
+# the desired behaviour.
+
+acl_whitelist_local_deny:
+ accept hosts = ${if exists{CONFDIR/local_host_whitelist}\
+ {CONFDIR/local_host_whitelist}\
+ {}}
+ accept senders = ${if exists{CONFDIR/local_sender_whitelist}\
+ {CONFDIR/local_sender_whitelist}\
+ {}}
+
+
diff --git a/debian/debconf/conf.d/acl/30_exim4-config_check_rcpt b/debian/debconf/conf.d/acl/30_exim4-config_check_rcpt
new file mode 100644
index 0000000..13d5852
--- /dev/null
+++ b/debian/debconf/conf.d/acl/30_exim4-config_check_rcpt
@@ -0,0 +1,118 @@
+# This access control list is used for every RCPT command in an incoming
+# SMTP message. The tests are run in order until the address is either
+# accepted or denied.
+#
+acl_check_rcpt:
+ # Accept if the source is local SMTP (i.e. not over TCP/IP). We do this by
+ # testing for an empty sending host field.
+ accept hosts = :
+
+ # Deny if the local part contains @ or % or / or | or !. These are rarely
+ # found in genuine local parts, but are often tried by people looking to
+ # circumvent relaying restrictions.
+ #
+ # Also deny if the local part starts with a dot. Empty components aren't
+ # strictly legal in RFC 2822, but Exim allows them because this is common.
+ # However, actually starting with a dot may cause trouble if the local part
+ # is used as a file name (e.g. for a mailing list).
+ #
+ deny local_parts = ^.*[@%!/|] : ^\\.
+
+ # Accept mail to postmaster in any local domain, regardless of the source,
+ # and without verifying the sender.
+ #
+ accept local_parts = postmaster
+ domains = +local_domains
+
+ # Deny unless the sender address can be verified.
+ #
+ # This is disabled by default so that DNSless systems don't break. If
+ # your system can do DNS lookups without delay or cost, you might want
+ # to enable the following line.
+ # deny !acl = acl_whitelist_local_deny
+ # !verify = sender
+
+ # Warn if the sender host does not have valid reverse DNS.
+ #
+ # This is disabled by default so that DNSless systems don't break. If
+ # your system can do DNS lookups without delay or cost, you might want
+ # to enable the following lines.
+ # warn message = X-Broken-Reverse-DNS: no host name found for IP address $sender_host_address
+ # !verify = reverse_host_lookup
+
+ # deny bad senders (envelope sender)
+ # CONFDIR/local_sender_blacklist holds a list of envelope senders that
+ # should have their access denied to the local host. Incoming messages
+ # with one of these senders are rejected at RCPT time.
+ #
+ # The explicit white lists are honored as well as negative items in
+ # the black list. See /usr/share/doc/exim4-config/default_acl for details.
+ deny message = sender envelope address $sender_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
+ !acl = acl_whitelist_local_deny
+ senders = ${if exists{CONFDIR/local_sender_blacklist}\
+ {CONFDIR/local_sender_blacklist}\
+ {}}
+
+ # deny bad sites (IP address)
+ # CONFDIR/local_host_blacklist holds a list of host names, IP addresses
+ # and networks (CIDR notation) that should have their access denied to
+ # The local host. Messages coming in from a listed host will have all
+ # RCPT statements rejected.
+ #
+ # The explicit white lists are honored as well as negative items in
+ # the black list. See /usr/share/doc/exim4-config/default_acl for details.
+ deny message = sender IP address $sender_host_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
+ !acl = acl_whitelist_local_deny
+ hosts = ${if exists{CONFDIR/local_host_blacklist}\
+ {CONFDIR/local_host_blacklist}\
+ {}}
+
+
+ #############################################################################
+ # There are no checks on DNS "black" lists because the domains that contain
+ # these lists are changing all the time. You can find examples of
+ # how to use dnslists in /usr/share/doc/exim4-config/examples/acl
+ #############################################################################
+
+ # Accept if the address is in a local domain, but only if the recipient can
+ # be verified. Otherwise deny. The "endpass" line is the border between
+ # passing on to the next ACL statement (if tests above it fail) or denying
+ # access (if tests below it fail).
+ #
+ accept domains = +local_domains
+ endpass
+ message = unknown user
+ verify = recipient
+
+ # Accept if the address is in a domain for which we are relaying, but again,
+ # only if the recipient can be verified.
+ #
+ accept domains = +relay_to_domains
+ endpass
+ message = unrouteable address
+ verify = recipient
+
+ # If control reaches this point, the domain is neither in +local_domains
+ # nor in +relay_to_domains.
+
+ # Accept if the message comes from one of the hosts for which we are an
+ # outgoing relay. Recipient verification is omitted here, because in many
+ # cases the clients are dumb MUAs that don't cope well with SMTP error
+ # responses. If you are actually relaying out from MTAs, you should probably
+ # add recipient verification here.
+ #
+ accept hosts = +relay_from_hosts
+
+ # Accept if the message arrived over an authenticated connection, from
+ # any host. Again, these messages are usually from MUAs, so recipient
+ # verification is omitted.
+ #
+ accept authenticated = *
+
+ # Reaching the end of the ACL causes a "deny", but we might as well give
+ # an explicit message.
+ #
+ deny message = relay not permitted
+
+
+
diff --git a/debian/debconf/conf.d/acl/40_exim4-config_check_data b/debian/debconf/conf.d/acl/40_exim4-config_check_data
new file mode 100644
index 0000000..220a572
--- /dev/null
+++ b/debian/debconf/conf.d/acl/40_exim4-config_check_data
@@ -0,0 +1,29 @@
+# 40_exim4-config_check_data
+
+acl_check_data:
+ # Add Message-ID if missing
+ warn condition = ${if !def:h_Message-ID: {1}}
+ hosts = +relay_from_hosts
+ message = Message-ID: <E$message_id@$primary_hostname>
+
+ # Deny unless the address list headers are syntactically correct.
+ #
+ # This is disabled by default because it might reject legitimate mail.
+ # If you want your system to insist on syntactically valid address
+ # headers, you might want to enable the following lines.
+ # deny message = Message headers fail syntax check
+ # !acl = acl_whitelist_local_deny
+ # !verify = header_syntax
+
+ # require that there is a verifiable sender address in at least
+ # one of the "Sender:", "Reply-To:", or "From:" header lines.
+ # deny message = No verifiable sender address in message headers
+ # !acl = acl_whitelist_local_deny
+ # !verify = header_sender
+
+ # enforce a message-size limit
+ # deny message = Message size $message_size is larger than limit of MESSAGE_SIZE_LIMIT
+ # condition = ${if >{$message_size}{MESSAGE_SIZE_LIMIT}{yes}{no}}
+
+ # accept otherwise
+ accept
diff --git a/debian/debconf/conf.d/auth/00_exim4-config_header b/debian/debconf/conf.d/auth/00_exim4-config_header
new file mode 100644
index 0000000..c5f8fc1
--- /dev/null
+++ b/debian/debconf/conf.d/auth/00_exim4-config_header
@@ -0,0 +1,8 @@
+
+######################################################################
+# AUTHENTICATION CONFIGURATION #
+######################################################################
+
+begin authenticators
+
+
diff --git a/debian/debconf/conf.d/auth/30_exim4-config_examples b/debian/debconf/conf.d/auth/30_exim4-config_examples
new file mode 100644
index 0000000..dbc3b9b
--- /dev/null
+++ b/debian/debconf/conf.d/auth/30_exim4-config_examples
@@ -0,0 +1,102 @@
+
+### auth/30_exim4-config_examples
+#################################
+
+# The examples below are for server side authentication; they allow two
+# styles of plain-text authentication against an CONFDIR/passwd file
+# which should have user IDs in the first column and crypted passwords
+# in the second. The columns need to be separated by ':'. For CRAM-MD5
+# exim needs access to the UNECRYPTED passwd - the example below assumes
+# it is avalable in the third column of CONFDIR/passwd
+
+# plain_server:
+# driver = plaintext
+# public_name = PLAIN
+# server_condition = "${if crypteq{$3}{${extract{1}{:}{${lookup{$2}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
+# server_set_id = $2
+# server_prompts = :
+#
+# login_server:
+# driver = plaintext
+# public_name = LOGIN
+# server_prompts = "Username:: : Password::"
+# server_condition = "${if crypteq{$2}{${extract{1}{:}{${lookup{$1}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
+# server_set_id = $1
+#
+# cram_md5_server:
+# driver = cram_md5
+# public_name = CRAM-MD5
+# server_secret = ${extract{2}{:}{${lookup{$1}lsearch{CONFDIR/passwd}{$value}fail}}}
+# server_set_id = $1
+
+# Here is an example of CRAM-MD5 authentication against PostgreSQL:
+#
+# psqldb_auth:
+# driver = cram_md5
+# public_name = CRAM-MD5
+# server_secret = ${lookup pgsql{SELECT pw FROM users WHERE username = '${quote_pgsql:$1}'}{$value}fail}
+# server_set_id = $1
+
+# Authenticate against local passwords using sasl2-bin
+#
+# plain_saslauthd:
+# driver = plaintext
+# public_name = PLAIN
+# # don't send system passwords over unencrypted connections
+# server_advertise_condition = ${if eq{$tls_cipher}{}{0}{1}}
+# server_condition = ${if saslauthd{{$2}{$3}}{1}{0}}
+# server_set_id = $2
+# server_prompts = :
+
+##############
+# See /usr/share/doc/exim4-base/README.SMTP-AUTH
+##############
+
+# These examples below are the equivalent for client side authentication.
+# They get the passwords from CONFDIR/passwd.client. This file should have
+# three columns separated by colons, the first contains the name of the
+# mailserver to authenticate against, the second the username and the third
+# contains the password.
+
+### # example for CONFDIR/passwd.client
+### mail.server:blah:secret
+### # default entry:
+### *:bar:foo
+
+cram_md5:
+ driver = cram_md5
+ public_name = CRAM-MD5
+ client_name = ${extract{1}{:}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}
+ client_secret = ${extract{2}{:}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}
+
+# Because AUTH PLAIN sends the password in clear, per default we only allow it
+# over encrypted connections. If you want to change this disable the existing
+# "client send" entry and enable the one below without the "if !eq{$tls_cipher}{}"
+# by removing the hash-mark (#) at the beginning of the line.
+plain:
+ driver = plaintext
+ public_name = PLAIN
+ client_send = "${if !eq{$tls_cipher}{}{\
+ ^${extract{1}{::}\
+ {${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}\
+ ^${extract{2}{::}\
+ {${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}\
+ }fail}"
+# client_send = "^${extract{1}{::}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}^${extract{2}{::}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}"
+
+# Because AUTH LOGIN sends the password in clear, per default we only allow it
+# over encrypted connections. If you want to change this disable the existing
+# "client send" entry and enable the one below without the "if !eq{$tls_cipher}{}"
+# by removing the hash-mark (#) at the beginning of the line.
+login:
+ driver = plaintext
+ public_name = LOGIN
+ client_send = "${if !eq{$tls_cipher}{}{}fail}\
+ : ${extract{1}{::}\
+ {${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}} \
+ : ${extract{2}{::}\
+ {${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}"
+# client_send = ": ${extract{1}{::}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}} : ${extract{2}{::}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}"
+
+
+
diff --git a/debian/debconf/conf.d/main/01_exim4-config_listmacrosdefs b/debian/debconf/conf.d/main/01_exim4-config_listmacrosdefs
new file mode 100644
index 0000000..5b29ed0
--- /dev/null
+++ b/debian/debconf/conf.d/main/01_exim4-config_listmacrosdefs
@@ -0,0 +1,72 @@
+
+######################################################################
+# Runtime configuration file for Exim #
+######################################################################
+
+######################################################################
+# MAIN CONFIGURATION SETTINGS #
+######################################################################
+
+# Just for reference and scripts, on debian, the main binary is
+# installed as exim4
+exim_path = /usr/sbin/exim4
+
+# Macro defining the main configuration directory, we use no abolute
+# paths.
+CONFDIR = /etc/exim4
+
+# Macro defining the message size limit. This is not enabled by default
+# in CONFDIR/conf.d/acl/40_exim4-config_check_data
+MESSAGE_SIZE_LIMIT = 10M
+
+# Define a macro DC_minimaldns if dc_minimaldns=true, to use in
+# .ifdef-statements otherwise this expands to an empty line
+DEBCONFminimaldnsDEBCONF
+
+# The next three settings create two lists of domains and one list of hosts.
+# These lists are referred to later in this configuration using the syntax
+# +local_domains, +relay_to_domains, and +relay_from_hosts, respectively. They
+# are all colon-separated lists:
+
+# '@' refers to 'the name of the local host'
+
+### EXPANSION-begins ######################
+domainlist local_domains = DEBCONFlocal_domainsDEBCONF
+
+domainlist relay_to_domains = DEBCONFrelay_domainsDEBCONF
+
+hostlist relay_from_hosts = 127.0.0.1 : ::::1 : DEBCONFrelay_netsDEBCONF
+
+
+# Specify the domain you want to be added to all unqualified addresses
+# here. An unqualified address is one that does not contain an "@" character
+# followed by a domain. For example, "caesar@rome.example" is a fully qualified
+# address, but the string "caesar" (i.e. just a login name) is an unqualified
+# email address. Unqualified addresses are accepted only from local callers by
+# default. See the recipient_unqualified_hosts option if you want to permit
+# unqualified addresses from remote sources. If this option is not set, the
+# primary_hostname value is used for qualification.
+qualify_domain = DEBCONFvisiblenameDEBCONF
+
+# only used for satellite-system
+DCreadhost = DEBCONFreadhostDEBCONF
+
+#for satellite and smarthost-systems
+DCsmarthost = DEBCONFsmarthostDEBCONF
+
+# listen on all all interfaces?
+DEBCONFlistenonpublicDEBCONF
+### EXPANSION-ends ######################
+
+# The default delivery method. See CONFDIR/conf.d/transports/ for other
+# possibilities
+LOCAL_DELIVERY=mail_spool
+
+# The gecos field in /etc/passwd holds not only the name. see passwd(5).
+gecos_pattern = ^([^,:]*)
+gecos_name = $1
+
+
+# define a macro DCconfig_smarthost, DCconfig_satellite, etc. we need this
+# for .ifdef ... .endif
+DCconfig_DEBCONFconfigtypeDEBCONF = 1
diff --git a/debian/debconf/conf.d/main/02_exim4-config_options b/debian/debconf/conf.d/main/02_exim4-config_options
new file mode 100644
index 0000000..1a85e8e
--- /dev/null
+++ b/debian/debconf/conf.d/main/02_exim4-config_options
@@ -0,0 +1,103 @@
+
+### main/02_exim4-config_options
+#################################
+
+# This option defines the access control list that is run when an
+# SMTP RCPT command is received.
+#
+acl_smtp_rcpt = acl_check_rcpt
+
+# This option defines the access control list that is run when an
+# SMTP DATA command is received.
+#
+acl_smtp_data = acl_check_data
+
+# If you want unqualified recipient addresses to be qualified with a different
+# domain to unqualified sender addresses, specify the recipient domain here.
+# If this option is not set, the qualify_domain value is used.
+#
+# qualify_recipient =
+
+# The following line must be uncommented if you want Exim to recognize
+# addresses of the form "user@[10.11.12.13]" that is, with a "domain literal"
+# (an IP address) instead of a named domain. The RFCs still require this form,
+# but it makes little sense to permit mail to be sent to specific hosts by
+# their IP address in the modern Internet. This ancient format has been used
+# by those seeking to abuse hosts by using them for unwanted relaying. If you
+# really do want to support domain literals, uncomment the following line, and
+# see also the "domain_literal" router.
+#
+# allow_domain_literals
+
+.ifndef DC_minimaldns
+# The setting below causes Exim to do a reverse DNS lookup on all incoming
+# IP calls, in order to get the true host name. If you feel this is too
+# expensive, you can specify the networks for which a lookup is done, or
+# remove the setting entirely.
+#
+host_lookup = *
+.endif
+
+# The settings below, which are actually the same as the defaults in the
+# code, cause Exim to make RFC 1413 (ident) callbacks for all incoming SMTP
+# calls. You can limit the hosts to which these calls are made, and/or change
+# the timeout that is used. If you set the timeout to zero, all RFC 1413 calls
+# are disabled. RFC 1413 calls are cheap and can provide useful information
+# for tracing problem messages, but some hosts and firewalls have problems
+# with them. This can result in a timeout instead of an immediate refused
+# connection, leading to delays on starting up an SMTP session.
+#
+rfc1413_hosts = *
+rfc1413_query_timeout = 30s
+
+# By default, Exim expects all envelope addresses to be fully qualified, that
+# is, they must contain both a local part and a domain. If you want to accept
+# unqualified addresses (just a local part) from certain hosts, you can specify
+# these hosts by setting one or both of
+#
+# sender_unqualified_hosts =
+# recipient_unqualified_hosts =
+#
+# to control sender and recipient addresses, respectively. When this is done,
+# unqualified addresses are qualified using the settings of qualify_domain
+# and/or qualify_recipient (see above).
+
+# If you want Exim to support the "percent hack" for certain domains,
+# uncomment the following line and provide a list of domains. The "percent
+# hack" is the feature by which mail addressed to x%y@z (where z is one of
+# the domains listed) is locally rerouted to x@y and sent on. If z is not one
+# of the "percent hack" domains, x%y is treated as an ordinary local part. This
+# hack is rarely needed nowadays; you should not enable it unless you are sure
+# that you really need it.
+#
+# percent_hack_domains =
+
+# When Exim can neither deliver a message nor return it to sender, it "freezes"
+# the delivery error message (aka "bounce message"). There are also other
+# circumstances in which messages get frozen. They will stay on the queue for
+# ever unless one of the following options is set.
+
+# This option unfreezes frozen bounce messages after two days, tries
+# once more to deliver them, and ignores any delivery failures.
+#
+ignore_bounce_errors_after = 2d
+
+# This option cancels (removes) frozen messages that are older than a week.
+#
+timeout_frozen_after = 7d
+
+freeze_tell = postmaster
+
+# Only for interacting with other packages, to make it possible to use
+# -DSPOOLDIR to override it on the command line
+.ifndef SPOOLDIR
+SPOOLDIR = /var/spool/exim4
+.endif
+spool_directory = SPOOLDIR
+
+# uucp should be able to set envelope-from to arbitrary values
+trusted_users = uucp
+
+# uncomment this to get the Debian version in the SMTP dialog
+# smtp_banner = "${primary_hostname} ESMTP Exim ${version_number} (Debian package DEBCONFpackageversionDEBCONF) ${tod_full}"
+
diff --git a/debian/debconf/conf.d/main/03_exim4-config_tlsoptions b/debian/debconf/conf.d/main/03_exim4-config_tlsoptions
new file mode 100644
index 0000000..d462ff9
--- /dev/null
+++ b/debian/debconf/conf.d/main/03_exim4-config_tlsoptions
@@ -0,0 +1,46 @@
+# Example for TLS/SSL configuration.
+
+# See /usr/share/doc/exim4-base/README.TLS* for explanations.
+
+# Defines that you want to log what cipher your exim and the peer's mailer
+# uses to encrypt the transaction. It also defines you want to log the 'DN'
+# (Distinguished Name) of the certificate of the peer.
+#
+# log_selector = +tls_cipher +tls_peerdn
+
+# Defines what hosts to 'advertise' STARTTLS functionality to. Setting this
+# to * will advertise to all hosts that connect with EHLO, and this is a
+# good default
+#
+# tls_advertise_hosts = *
+
+# Defines where your SSL-certificate and SSL-Private Key are located.
+# This requires a full path. The files pointed to must be kept 'secret'
+# and should be owned my root.Debian-exim mode 640 (-rw-r-----). Usually the
+# exim-gencert script takes care of these prerequisites.
+#
+# tls_certificate = CONFDIR/exim.crt
+# tls_privatekey = CONFDIR/exim.key
+
+# A file which contains the certificates of the trusted CAs (Certification
+# Authorities) against which host certificates can be checked (through the
+# `tls_verify_hosts' and `tls_try_verify_hosts' lists below).
+# /etc/ssl/certs/ca-certificates.crt is generated by
+# the "ca-certificates" package's update-ca-certificates(8) command.
+#
+#tls_verify_certificates = /etc/ssl/certs/ca-certificates.crt
+
+# A list of hosts which are constrained by `tls_verify_certificates'. A host
+# that matches `tls_verify_host' must present a certificate that's
+# verifyable through `tls_verify_certificates' in order to be accepted as an
+# SMTP client. If it does not, the connection is aborted.
+#
+#tls_verify_hosts =
+
+# A weaker form of checking: if a client matches `tls_try_verify_hosts' (but
+# not `tls_verify_hosts'), request a certificate and check it against
+# `tls_verify_certificates' but do not abort the connection if there is no
+# certificate or if the certificate presented does not match. (This
+# condition can be tested for in ACLs through `verify = certificate')
+#
+#tls_try_verify_hosts = *
diff --git a/debian/debconf/conf.d/retry/00_exim4-config_header b/debian/debconf/conf.d/retry/00_exim4-config_header
new file mode 100644
index 0000000..e2bb4a4
--- /dev/null
+++ b/debian/debconf/conf.d/retry/00_exim4-config_header
@@ -0,0 +1,7 @@
+
+######################################################################
+# RETRY CONFIGURATION #
+######################################################################
+
+begin retry
+
diff --git a/debian/debconf/conf.d/retry/30_exim4-config b/debian/debconf/conf.d/retry/30_exim4-config
new file mode 100644
index 0000000..0ade295
--- /dev/null
+++ b/debian/debconf/conf.d/retry/30_exim4-config
@@ -0,0 +1,14 @@
+
+# This single retry rule applies to all domains and all errors. It specifies
+# retries every 15 minutes for 2 hours, then increasing retry intervals,
+# starting at 1 hour and increasing each time by a factor of 1.5, up to 16
+# hours, then retries every 6 hours until 4 days have passed since the first
+# failed delivery.
+
+# Domain Error Retries
+# ------ ----- -------
+
+* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
+
+
+
diff --git a/debian/debconf/conf.d/rewrite/00_exim4-config_header b/debian/debconf/conf.d/rewrite/00_exim4-config_header
new file mode 100644
index 0000000..a32db17
--- /dev/null
+++ b/debian/debconf/conf.d/rewrite/00_exim4-config_header
@@ -0,0 +1,7 @@
+
+######################################################################
+# REWRITE CONFIGURATION #
+######################################################################
+
+begin rewrite
+
diff --git a/debian/debconf/conf.d/rewrite/31_exim4-config_rewriting b/debian/debconf/conf.d/rewrite/31_exim4-config_rewriting
new file mode 100644
index 0000000..e5944dc
--- /dev/null
+++ b/debian/debconf/conf.d/rewrite/31_exim4-config_rewriting
@@ -0,0 +1,23 @@
+
+### rewrite/31_exim4-config_rewriting
+#################################
+
+# This rewriting rule is particularily useful for dialup users who
+# don't have their own domain, but could be useful for anyone.
+# It looks up the real address of all local users in a file
+*@+local_domains ${lookup{${local_part}}lsearch{/etc/email-addresses}\
+ {$value}fail} Ffrs
+
+# The same as above, using outdated /etc/exim4/email-addresses, please
+# move its contents to /etc/email-addresses and delete
+# /etc/exim4/email-addresses
+*@+local_domains "${if exists {CONFDIR/email-addresses}\
+ {${lookup{${local_part}}lsearch{CONFDIR/email-addresses}\
+ {$value}fail}}fail}" Ffrs
+
+
+
+# hide mailname for satellite system and masqerade as DCreadhost instead
+.ifdef DCconfig_satellite
+*@+local_domains ${local_part}@DCreadhost Ffr
+.endif
diff --git a/debian/debconf/conf.d/router/00_exim4-config_header b/debian/debconf/conf.d/router/00_exim4-config_header
new file mode 100644
index 0000000..531e21f
--- /dev/null
+++ b/debian/debconf/conf.d/router/00_exim4-config_header
@@ -0,0 +1,11 @@
+
+######################################################################
+# ROUTERS CONFIGURATION #
+# Specifies how addresses are handled #
+######################################################################
+# THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT! #
+# An address is passed to each router in turn until it is accepted. #
+######################################################################
+
+begin routers
+
diff --git a/debian/debconf/conf.d/router/100_exim4-config_domain_literal b/debian/debconf/conf.d/router/100_exim4-config_domain_literal
new file mode 100644
index 0000000..c07a354
--- /dev/null
+++ b/debian/debconf/conf.d/router/100_exim4-config_domain_literal
@@ -0,0 +1,16 @@
+
+# This router routes to remote hosts over SMTP by explicit IP address,
+# when an email address is given in "domain literal" form, for example,
+# <user@[192.168.35.64]>. The RFCs require this facility. However, it is
+# little-known these days, and has been exploited by evil people seeking
+# to abuse SMTP relays. Consequently it is commented out in the default
+# configuration. If you uncomment this router, you also need to uncomment
+# allow_domain_literals above, so that Exim can recognize the syntax of
+# domain literal addresses.
+
+# domain_literal:
+# debug_print = "R: domain_literal for $local_part@$domain"
+# driver = ipliteral
+# domains = ! +local_domains
+# transport = remote_smtp
+
diff --git a/debian/debconf/conf.d/router/200_exim4-config_primary b/debian/debconf/conf.d/router/200_exim4-config_primary
new file mode 100644
index 0000000..0a64829
--- /dev/null
+++ b/debian/debconf/conf.d/router/200_exim4-config_primary
@@ -0,0 +1,72 @@
+
+### router/200_exim4-config_primary
+#################################
+# This file holds the primary router, responsible for nonlocal mails
+
+.ifdef DCconfig_internet
+# configtype=internet
+#
+# deliver mail to the recipient if recipient domain is a domain we
+# relay for. We do not ignore any target hosts here since delivering to
+# a site local or even a link local address might be wanted here, and if
+# such an address has found its way into the MX record of such a domain,
+# the local admin is probably in a place where that broken MX record
+# could be fixed.
+
+dnslookup_relay_to_domains:
+ driver = dnslookup
+ domains = ! +local_domains : +relay_to_domains
+ transport = remote_smtp
+ same_domain_copy_routing = yes
+ no_more
+
+# deliver mail directly to the recipient. This router is only reached
+# for domains that we do not relay for. Since we most probably can't
+# have broken MX records pointing to site local or link local IP
+# addresses fixed, we ignore target hosts pointing to these addresses.
+
+dnslookup:
+ driver = dnslookup
+ domains = ! +local_domains
+ transport = remote_smtp
+ same_domain_copy_routing = yes
+ # ignore private rfc1918 and APIPA addresses
+ ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 : 192.168.0.0/16 :\
+ 172.16.0.0/12 : 10.0.0.0/8 : 169.254.0.0/16
+ no_more
+
+.endif
+
+
+.ifdef DCconfig_local
+# configtype=local
+#
+# Stand-alone system, so generate an error for mail to a non-local domain
+nonlocal:
+ driver = redirect
+ allow_fail
+ data = :fail: Mailing to remote domains not supported
+ no_more
+ domains = ! +local_domains
+
+.endif
+
+
+.ifdef DCconfig_smarthost DCconfig_satellite
+# configtype=smarthost or configtype=satellite
+#
+# Send all non-local mail to a single other machine (smarthost).
+smarthost:
+ driver = manualroute
+ domains = ! +local_domains
+ transport = remote_smtp
+ route_list = * DCsmarthost
+ host_find_failed = defer
+ same_domain_copy_routing = yes
+ no_more
+
+.endif
+
+
+# The "no_more" above means that all later routers are for
+# domains in the local_domains list, i.e. just like Exim 3 directors.
diff --git a/debian/debconf/conf.d/router/300_exim4-config_real_local b/debian/debconf/conf.d/router/300_exim4-config_real_local
new file mode 100644
index 0000000..1703d7d
--- /dev/null
+++ b/debian/debconf/conf.d/router/300_exim4-config_real_local
@@ -0,0 +1,9 @@
+
+real_local:
+ debug_print = "R: real_local for $local_part@$domain"
+ driver = accept
+ domains = +local_domains
+ local_part_prefix = real-
+ check_local_user
+ transport = LOCAL_DELIVERY
+
diff --git a/debian/debconf/conf.d/router/400_exim4-config_system_aliases b/debian/debconf/conf.d/router/400_exim4-config_system_aliases
new file mode 100644
index 0000000..c663570
--- /dev/null
+++ b/debian/debconf/conf.d/router/400_exim4-config_system_aliases
@@ -0,0 +1,29 @@
+
+# This router handles aliasing using a traditional /etc/aliases file.
+#
+##### NB You must ensure that /etc/aliases exists. It used to be the case
+##### NB that every Unix had that file, because it was the Sendmail default.
+##### NB These days, there are systems that don't have it. Your aliases
+##### NB file should at least contain an alias for "postmaster".
+#
+# Piping to programs in /etc/aliases is disabled per default.
+# If that is a problem for you, see
+# /usr/share/doc/exim4-config/README.system_aliases
+# or explanation and some workarounds.
+#
+# Note that the transports listed below are the same as are used for
+# .forward files; you might want to set up different ones for pipe and
+# file deliveries from aliases.
+
+system_aliases:
+ debug_print = "R: system_aliases for $local_part@$domain"
+ driver = redirect
+ domains = +local_domains
+ allow_fail
+ allow_defer
+ data = ${lookup{$local_part}lsearch{/etc/aliases}}
+# user = list
+# group = mail
+ file_transport = address_file
+# pipe_transport = address_pipe
+# directory_transport = address_directory
diff --git a/debian/debconf/conf.d/router/500_exim4-config_hubuser b/debian/debconf/conf.d/router/500_exim4-config_hubuser
new file mode 100644
index 0000000..1e2a179
--- /dev/null
+++ b/debian/debconf/conf.d/router/500_exim4-config_hubuser
@@ -0,0 +1,19 @@
+
+### router/500_exim4-config_hubuser
+#################################
+
+.ifdef DCconfig_satellite
+# This router is only used for configtype=satellite.
+# It takes care to route all mail targetted to <somelocaluser@this.machine>
+# to the host where we read our mail
+#
+hub_user:
+ debug_print = "R: hub_user for $local_part@$domain"
+ driver = redirect
+ domains = +local_domains
+ data = ${local_part}@DCreadhost
+ check_local_user
+
+.endif
+
+
diff --git a/debian/debconf/conf.d/router/600_exim4-config_userforward b/debian/debconf/conf.d/router/600_exim4-config_userforward
new file mode 100644
index 0000000..2b71cc0
--- /dev/null
+++ b/debian/debconf/conf.d/router/600_exim4-config_userforward
@@ -0,0 +1,48 @@
+
+# router/600_exim4-config_userforward
+#################################
+
+# This router handles forwarding using traditional .forward files in users'
+# home directories and filtering with exim's builtin filter language.
+#
+# The no_verify setting means that this router is skipped when Exim is
+# verifying addresses. Similarly, no_expn means that this router is skipped if
+# Exim is processing an EXPN command.
+#
+# The check_ancestor option means that if the forward file generates an
+# address that is an ancestor of the current one, the current one gets
+# passed on instead. This covers the case where A is aliased to B and B
+# has a .forward file pointing to A.
+#
+# The four transports specified at the end are those that are used when
+# forwarding generates a direct delivery to a directory, or a file, or to a
+# pipe, or sets up an auto-reply, respectively.
+#
+userforward:
+ debug_print = "R: userforward for $local_part@$domain"
+ driver = redirect
+ domains = +local_domains
+ check_local_user
+ file = $home/.forward
+ no_verify
+ no_expn
+ check_ancestor
+ allow_filter
+ directory_transport = address_directory
+ file_transport = address_file
+ pipe_transport = address_pipe
+ reply_transport = address_reply
+ skip_syntax_errors
+ syntax_errors_to = real-$local_part@$domain
+ syntax_errors_text = \
+ This is an automatically generated message. An error has\n\
+ been found in your .forward file. Details of the error are\n\
+ reported below. While this error persists, you will receive\n\
+ a copy of this message for every message that is addressed\n\
+ to you. If your .forward file is a filter file, or if it is\n\
+ a non-filter file containing no valid forwarding addresses,\n\
+ a copy of each incoming message will be put in your normal\n\
+ mailbox. If a non-filter file contains at least one valid\n\
+ forwarding address, forwarding to the valid addresses will\n\
+ happen, and those will be the only deliveries that occur.
+
diff --git a/debian/debconf/conf.d/router/700_exim4-config_procmail b/debian/debconf/conf.d/router/700_exim4-config_procmail
new file mode 100644
index 0000000..8c829c5
--- /dev/null
+++ b/debian/debconf/conf.d/router/700_exim4-config_procmail
@@ -0,0 +1,11 @@
+
+procmail:
+ debug_print = "R: procmail for $local_part@$domain"
+ driver = accept
+ domains = +local_domains
+ check_local_user
+ transport = procmail_pipe
+ require_files = ${local_part}:${home}/.procmailrc:+/usr/bin/procmail
+ no_verify
+ no_expn
+
diff --git a/debian/debconf/conf.d/router/800_exim4-config_maildrop b/debian/debconf/conf.d/router/800_exim4-config_maildrop
new file mode 100644
index 0000000..0c57fc6
--- /dev/null
+++ b/debian/debconf/conf.d/router/800_exim4-config_maildrop
@@ -0,0 +1,14 @@
+
+### router/800_exim4-config_maildrop
+#################################
+
+maildrop:
+ debug_print = "R: maildrop for $local_part@$domain"
+ driver = accept
+ domains = +local_domains
+ check_local_user
+ transport = maildrop_pipe
+ require_files = ${local_part}:${home}/.mailfilter:+/usr/bin/maildrop
+ no_verify
+ no_expn
+
diff --git a/debian/debconf/conf.d/router/900_exim4-config_local_user b/debian/debconf/conf.d/router/900_exim4-config_local_user
new file mode 100644
index 0000000..52e1897
--- /dev/null
+++ b/debian/debconf/conf.d/router/900_exim4-config_local_user
@@ -0,0 +1,14 @@
+
+### router/900_exim4-config_local_user
+#################################
+
+local_user:
+ debug_print = "R: local_user for $local_part@$domain"
+ driver = accept
+ domains = +local_domains
+ check_local_user
+ local_parts = ! root
+ transport = LOCAL_DELIVERY
+
+
+
diff --git a/debian/debconf/conf.d/router/mmm_mail4root b/debian/debconf/conf.d/router/mmm_mail4root
new file mode 100644
index 0000000..88017ba
--- /dev/null
+++ b/debian/debconf/conf.d/router/mmm_mail4root
@@ -0,0 +1,17 @@
+
+### router/mmm_mail4root
+#################################
+# deliver mail addressed to root to /var/mail/mail as user mail:mail
+# if it was not redirected in /etc/aliases or by other means
+# Exim cannot deliver as root since 4.24 (FIXED_NEVER_USERS)
+
+mail4root:
+ debug_print = "R: mail4root for $local_part@$domain"
+ driver = redirect
+ domains = +local_domains
+ data = /var/mail/mail
+ file_transport = address_file
+ local_parts = root
+ user = mail
+ group = mail
+
diff --git a/debian/debconf/conf.d/transport/00_exim4-config_header b/debian/debconf/conf.d/transport/00_exim4-config_header
new file mode 100644
index 0000000..48e45da
--- /dev/null
+++ b/debian/debconf/conf.d/transport/00_exim4-config_header
@@ -0,0 +1,13 @@
+
+######################################################################
+# TRANSPORTS CONFIGURATION #
+######################################################################
+# ORDER DOES NOT MATTER #
+# Only one appropriate transport is called for each delivery. #
+######################################################################
+
+# A transport is used only when referenced from a router that successfully
+# handles an address.
+
+begin transports
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_address_file b/debian/debconf/conf.d/transport/30_exim4-config_address_file
new file mode 100644
index 0000000..82b55e2
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_address_file
@@ -0,0 +1,11 @@
+
+# This transport is used for handling deliveries directly to files that are
+# generated by aliasing or forwarding.
+#
+address_file:
+ debug_print = "T: address_file for $local_part@$domain"
+ driver = appendfile
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_address_pipe b/debian/debconf/conf.d/transport/30_exim4-config_address_pipe
new file mode 100644
index 0000000..cb01c37
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_address_pipe
@@ -0,0 +1,12 @@
+
+# This transport is used for handling pipe deliveries generated by alias or
+# .forward files. If the commands fails and produces any output on standard
+# output or standard error streams, the output is returned to the sender
+# of the message as a delivery error.
+# You can set different transports for aliases and forwards if you want to
+# - see the references to address_pipe in the routers section above.
+address_pipe:
+ debug_print = "T: address_pipe for $local_part@$domain"
+ driver = pipe
+ return_fail_output
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_address_reply b/debian/debconf/conf.d/transport/30_exim4-config_address_reply
new file mode 100644
index 0000000..b2b8862
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_address_reply
@@ -0,0 +1,8 @@
+
+# This transport is used for handling autoreplies generated by the filtering
+# option of the userforward router.
+#
+address_reply:
+ debug_print = "T: autoreply for $local_part@$domain"
+ driver = autoreply
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_mail_spool b/debian/debconf/conf.d/transport/30_exim4-config_mail_spool
new file mode 100644
index 0000000..21dfae4
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_mail_spool
@@ -0,0 +1,17 @@
+
+### transport/30_exim4-config_mail_spool
+
+# This transport is used for local delivery to user mailboxes in traditional
+# BSD mailbox format.
+#
+mail_spool:
+ debug_print = "T: appendfile for $local_part@$domain"
+ driver = appendfile
+ file = /var/mail/$local_part
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+ group = mail
+ mode = 0660
+ mode_fail_narrower = false
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_maildir_home b/debian/debconf/conf.d/transport/30_exim4-config_maildir_home
new file mode 100644
index 0000000..3d25c30
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_maildir_home
@@ -0,0 +1,17 @@
+
+### transport/30_exim4-config_maildir_home
+
+# Use this instead of mail_spool if you want to to deliver to Maildir in
+# home-directory - change the definition of LOCAL_DELIVERY
+#
+maildir_home:
+ debug_print = "T: maildir_home for $local_part@$domain"
+ driver = appendfile
+ directory = $home/Maildir
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+ maildir_format
+ mode = 0600
+ mode_fail_narrower = false
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_maildrop_pipe b/debian/debconf/conf.d/transport/30_exim4-config_maildrop_pipe
new file mode 100644
index 0000000..0ba27bc
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_maildrop_pipe
@@ -0,0 +1,10 @@
+
+maildrop_pipe:
+ debug_print = "T: maildrop_pipe for $local_part@$domain"
+ driver = pipe
+ path = "/bin:/usr/bin:/usr/local/bin"
+ command = "/usr/bin/maildrop"
+ return_path_add
+ delivery_date_add
+ envelope_to_add
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_procmail_pipe b/debian/debconf/conf.d/transport/30_exim4-config_procmail_pipe
new file mode 100644
index 0000000..5fb03ff
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_procmail_pipe
@@ -0,0 +1,10 @@
+
+procmail_pipe:
+ debug_print = "T: procmail_pipe for $local_part@$domain"
+ driver = pipe
+ path = "/bin:/usr/bin:/usr/local/bin"
+ command = "/usr/bin/procmail"
+ return_path_add
+ delivery_date_add
+ envelope_to_add
+
diff --git a/debian/debconf/conf.d/transport/30_exim4-config_remote_smtp b/debian/debconf/conf.d/transport/30_exim4-config_remote_smtp
new file mode 100644
index 0000000..62ab68e
--- /dev/null
+++ b/debian/debconf/conf.d/transport/30_exim4-config_remote_smtp
@@ -0,0 +1,14 @@
+
+### transport/30_exim4-config_remote_smtp
+#################################
+# This transport is used for delivering messages over SMTP connections.
+remote_smtp:
+ debug_print = "T: remote_smtp for $local_part@$domain"
+ driver = smtp
+# hosts_try_auth = DCsmarthost
+
+# To use SMTP AUTH when sending to your smarthost, uncomment the above line,
+# "hosts_try_auth = DCsmarthost" and add the necessary information (password,
+# etc.) to the passwd.client file.
+# /usr/share/doc/exim4-base/README.SMTP-AUTH
+
diff --git a/debian/debconf/conf.d/transport/35_exim4-config_address_directory b/debian/debconf/conf.d/transport/35_exim4-config_address_directory
new file mode 100644
index 0000000..94541a4
--- /dev/null
+++ b/debian/debconf/conf.d/transport/35_exim4-config_address_directory
@@ -0,0 +1,13 @@
+# This transport is used for handling file addresses generated by alias
+# or .forward files if the path ends in "/", which causes it to be treated
+# as a directory name rather than a file name.
+
+address_directory:
+ debug_print = "T: address_directory for $local_part@$domain"
+ driver = appendfile
+ envelope_to_add = true
+ return_path_add = true
+ check_string = ""
+ escape_string = ""
+ maildir_format
+
diff --git a/debian/debconf/default_acl b/debian/debconf/default_acl
new file mode 100644
index 0000000..452615c
--- /dev/null
+++ b/debian/debconf/default_acl
@@ -0,0 +1,48 @@
+Access Control in the default configuration
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+The Debian exim 4 package comes with a default configuration that
+allows flexible access control and blacklisting of sites and hosts.
+The acls involved can be found in /etc/exim4/conf.d/acl with the file
+names 20_exim4-config_whitelist_local_deny and 30_exim4-config_check_rcpt,
+thus all rejections of messages due to this mechanism happen at RCPT
+time. Local configuration of the mechanisms happen through data files
+in /etc/exim4, so there is normally no need to change the files in the
+acl subdirectory.
+
+/etc/exim4/local_sender_blacklist contains a list of envelope senders
+whose messages will be denied with the error message "locally
+blacklisted". This is a full exim 4 address list, and all available
+features can be used. This includes negative items, and so it is
+possible to exclude addresses from being blacklisted. For convenience,
+as an additional method to whitelist addresses from being blocked, an
+explicit whitelist is read in from /etc/exim4/local_sender_whitelist.
+Entries in the whitelist override corresponding blacklist entries.
+
+In the blacklist, the trick is to read a line break as "or" if it
+follows a positive item, and as "and" if it follows a negative item.
+
+For example, a /etc/exim4/local_sender_blacklist
+
+domain1.example
+!local@domain2.example
+domain2.example
+domain3.example
+
+Exim just evaluates left to right (or up-down in the file listing
+context), so you don't get the same kind of operator binding as in a
+programming language.
+
+/etc/exim4/local_host_blacklist contains a list of IP addresses,
+networks and host names whose messages will be denied with the error
+message "locally blacklisted". This is a full exim 4 host list. Again,
+negative items can be used here, and there is also an explicit
+whitelist read in from /etc/exim4/local_host_whitelist, and whitelist
+entries override blacklistings.
+
+The example access list shipped in
+/usr/share/doc/exim4-config/examples/acl/30_exim4-config_example_check_rcpt
+includes a bunch of dnslists configured to warn and/or deny incoming
+messages. Some of these lists have a corresponding whitelist, read
+in from /etc/exim4/local_$DNSLISTNAME_whitelist which allows the local
+administrator to override dnslist entries for domains or IP addresses
+that should be able to send mail despite the dnslist entry.
diff --git a/debian/debconf/update-exim4.conf b/debian/debconf/update-exim4.conf
new file mode 100644
index 0000000..2399388
--- /dev/null
+++ b/debian/debconf/update-exim4.conf
@@ -0,0 +1,360 @@
+#!/bin/sh
+# update-exim4.conf(8) - Generate /var/lib/exim4/config.autogenerated
+
+
+UPEX4C_confdir="/etc/exim4"
+UPEX4C_sections="main acl router transport retry rewrite auth"
+EXIM="/usr/sbin/exim4"
+
+UPEX4C_verbose=no
+UPEX4C_comments=no
+UPEX4C_autoconfigfile=/var/lib/exim4/config.autogenerated
+UPEX4C_outputfile="${UPEX4C_autoconfigfile}"
+UPEX4C_version=""
+
+usage() {
+cat <<EOF
+$0 - Generate exim4 configuration files
+ Options:
+ -v|--verbose - Enable verbose mode, tell about ignored files
+ -h|--help - Show this message
+ --keepcomments - Do not remove comment lines
+ --removecomments - Remove comment lines
+ -o|--output file - write output to file instead of ${UPEX4C_outputfile}
+ -d|--confdir directory - read input from given directory instead of ${UPEX4C_confdir}
+EOF
+}
+
+## Parse commandline
+TEMP=$(getopt -n update-exim4.conf \
+ -l keepcomments,removecomments,output:,confdir:,help,verbose -- \
+ +o:d:vh "$@")
+
+if test "$?" != 0; then
+ echo "Terminating..." >&2
+ exit 1
+fi
+
+eval set -- ${TEMP}
+while test "$1" != "--"; do
+ case $1 in
+ -h|--help)
+ usage
+ exit 0
+ ;;
+ -v|--verbose)
+ UPEX4C_verbose=yes
+ ;;
+ --keepcomments)
+ UPEX4C_comments=yes
+ ;;
+ --removecomments)
+ UPEX4C_comments=no
+ ;;
+ -o|--output)
+ shift
+ UPEX4C_outputfile="$1"
+ ;;
+ -d|--confdir)
+ shift
+ UPEX4C_confdir="$1"
+ ;;
+ esac
+ shift
+done
+shift
+
+# No non-option arguments allowed.
+if [ "$#" -ne 0 ]; then
+ echo "No non option arguments ($@) allowed" >&2
+ usage >&2
+ exit 1
+fi
+
+# exit immediately if /etc/exim4/exim4.conf exists and -o was not specified
+if [ -e /etc/exim4/exim4.conf ] && \
+ [ "x${UPEX4C_outputfile}" = "x${UPEX4C_autoconfigfile}" ] ; then
+ exit 0
+fi
+
+
+UPEX4C_confd=$UPEX4C_confdir/conf.d
+
+[ -d ${UPEX4C_confd} ] || \
+{ printf "$0: Error, no ${UPEX4C_confd}, exiting.\n" 1>&2 ; exit 1 ; }
+
+[ -d `dirname $UPEX4C_outputfile` ] || \
+{ printf "$0: Error, missing `dirname $UPEX4C_outputfile`, exiting.\n" 1>&2 ; exit 1 ; }
+
+. $UPEX4C_confdir/update-exim4.conf.conf || \
+{ printf "$0: Error, no $UPEX4C_confdir/update-exim4.conf.conf, exiting.\n" 1>&2 ; exit 1 ; }
+
+[ "x${CFILEMODE}" = "x" ] && CFILEMODE=644
+[ "x${dc_use_split_config}" = "x" ] && dc_use_split_config='false'
+
+mailname=`cat /etc/mailname | head -n 1`
+
+# add localhost and mailname, get rid of spaces and trailing colons
+local_domains="`echo ${mailname}:localhost:${dc_other_hostnames} | \
+ sed -e 's[: ]*$' -e 's *'`"
+
+TEMPLATEFILE=${UPEX4C_confdir}/exim4.conf.template
+
+UPEX4C_internal_tmp=`tempfile -m600 -p ex4`
+
+trap "rm -f ${UPEX4C_internal_tmp}" 0 2 15
+
+# test if $1 is user modified, print message
+unmodifandmessage() {
+ [ "$#" -eq 1 ] || return 1
+ if unmodified "$1" ; then
+ return 0
+ else
+ [ "${UPEX4C_verbose}" = "yes" ] && \
+ echo "ignoring user modified file $1"
+ return 1
+ fi
+}
+
+# 0123456789abcdef0123456789abcdef
+
+
+
+# use this as template for new gen_something functions.
+UPEX4C_skeleton() {
+ UPEX4C_internal_currfile="${UPEX4C_confd}/foo/bar"
+ unmodifandmessage "${UPEX4C_internal_currfile}" || return
+ cat << EOF > "${UPEX4C_internal_tmp}"
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+# This is an md5sum.
+#######################################
+# WARNING WARNING WARNING WARNING
+# This file is dynamically generated by update-exim4.conf(8) using the data
+# in /etc/exim4/update-exim4.conf.conf.
+EOF
+# insert more code that appends to ${UPEX4C_internal_tmp}
+ UPEX4C_internal_md5=`cat "${UPEX4C_internal_tmp}" | md5sum | cut -d\ -f1`
+ { echo "# ${UPEX4C_internal_md5}" ; cat "${UPEX4C_internal_tmp}" ; } > \
+ "${UPEX4C_internal_currfile}"
+}
+
+# run-parts emulation, stolen from Branden's /etc/X11/Xsession
+# Addition: Use file.rul instead if file if it exists.
+run_parts () {
+ # reset LC_COLLATE
+ unset LANG LC_COLLATE LC_ALL
+
+ if [ -z "$1" ]; then
+ errormessage "$0: internal run_parts called without an argument"
+ fi
+ if [ ! -d "$1" ]; then
+ errormessage "$0: internal run_parts called, but $1 does not exist or is not a directory."
+ fi
+ for F in $(ls $1); do
+ if expr "$F" : '[[:alnum:]_-]\+$' > /dev/null 2>&1; then
+ if [ -f "$1/$F" ] ; then
+ if [ -f "$1/${F}.rul" ] ; then
+ echo "$1/${F}.rul"
+ else
+ echo "$1/$F"
+ fi
+ fi
+ fi
+ done;
+}
+# also from Branden
+errormessage () {
+ # pretty-print messages of arbitrary length (no trailing newline)
+ echo "$*" | fold -s -w ${COLUMNS:-80} >&2;
+}
+
+cat_parts() {
+ if [ -z "$1" ]; then
+ errormessage "$0: internal cat_parts called without an argument"
+ fi
+ if [ ! -d "$1" ]; then
+ errormessage "$0: internal cat_parts called, but $1 does not exist or is not a directory."
+ fi
+ for file in `run_parts $1`; do
+ echo "#####################################################"
+ echo "### $file"
+ echo "#####################################################"
+ cat $file
+ echo "#####################################################"
+ echo "### end $file"
+ echo "#####################################################"
+ done
+}
+
+# check whether the file given as argument was modified by the user
+# by comparing the md5sum in the first line with the real one.
+unmodified() {
+ [ "$#" -eq 1 ] || return 1
+ [ -f "$1" ] || return 1
+ # first line, without the leading '# '.
+ checksum_current=`sed -n -e '1s/^# //' -e '1p;1q' "$1"`
+
+ # md5sum over the rest of the file.
+ # some versions of md5sum produce
+ # '68b329da9893e34099c7d8ad5cb9c940 -' others don't add the dash.
+ # '68b329da9893e34099c7d8ad5cb9c940'
+ checksum_new=`sed -n '2,$p' "$1" | md5sum | cut -d\ -f1`
+
+ if [ "${checksum_current}" = "${checksum_new}" ] ; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+# update the md5sum given in the first line, return an error if the file does
+# not have an md5sum header in the first line.
+updatechecksumheader() {
+ [ "$#" -eq 1 ] || return 1
+ [ -f "$1" ] || return 1
+ # check for correct format "# 76a51391da4a0687697224a124b71a17"
+ sed -n -e '1p;1q' "$1" | grep -q -E '^# [[:xdigit:]]{32}$' || \
+ { echo "incorrect format" ; return 1 ;}
+
+ NEWFILE=`tempfile -m600 -p ex4`
+ sed -n '2,$p' "$1" | md5sum | cut -d\ -f1 | sed '1s/^/# /' > $NEWFILE
+ sed -n '2,$p' "$1" >> $NEWFILE
+ mv -f $NEWFILE "$1"
+}
+
+gentmpconf() {
+ touch ${UPEX4C_outputfile}.tmp
+ #chown --reference=${TEMPLATEFILE} \
+ # ${UPEX4C_outputfile}.tmp ${UPEX4C_outputfile}
+ #chmod --reference=${TEMPLATEFILE} \
+ # ${UPEX4C_outputfile}.tmp ${UPEX4C_outputfile}
+ if [ "`id -u`" = "0" ]; then
+ chown root:Debian-exim ${UPEX4C_outputfile}.tmp
+ [ -e ${UPEX4C_outputfile} ] && \
+ chown root:Debian-exim ${UPEX4C_outputfile}
+ fi
+ chmod 640 ${UPEX4C_outputfile}.tmp
+ [ -e ${UPEX4C_outputfile} ] && chmod 640 ${UPEX4C_outputfile}
+}
+
+removecomments(){
+ if [ "x${UPEX4C_comments}" = "xno" ] ; then
+ egrep -v '^[[:space:]]*#' | sed -e '/^$/N;/\n$/D' ;
+ else
+ cat
+ fi
+}
+
+case "$dc_eximconfig_configtype" in
+ satellite)
+ ;;
+ local)
+ ;;
+ smarthost|internet)
+ ;;
+ none|*)
+ gentmpconf
+ for i in ${UPEX4C_sections} ; do
+ cat_parts ${UPEX4C_confd}/$i
+ done | \
+ removecomments \
+ sed -e "s/DEBCONF[^D][^E][^B].*DEBCONF//g" \
+ > ${UPEX4C_outputfile}.tmp
+ mv -f ${UPEX4C_outputfile}.tmp ${UPEX4C_outputfile}
+ chmod ${CFILEMODE} ${UPEX4C_outputfile}
+ [ "${UPEX4C_verbose}" = "yes" ] && \
+ echo "Not substituting variables since conftype is none (or other)"
+ exit 0
+ ;;
+esac
+
+if [ "x${dc_local_interfaces}" = "x" ] ; then
+ listenonpublic='# if local_interfaces is unset, we listen on all interfaces'
+else
+ listenonpublic="local_interfaces = ${dc_local_interfaces}"
+fi
+
+if [ "x${dc_minimaldns}" = "xtrue" ] ; then
+ UPEX4C_minimaldns='DC_minimaldns = 1'
+else
+ UPEX4C_minimaldns=''
+fi
+
+gentmpconf
+
+cat << EOF > ${UPEX4C_outputfile}.tmp
+#########
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# this file is generated dynamically from the files in
+# CONFDIR/conf.d/ or /etc/exim4/exim4.conf.template respectively and
+# /etc/exim4/update-exim4.conf.conf
+# Any changes you make here will be lost.
+# See /usr/share/doc/exim4-base/README.Debian.gz and update-exim4.conf(8)
+# for instructions of customization.
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+#########
+EOF
+
+case "${dc_use_split_config}" in
+true)
+ for i in ${UPEX4C_sections} ; do
+ echo "# begin processing $i #####"
+ cat_parts ${UPEX4C_confd}/$i
+ echo "# end of $i #####"
+ done | \
+ sed -e "sDEBCONFlocal_domainsDEBCONF@:${local_domains}g" \
+ -e "sDEBCONFrelay_domainsDEBCONF${dc_relay_domains}g" \
+ -e "sDEBCONFrelay_netsDEBCONF${dc_relay_nets}g" \
+ -e "sDEBCONFvisiblenameDEBCONF${mailname}g" \
+ -e "sDEBCONFreadhostDEBCONF${dc_readhost}g" \
+ -e "sDEBCONFsmarthostDEBCONF${dc_smarthost}g" \
+ -e "sDEBCONFconfigtypeDEBCONF${dc_eximconfig_configtype}g" \
+ -e "sDEBCONFlistenonpublicDEBCONF${listenonpublic}g" \
+ -e "sDEBCONFpackageversionDEBCONF${UPEX4C_version}g" \
+ -e "sDEBCONFminimaldnsDEBCONF${UPEX4C_minimaldns}g" \
+ -e "sDEBCONFnever_usersDEBCONFg" \
+ | removecomments \
+ >> ${UPEX4C_outputfile}.tmp
+;;
+false)
+ if [ ! -r /etc/exim4/exim4.conf.template ] ; then
+ echo "Error: Unsplit config selected and /etc/exim4/exim4.conf.template missing ... exiting" 1>&2
+ exit 1
+ fi
+ sed -e "sDEBCONFlocal_domainsDEBCONF@:${local_domains}g" \
+ -e "sDEBCONFrelay_domainsDEBCONF${dc_relay_domains}g" \
+ -e "sDEBCONFrelay_netsDEBCONF${dc_relay_nets}g" \
+ -e "sDEBCONFvisiblenameDEBCONF${mailname}g" \
+ -e "sDEBCONFreadhostDEBCONF${dc_readhost}g" \
+ -e "sDEBCONFsmarthostDEBCONF${dc_smarthost}g" \
+ -e "sDEBCONFconfigtypeDEBCONF${dc_eximconfig_configtype}g" \
+ -e "sDEBCONFlistenonpublicDEBCONF${listenonpublic}g" \
+ -e "sDEBCONFpackageversionDEBCONF${UPEX4C_version}g" \
+ -e "sDEBCONFminimaldnsDEBCONF${UPEX4C_minimaldns}g" \
+ -e "sDEBCONFnever_usersDEBCONFg" \
+ < /etc/exim4/exim4.conf.template \
+ | removecomments \
+ >> ${UPEX4C_outputfile}.tmp
+;;
+esac
+
+# test validity if called without -o
+if [ "x${UPEX4C_outputfile}" = "x${UPEX4C_autoconfigfile}" ] && \
+ [ -x ${EXIM} ] ; then
+ if ! ${EXIM} -C "${UPEX4C_outputfile}.tmp" -bV > /dev/null ; then
+ errormessage "Invalid new configfile ${UPEX4C_outputfile}.tmp"
+ errormessage "not installing ${UPEX4C_outputfile}.tmp to ${UPEX4C_outputfile}"
+ exit 1
+ fi
+fi
+
+mv -f ${UPEX4C_outputfile}.tmp ${UPEX4C_outputfile}
+chmod ${CFILEMODE} ${UPEX4C_outputfile}
diff --git a/debian/email-addresses b/debian/email-addresses
new file mode 100644
index 0000000..8e4f2cb
--- /dev/null
+++ b/debian/email-addresses
@@ -0,0 +1,9 @@
+# This is /etc/email-addresses. It is part of the exim package
+#
+# This file contains email addresses to use for outgoing mail. Any local
+# part not in here will be qualified by the system domain as normal.
+#
+# It should contain lines of the form:
+#
+#user: someone@isp.com
+#otheruser: someoneelse@anotherisp.com
diff --git a/debian/exim-gencert b/debian/exim-gencert
new file mode 100644
index 0000000..afcc59b
--- /dev/null
+++ b/debian/exim-gencert
@@ -0,0 +1,76 @@
+#!/bin/sh -e
+
+[ -n "$EX4DEBUG" ] && set -x
+
+DIR=/etc/exim4
+CERT=$DIR/exim.crt
+KEY=$DIR/exim.key
+
+# This exim binary was built with GnuTLS which does not support dhparams
+# from a file. See /usr/share/doc/exim4-base/README.TLS*
+#DH=$DIR/exim.dhparam
+
+if ! which openssl > /dev/null ;then
+ echo "$0: openssl is not installed, exiting" 1>&2
+ exit 1
+fi
+
+# valid for three years
+DAYS=1095
+
+if [ "$1" != "--force" -a -f $CERT -a -f $KEY ]; then
+ echo "[*] $CERT and $KEY exists!"
+ echo " Use \"$0 --force\" to force generation!"
+ exit 0
+fi
+
+if [ "$1" = "--force" ]; then
+ shift
+fi
+
+#SSLEAY=/tmp/exim.ssleay.$$.cnf
+SSLEAY=`tempfile -m600 -pexi`
+
+cat > $SSLEAY <<EOM
+RANDFILE = ~/.rnd
+[ req ]
+default_bits = 1024
+default_keyfile = exim.key
+distinguished_name = req_distinguished_name
+[ req_distinguished_name ]
+countryName = Country Code (2 letters)
+countryName_default = US
+countryName_min = 2
+countryName_max = 2
+stateOrProvinceName = State or Province Name (full name)
+stateOrProvinceName_default = Some-State
+localityName = Locality Name (eg, city)
+organizationName = Organization Name (eg, company; recommended)
+organizationName_max = 64
+organizationalUnitName = Organizational Unit Name (eg, section)
+organizationalUnitName_max = 64
+commonName = Server name (eg. ssl.domain.tld; required!!!)
+commonName_max = 64
+emailAddress = Email Address
+emailAddress_max = 40
+EOM
+
+echo "[*] Creating a self signed SSL certificate for Exim!"
+echo " This may be sufficient to establish encrypted connections but for"
+echo " secure identification you need to buy a real certificate!"
+echo " "
+echo " Please enter the hostname of your MTA at the Common Name (CN) prompt!"
+echo " "
+
+openssl req -config $SSLEAY -x509 -newkey rsa:1024 -keyout $KEY -out $CERT -days $DAYS -nodes
+#see README.TLS*# openssl dhparam -check -text -5 512 -out $DH
+rm -f $SSLEAY
+
+chown root:Debian-exim $KEY $CERT $DH
+chmod 640 $KEY $CERT $DH
+
+echo "[*] Done generating self signed certificates for exim!"
+echo " Refer to the documentation and example configuration files"
+echo " over at /usr/share/doc/exim4-base/ for an idea on how to enable TLS"
+echo " support in your mail transfer agent."
+
diff --git a/debian/exim4-base.NEWS b/debian/exim4-base.NEWS
new file mode 100644
index 0000000..b54a5d3
--- /dev/null
+++ b/debian/exim4-base.NEWS
@@ -0,0 +1,43 @@
+exim4 (4.30-1) unstable; urgency=low
+
+ * Exim now runs under its own uid (Debian-exim) instead of using mail:mail.
+
+ WARNING: You cannot downgrade this version to an older one without
+ manual chown|chrgrp all files owned by Debian-exim to mail.
+
+ Securitywise this is a tradeoff:
+ - if exim is SUID root and runs without deliver_drop_privilege you win:
+ exim's internal data in /var/spool/exim4 is not open to attacks by
+ bugs in programs SGID mail (mail delivery agents like deliver or
+ procmail, or MUAs like pine) anymore. This is Debians default setup.
+ - OTOH if you need to be able to make local deliveries to /var/mail and
+ want to run exim with reduced priviledge you have some additional work
+ to do:
+ * Use an SGID MDA for the actual delivery (I suggest maildrop.)
+ * Make changes to run exim4 under group mail:
+ - exim_group=mail.
+ - Hack: make Debian-exim a group with gid=8, i.e. an alias for
+ the mail group, _before_ you make the upgrade. (groupadd -o -g 8
+ Debian-exim)
+
+ -- Andreas Metzler <ametzler@debian.org> Sun, 7 Dec 2003 13:59:46 +0100
+
+exim4 (4.24-1) unstable; urgency=low
+
+ * This version of exim cannot run deliveries as root anymore, see change
+ 5a for exim 4.23 in /usr/share/doc/exim4-base/changelog.gz. If you
+ don't redirect mail for root via /etc/aliases to a nonpriviledged
+ account the mail will be delivered to /var/mail/mail with permissions
+ 0600 and owner mail:mail.
+
+ -- Andreas Metzler <ametzler@debian.org> Fri, 3 Oct 2003 18:11:17 +0200
+
+exim4 (4.22-1) unstable; urgency=low
+
+ * The way that the $h_ (and $header_) expansions work has been changed
+ by the addition of RFC 2047 decoding. See the main documentation (the
+ NewStuff file until release 4.30, then the manual) for full details.
+
+ Exim shipped with Debian defaults to HEADER_DECODE_TO="UTF-8"
+
+ -- Andreas Metzler <ametzler@debian.org> Mon, 18 Aug 2003 16:51:47 +0200
diff --git a/debian/exim4-base.config b/debian/exim4-base.config
new file mode 100644
index 0000000..0f9b9b6
--- /dev/null
+++ b/debian/exim4-base.config
@@ -0,0 +1,17 @@
+#!/bin/sh
+set -e
+
+. /usr/share/debconf/confmodule
+
+[ -n "$EX4DEBUG" ] && set -x
+
+if [ -d /var/spool/exim/input ] ; then
+ # With "head -n 1" this shouldn't be expensive.
+ oldmails=`find /var/spool/exim/input/ -type f -print | head -n 1`
+fi
+
+if [ "x${oldmails}" != "x" ] ; then
+ db_version 2.0
+ db_input medium exim4/move_exim3_spool || true
+ db_go || true
+fi
diff --git a/debian/exim4-base.cron.daily b/debian/exim4-base.cron.daily
new file mode 100644
index 0000000..e98fc94
--- /dev/null
+++ b/debian/exim4-base.cron.daily
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+[ -n "$EX4DEBUG" ] && set -x
+
+# Only do anything if exim4 is actually installed
+if [ ! -x /usr/lib/exim4/exim4 ]; then
+ exit 0
+fi
+
+# Uncomment the following lines to get daily e-mail reports
+#if [ -x /usr/sbin/eximstats ]; then
+# eximstats </var/log/exim4/mainlog \
+# | mail postmaster -s"$(hostname) Daily email activity report"
+#fi
+
+
+# run tidydb as Debian-exim:Debian-exim.
+alias exim_tidydb_as_mail='start-stop-daemon --start --exec /usr/sbin/exim_tidydb --chuid Debian-exim:Debian-exim --'
+
+if [ -x /usr/sbin/exim_tidydb ]; then
+ cd /var/spool/exim4/db || exit 1
+ for file in *; do
+ if echo $file | grep \\.lockfile >/dev/null 2>&1; then
+ : # skip lock files
+ else
+ exim_tidydb_as_mail /var/spool/exim4 $file >/dev/null
+ fi
+ done
+fi
diff --git a/debian/exim4-base.dirs b/debian/exim4-base.dirs
new file mode 100644
index 0000000..a675d3f
--- /dev/null
+++ b/debian/exim4-base.dirs
@@ -0,0 +1,6 @@
+/usr/sbin
+/usr/bin
+/usr/share/man/man8
+/etc/cron.daily
+/etc/cron.d
+/etc/logrotate.d
diff --git a/debian/exim4-base.doc-base.filter b/debian/exim4-base.doc-base.filter
new file mode 100644
index 0000000..993e82c
--- /dev/null
+++ b/debian/exim4-base.doc-base.filter
@@ -0,0 +1,8 @@
+Document: exim4-filter-txt
+Title: Exim's interface to mail filtering
+Author: Various
+Abstract: Description of the user interface to Exim's in-built mail filtering facility. This is the text version.
+Section: Apps/Net
+
+Format: text
+Files: /usr/share/doc/exim4-base/filter.txt.gz
diff --git a/debian/exim4-base.doc-base.spec b/debian/exim4-base.doc-base.spec
new file mode 100644
index 0000000..da0b5f8
--- /dev/null
+++ b/debian/exim4-base.doc-base.spec
@@ -0,0 +1,8 @@
+Document: exim4-spec-txt
+Title: Exim specification
+Author: Various
+Abstract: Exim reference manual. This is the text version.
+Section: Apps/Net
+
+Format: text
+Files: /usr/share/doc/exim4-base/spec.txt.gz
diff --git a/debian/exim4-base.docs b/debian/exim4-base.docs
new file mode 100644
index 0000000..146f9e2
--- /dev/null
+++ b/debian/exim4-base.docs
@@ -0,0 +1,17 @@
+NOTICE
+ACKNOWLEDGMENTS
+doc/README
+doc/README.SIEVE
+README.UPDATING
+doc/dbm.discuss.txt
+doc/Exim3.upgrade
+doc/Exim4.upgrade
+doc/filter.txt
+doc/NewStuff
+doc/OptionLists.txt
+doc/pcrepattern.txt
+doc/spec.txt
+debian/README.TLS
+debian/changelog.Debian.old
+debian/README.SMTP-AUTH
+debian/README.Debian.xinetd
diff --git a/debian/exim4-base.examples b/debian/exim4-base.examples
new file mode 100644
index 0000000..52da986
--- /dev/null
+++ b/debian/exim4-base.examples
@@ -0,0 +1,2 @@
+util/cramtest.pl util/logargs.sh util/unknownuser.sh
+debian/exim-gencert
diff --git a/debian/exim4-base.init b/debian/exim4-base.init
new file mode 100644
index 0000000..5752914
--- /dev/null
+++ b/debian/exim4-base.init
@@ -0,0 +1,156 @@
+#! /bin/sh
+# /etc/init.d/exim4
+#
+# Written by Miquel van Smoorenburg <miquels@drinkel.ow.org>.
+# Modified for Debian GNU/Linux by Ian Murdock <imurdock@gnu.ai.mit.edu>.
+# Modified for exim by Tim Cutts <timc@chiark.greenend.org.uk>
+# Modified for exim4 by Andreas Metzler <ametzler@downhill.at.eu.org>
+
+set -e
+
+[ -n "$EX4DEBUG" ] && set -x
+
+upex4conf() {
+ UPEX4CONF="update-exim4.conf"
+ OLDIFS="$IFS"
+ IFS=:
+ for p in $PATH; do
+ if [ -x "$p/$UPEX4CONF" ]; then
+ IFS="$OLDIFS"
+ $p/$UPEX4CONF
+ return 0
+ fi
+ done
+ IFS="$OLDIFS"
+}
+
+# Exit if exim runs from /etc/inetd.conf
+if [ -f /etc/inetd.conf ] && grep -E -q "^ *([0-9.]+:)?smtp" /etc/inetd.conf
+then
+ upex4conf
+ exit 0
+fi
+
+
+DAEMON=/usr/sbin/exim4
+NAME=exim4
+
+##test -x $DAEMON || exit 0
+test -x /usr/lib/exim4/exim4 || exit 0
+
+#read default file
+QUEUERUNNER='combined'
+QUEUEINTERVAL='30m'
+[ -f /etc/default/exim4 ] && . /etc/default/exim4
+
+start_exim()
+{
+ case ${QUEUERUNNER} in
+ combined)
+ start-stop-daemon --start --pidfile /var/run/exim4/exim.pid \
+ --exec $DAEMON -- -bd -q${QFLAGS}${QUEUEINTERVAL} \
+ ${COMMONOPTIONS} ${QUEUERUNNEROPTIONS} ${SMTPLISTENEROPTIONS}
+ ;;
+ separate)
+ start-stop-daemon --start --pidfile /var/run/exim4/exim.pid \
+ --exec $DAEMON -- -bd ${SMTPLISTENEROPTIONS} ${COMMONOPTIONS}
+ start-stop-daemon --start --pidfile /var/run/exim4/eximqr.pid \
+ --exec $DAEMON -- -oP /var/run/exim4/eximqr.pid \
+ -q${QFLAGS}${QUEUEINTERVAL} ${QUEUERUNNEROPTIONS} ${COMMONOPTIONS}
+ ;;
+ queueonly)
+ start-stop-daemon --start --pidfile /var/run/exim4/eximqr.pid \
+ --exec $DAEMON -- -oP /var/run/exim4/eximqr.pid \
+ -q${QFLAGS}${QUEUEINTERVAL} ${QUEUERUNNEROPTIONS} ${COMMONOPTIONS}
+ ;;
+ no|ppp)
+ start-stop-daemon --start --pidfile /var/run/exim4/exim.pid \
+ --exec $DAEMON -- -bd ${SMTPLISTENEROPTIONS}
+ ;;
+ nodaemon)
+ ;;
+ esac
+}
+
+stop_exim()
+{
+# we try to kill eximqr and exim SMTP listener, no matter what
+# ${QUEUERUNNER} is set to, we could have switched since starting.
+ [ -f /var/run/exim4/eximqr.pid ] && \
+ start-stop-daemon --stop --pidfile /var/run/exim4/eximqr.pid \
+ --oknodo --retry 30 --exec $DAEMON
+ [ -f /var/run/exim4/exim.pid ] && \
+ start-stop-daemon --stop --pidfile /var/run/exim4/exim.pid \
+ --oknodo --retry 30 --exec $DAEMON
+ rm -f /var/run/exim4/eximqr.pid /var/run/exim4/exim.pid
+}
+
+reload_exim()
+{
+ case ${QUEUERUNNER} in
+ combined|no|ppp)
+ start-stop-daemon --stop --pidfile /var/run/exim4/exim.pid \
+ --signal 1 --exec $DAEMON
+ ;;
+ separate)
+ start-stop-daemon --stop --pidfile /var/run/exim4/exim.pid \
+ --signal 1 --exec $DAEMON
+ start-stop-daemon --stop --pidfile /var/run/exim4/eximqr.pid \
+ --signal 1 --exec $DAEMON
+ ;;
+ esac
+}
+
+
+# check for valid configuration file
+isconfigvalid()
+{
+if ! $DAEMON -bV > /dev/null ; then
+ echo
+ echo "Warning! Invalid configuration file for $NAME. Exiting." 1>&2
+ exit 1
+fi
+}
+
+case "$1" in
+ start)
+ echo -n "Starting MTA: "
+ # regenerate exim4.conf
+ upex4conf
+ isconfigvalid
+ start_exim
+ echo "$NAME."
+ ;;
+ stop)
+ echo -n "Stopping MTA: "
+ stop_exim
+ echo "$NAME."
+ ;;
+ restart)
+ echo -n "Restarting MTA: "
+ # regenerate exim4.conf
+ upex4conf
+ isconfigvalid
+ stop_exim
+ sleep 2
+ start_exim
+ echo "$NAME."
+ ;;
+ reload|force-reload)
+ echo "Reloading $NAME configuration files"
+ # regenerate exim4.conf
+ upex4conf
+ isconfigvalid
+ reload_exim
+ ;;
+ status)
+ exiwhat
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|reload|status}"
+ exit 1
+ ;;
+esac
+
+exit 0
+# vim:tabstop=2:expandtab:shiftwidth=2
diff --git a/debian/exim4-base.links b/debian/exim4-base.links
new file mode 100644
index 0000000..eb0ad89
--- /dev/null
+++ b/debian/exim4-base.links
@@ -0,0 +1,3 @@
+usr/share/man/man8/exim_db.8.gz usr/share/man/man8/exim_dumpdb.8.gz
+usr/share/man/man8/exim_db.8.gz usr/share/man/man8/exim_fixdb.8.gz
+usr/share/man/man8/exim_db.8.gz usr/share/man/man8/exim_tidydb.8.gz
diff --git a/debian/exim4-base.logrotate b/debian/exim4-base.logrotate
new file mode 100644
index 0000000..bfa7b88
--- /dev/null
+++ b/debian/exim4-base.logrotate
@@ -0,0 +1,9 @@
+/var/log/exim4/mainlog /var/log/exim4/rejectlog /var/log/exim4/paniclog {
+ daily
+ missingok
+ rotate 10
+ compress
+ delaycompress
+ notifempty
+ create 640 Debian-exim adm
+}
diff --git a/debian/exim4-base.manpages b/debian/exim4-base.manpages
new file mode 100644
index 0000000..324403a
--- /dev/null
+++ b/debian/exim4-base.manpages
@@ -0,0 +1,12 @@
+doc/exim.8
+debian/manpages/exicyclog.8
+debian/manpages/exigrep.8
+debian/manpages/exim_checkaccess.8
+debian/manpages/exim_db.8
+debian/manpages/exim_dbmbuild.8
+debian/manpages/exim_lock.8
+debian/manpages/exinext.8
+debian/manpages/exiqgrep.8
+debian/manpages/exiqsumm.8
+debian/manpages/exiwhat.8
+debian/manpages/exim_convert4r4.8
diff --git a/debian/exim4-base.postinst b/debian/exim4-base.postinst
new file mode 100644
index 0000000..83eceaa
--- /dev/null
+++ b/debian/exim4-base.postinst
@@ -0,0 +1,86 @@
+#!/bin/sh
+
+set -e
+. /usr/share/debconf/confmodule
+
+[ -n "$EX4DEBUG" ] && set -x
+
+
+db_version 2.0
+
+case "$1" in
+ configure)
+
+ if ! getent passwd Debian-exim > /dev/null ; then
+ echo 'Adding system-user for exim (v4)' 1>&2
+ adduser --system --group --home /var/spool/exim4 --no-create-home \
+ --disabled-login --force-badname Debian-exim > /dev/null
+ fi
+ # Create directories for log etc
+ # install also fixes permissions.
+ install -d -oDebian-exim -gadm -m2750 /var/log/exim4
+ install -d -oDebian-exim -gDebian-exim -m750 /var/run/exim4
+ install -d -oDebian-exim -gDebian-exim -m750 /var/spool/exim4
+ install -d -oDebian-exim -gDebian-exim -m750 /var/spool/exim4/db \
+ /var/spool/exim4/input /var/spool/exim4/msglog
+
+ # Make sure that db files are owned by Debian-exim:Debian-exim
+ find /var/spool/exim4/db/ -type f -print0 |\
+ xargs -0 -r chown Debian-exim:Debian-exim
+ # fix permissions on upgrades
+ if dpkg --compare-versions "$2" le "4.30-1" ; then
+ find /var/log/exim4 /var/spool/exim4 -group mail \
+ \( -type f -or -type d \) -print0 | \
+ xargs -0r chgrp Debian-exim
+ find /var/log/exim4 /var/spool/exim4 -user mail \
+ \( -type f -or -type d \) -print0 | \
+ xargs -0r chown Debian-exim
+ fi
+ # Check that db files are readable by this Exim's db library
+ dbfiles=""
+ for f in /var/spool/exim4/db/*; do
+ if [ -f "$f" ]; then
+ if echo $f | grep \.lockfile\$ >/dev/null 2>&1; then
+ : # ignore lock files
+ else
+ dbfiles="$dbfiles `basename $f`"
+ fi
+ fi
+ done
+ for dbfile in $dbfiles; do
+ if exim_dumpdb /var/spool/exim4 $dbfile >/dev/null 2>&1; then
+ : # File OK
+ else
+ echo "Resetting invalid $dbfile hints db"
+ rm -f /var/spool/exim4/db/$dbfile /var/spool/exim4/db/$dbfile.*
+ fi
+ done
+
+#inetd support has to wait for sarge +1
+# if [ -x /usr/sbin/update-inetd ]; then
+# update-inetd --group MAIL --comment-chars '#exim4disabled' \
+# --add "smtp stream tcp nowait mail /usr/sbin/exim4 exim -bs"
+# fi
+ if [ -x "/etc/init.d/exim4" ]; then
+ update-rc.d exim4 defaults >/dev/null
+ fi
+ if [ -d /var/spool/exim/input ] ; then
+ # With "head -n 1" this shouldn't be expensive.
+ oldmails=`find /var/spool/exim/input/ -type f -print | head -n 1`
+ fi
+ if [ "x${oldmails}" != "x" ] ; then
+ RET=""
+ db_get exim4/move_exim3_spool
+ dc_move_exim3_spool="$RET"
+ if [ "x${dc_move_exim3_spool}" = "xtrue" ] ; then
+ find /var/spool/exim/input/ -type f -print0 |\
+ xargs -0r mv --target-directory=/var/spool/exim4/input
+ find /var/spool/exim4/input -type f -print0 |\
+ xargs -0r chown Debian-exim:Debian-exim
+ fi
+ fi
+
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-base.postrm b/debian/exim4-base.postrm
new file mode 100644
index 0000000..89d2c4d
--- /dev/null
+++ b/debian/exim4-base.postrm
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+[ -n "$EX4DEBUG" ] && set -x
+
+case "$1" in
+ purge)
+ update-rc.d exim4 remove > /dev/null
+ rm -f /etc/default/exim4
+
+#inetd support has to wait for sarge +1
+# if [ -x /usr/sbin/update-inetd ]; then
+# update-inetd --remove exim4
+# fi
+
+ if [ -e /var/spool/exim4/input ] && ! rmdir /var/spool/exim4/input 2>/dev/null ; then
+ db_version 2.0
+ db_input medium exim4/purge_spool || true
+ db_go || true
+ db_get exim4/purge_spool
+ purge_spool="$RET"
+ if [ "x${purge_spool}" = "xtrue" ] ; then
+ rm -rf /var/spool/exim4/input
+ fi
+ fi
+
+ # remove logs and pid-dir.
+ rm -rf /var/run/exim4 /var/log/exim4 /var/spool/exim4/msglog \
+ /var/spool/exim4/db /var/spool/exim4/exim-process.info \
+ /var/spool/exim4/gnutls-params
+ rmdir /var/spool/exim4 /var/lib/exim4 2> /dev/null || true
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-base.templates b/debian/exim4-base.templates
new file mode 100644
index 0000000..32a1fe3
--- /dev/null
+++ b/debian/exim4-base.templates
@@ -0,0 +1,291 @@
+Template: exim4/purge_spool
+Type: boolean
+Default: false
+Description: Remove undelivered mails in spool directory?
+ There are mails in the exim spool directory /var/spool/exim4/input which
+ have not yet been delivered. You can keep them in case you decide to
+ re-install Exim at a later date, or you can choose to remove them.
+Description-cs: Odstranit nedoruenou potu z adrese spool?
+ V adresi /var/spool/exim4/input se nachz dosud nedoruen pota.
+ Mete ji ponechat (nap. pokud se pozdji rozhodnete Exim znovu
+ instalovat), nebo odstranit.
+Description-da: Fjern ikke-leverede breve i k-mappen?
+ Der er post i exims k-mappe /var/spool/exim4/input, som ikke er blevet
+ leveret. Du kan bevare dem, hvis du senere vlge at geninstallere Exim,
+ eller du kan vlge at fjerne dem.
+Description-de: Nicht zugestellte Mail im "spool"-Verzeichnis lschen?
+ Im Verzeichnis, das Exim zum Zwischenspeichern nutzt, dem sogenannten
+ "spool"-Verzeichnis /var/spool/exim4/input befinden sich Mails, die noch
+ nicht zugestellt wurden. Sie knnen sie fr den Fall, dass Sie exim spter
+ wieder installieren aufbewahren oder jetzt lschen lassen.
+Description-el: spool;
+ spool exim /var/spool/exim4/input
+ .
+ Exim ,
+ .
+Description-es: Eliminar los mensajes no entregados del directorio de la cola de correo?
+ Hay mensajes en el directorio de la cola de correo de exim
+ /var/spool/exim4/input que no se han entregado todava. Puede
+ mantenerlos en caso de que decida reinstalar exim posteriormente, o puede
+ decidir borrarlos.
+Description-fi: Poista jonosta shkpostit joita ei ole toimitettu perille?
+ exim-ohjelman postijonossa hakemistossa /var/spool/exim4/input on
+ shkposteja joita ei ole viel toimitettu perille. Ne voidaan silytt
+ silt varalta ett exim asennetaan takaisin myhemmin, tai ne voidaan
+ poistaa.
+Description-fr: Faut-il supprimer les courriels non distribus du tampon d'envoi?
+ Des courriels non distribus ont t trouvs dans le tampon d'envoi
+ /var/spool/exim4/input. Vous pouvez les conserver au cas o vous
+ rinstalleriez Exim plus tard, ou les supprimer.
+Description-it: Rimuovere la posta non consegnata dalla directory di spool?
+ Ci sono dei messaggi in /var/spool/exim4/input, la directory di spool di
+ exim, che non sono stati ancora consegnati. possibile tenerli, caso mai
+ in futuro si decida di reinstallare Exim, oppure eliminarli.
+Description-ja: סǥ쥯ȥˤ̤Υ᡼ޤ?
+ exim סǥ쥯ȥ /var/spool/exim4/input
+ ˤޤƤʤ᡼뤬ޤExim
+ 򤢤ȤǺƥ󥹥ȡ뤹ΤǤСΤޤޤˤƤȤǤޤ뤳ȤǤޤ
+Description-lt: Ar paalinti neisist pat pato eils kataloge?
+ Pato eils kataloge /var/spool/exim4/input yra kolkas neisist laik.
+ Js galite isaugoti juos tam atvejui, jei nusprstumte vliau vl
+ diegti Exim, arba galite pasirinkti neisisto pato paalinim.
+Description-nb: Fjern ikke-levert e-post i kkatalogen?
+ Det finnes e-post i Exims kkatalog /var/spool/exim4/input som enn ikke
+ er blitt levert. Du kan beholde dem i tilfelle du nsker reinstallere
+ Exim seinere, eller du kan fjerne dem.
+Description-nl: Niet afgeleverde e-mails uit de spoolmap verwijderen?
+ De exim-spoolmap bevat niet afgeleverde e-mails. U kunt deze bewaren voor
+ het geval u Exim op een latere datum herinstalleert, of u kunt ze nu
+ verwijderen.
+Description-pt: Remover mails no entregues no diretrio de spool?
+ Existem mails no diretrio de spool do exim /var/spool/exim4/input que
+ ainda no foram entregues. Poder mant-los no caso de decidir reinstalar
+ o Exim posteriormente ou poder optar por remov-los.
+Description-pt_BR: Remover mensagens no entregues no diretrio de spool ?
+ Existem mensagens no diretrio de spool /var/spool/exim4/input que ainda
+ no foram entregues. Voc pode mant-las caso voc decida reinstalar o
+ Exim posteriormente ou voc pode optar por remov-las.
+Description-ru: ?
+ /var/spool/exim4/input
+ . ,
+ Exim,
+ .
+Description-sv: Ta bort olevererade e-postmeddelanden i kkatalogen?
+ Det finns e-postmeddelanden i exims kkatalog /var/spool/exim4/input vilka
+ nnu inte har levererats. Du kan behlla dem i hndelse av att du beslutar
+ att installera om Exim vid en senare tidpunkt, eller s kan du vlja att
+ ta bort dem.
+Description-zh_CN: ɾĿ¼δͶݵż
+ ЩδͶݵż exim ĻĿ¼ /var/spool/exim4/input
+ СԺҪ°װ Exim
+ ѡ񱣴Щżѡɾǡ
+
+Template: exim4/move_exim3_spool
+Type: boolean
+Default: false
+Description: Move yet undelivered mails from exim(v3) to exim4 spool?
+ There are some undelivered mails in the spool directory of exim or
+ exim-tls in /var/spool/exim/input/. They can be moved to exim4's spool
+ (/var/spool/exim4/input/) now where they will be handled by exim4.
+ .
+ Be aware that this works only one-way, exim4 can handle exim(v3)'s spool
+ but not the other way round.
+ .
+ Move the mails only if you don't plan to go back to exim(v3), otherwise
+ the mail shouldn't be moved now but manually once you've converted your
+ setup.
+Description-cs: Pesunout dosud nedoruenou potu ze spool adrese exim do exim4?
+ Ve spool adresi eximu nebo eximu-tls (/var/spool/exim/input/) se nachz
+ njak nedoruen pota. Nyn ji mete pesunout do spool adrese eximu4
+ (/var/spool/exim4/input/), kter se o potu postar.
+ .
+ Pamatujte, e tento pesun funguje pouze jednm smrem. Exim4 um pevzt
+ spool adres od eximu (verze 3), ale ne opan.
+ .
+ Potu pesute pouze pokud neplnujete nvrat k eximu (verze 3). V opanm
+ ppad byste mli potu pesunout pozdji run.
+Description-da: Flyt ikke-leverede breve fra exim(v3) til exim4's k?
+ Der er ikke-leverede breve i exims eller exim-tls's k-mappe i
+ /var/spool/exim/input. De kan flyttes til exim4's k
+ (var/spool/exim4/input/), hvorfra de vil blive hndteret af exim4.
+ .
+ Bemrk at dette kun virker den ene vej. exim4 kan hndtere exim(v3)'s k,
+ men exim(3) kan ikke hndtere exim4's.
+ .
+ Acceptr, hvis du ikke regner med at bruge exim(v3) igen, ellers br
+ posten ikke blive flyttet automatisk endnu, men flyttes manuelt nr du har
+ ndret din opstning.
+Description-de: Nicht zugestellte Mails im "spool" von exim(v3) in den von exim4 verschieben?
+ Im Verzeichnis, das exim (v3) und exim-tls zum Zwischenspeichern nutzen,
+ /var/spool/exim/input finden sich nicht zugestellte Mails. Sie knnen in
+ das zu diesem Zweck von exim4 verwendete Verzeichnis,
+ /var/spool/exim4/input verschoben werden, wo sie exim4 bearbeiten wird.
+ .
+ Vorsicht, das funktioniert nur in eine Richtung, exim4 kann die Mails von
+ exim (v3) bearbeiten, aber nicht umgekehrt.
+ .
+ Sie sollten die Mails nur verschieben, wenn Sie nicht vorhaben, wieder von
+ exim4 zu exim (v3) zu wechseln, andernfalls sollten die Mails nicht jetzt
+ sondern erst spter von Hand verschieben, wenn Sie exim4 vollstndig
+ eingerichtet haben.
+Description-el: exim(v3) spool exim4;
+ spool exim exim-tls
+ /var/spool/exim/input .
+ spool exim4 (/var/spool/exim4/input)
+ exim4.
+ .
+ ,
+ exim4 spool exim (v3) .
+ .
+ exim(v3),
+
+ .
+Description-es: Mover el correo an no entregado de exim(v3) a la cola de correo de exim4?
+ Hay algunos mensajes de correo no entregados en el directorio de la cola
+ de correo de exim o de exim-tls en /var/spool/exim/input/. Se pueden
+ mover ahora a la cola de exim4 (/var/spool/exim4/input/) donde sern
+ gestionados por exim4.
+ .
+ Tenga presente que sto funciona solamente en una direccin, es decir,
+ exim4 puede gestionar la cola de exim(v3) pero no al contrario.
+ .
+ Mueva los mensajes de correo solamente si no tiene pensado volver a usar
+ exim(v3). Si esto no es as, no debera mover el correo ahora, sino
+ manualmente una vez que haya adaptado su configuracin.
+Description-fi: Siirr perille toimittamattomat shkpostit exim(v3):n postijonosta exim4:n postijonoon?
+ exim- tai exim-tls-ohjelmien shkpostijonoissa hakemistossa
+ /var/spool/exim/input on joitakin perille toimittamattomia shkposteja.
+ Ne voidaan nyt siirt exim4:n postijonoon (/var/spool/exim4/input) josta
+ exim4 ne ksittelee.
+ .
+ Huomaa tmn olevan yksisuuntainen tie: exim4 osaa ksitell exim(v3):n
+ postijonoa, mutta ei toisinpin.
+ .
+ Siir shkpostit vain jos et aio palata exim(v3):een. Muussa tapauksessa
+ posteja ei pitisi siirt nyt, vaan siirrt ne itse kunhan olet muuttanut
+ asetukset.
+Description-fr: Faut-il dplacer les courriels en attente dans le tampon d'exim(v3) vers celui d'exim4?
+ Des courriels non distribus se trouvent dans le tampon d'envoi d'exim ou
+ exim-tls (/var/spool/exim/input/). Ils peuvent tre dplacs dans le
+ tampon d'envoi d'exim4 (/var/spool/exim4/input) o ils pourront tre
+ traits par exim4.
+ .
+ Cette opration est sens unique: exim4 peut grer le contenu du tampon
+ d'attente d'exim(v3) alors que le contraire est impossible.
+ .
+ N'acceptez le dplacement que si vous ne prvoyez pas de revenir
+ exim(v3). Dans le cas contraire, veuillez dplacer vous-mme les fichiers
+ aprs avoir converti votre configuration.
+Description-it: Spostare la posta non ancora consegnata dallo spool di exim(v3) a quello di exim4?
+ Ci sono dei messaggi non ancora consegnati in /var/spool/exim/input, la
+ directory di spool di exim o di exim-tls; spostandoli in
+ /var/spool/exim4/input, lo spool di exim4, si pu fare in modo che
+ quest'ultimo li prenda in consegna.
+ .
+ Attenzione: exim4 pu gestire lo spool di exim(v3), ma non viceversa.
+ .
+ Si consiglia di spostare i messaggi solo se si sicuri di non tornare a
+ usare exim(v3); in caso contrario, la posta non va spostata ora, ma
+ manualmente dopo aver completato la migrazione.
+Description-ja: exim(v3) exim4 Υס̤Υ᡼ưޤ?
+ exim ޤ exim-tlsΥסǥ쥯ȥ /var/spool/exim/input
+ ˤޤƤʤ᡼뤬ޤexim4 ѤǤ褦 exim4
+ Υס (/var/spool/exim4/input/) ˺ưǤޤ
+ .
+ exim4 exim(v3)
+ Υס򰷤ޤεդϤǤʤ̹ԤǤƯʤȤդƤ
+ .
+ exim(v3)
+ ͤʤȤΤߡ᡼ưƤʤС᡼򺣰ưåȥåפѹƼưǹԤäƤߤ٤Ǥ
+Description-lt: Ar perkelti neisistus laikus i exim(v3) exim4 pato eil?
+ Pato eils kataloge /var/spool/exim/input yra programos exim arba
+ exim-tls kolkas neisist laik. Juos dabar galima perkelti exim4
+ pato eil (/var/spool/exim4/input/), kur jie bus apdorojami programa
+ exim4.
+ .
+ inokite, kad tai veikia tik viena kriptimi, t.y. exim4 gali apdoroti
+ programos exim(v3) pato eil, bet ne atvirkiai.
+ .
+ Perkelkite laikus tik tuo atveju, jei neplanuojate grti atgal prie
+ exim(v3), kitu atveju laikai turi bti perkelti ne dabar, bet rankiniu
+ bdu, po to kai konvertuosite nustatymus.
+Description-nb: Flytt forelpig ikke-levert e-post fra exim(v3) til exim4-ken?
+ Det finnes e-post i exims eller exim-tls' kkatalog /var/spool/exim/input
+ som enn ikke er blitt levert. Disse kan flyttes til exim4s k
+ (/var/spool/exim4/input) n, hvor de vil bli hndtert av exim4.
+ .
+ Vr oppmerksom p at dette bare fungerer den ene veien; exim4 kan hndtere
+ exim(v3)s k men ikke motsatt.
+ .
+ Flytt e-posten kun om du ikke planlegger g tilbake til exim(v3); ellers
+ burde ikke e-posten flyttes n, men manuelt nr du er ferdig med flytte
+ oppsettet.
+Description-nl: Nog niet afgeleverde e-mails verplaatsen van exim(v3)-spoolmap naar exim4-spoolmap?
+ Er zijn een aantal niet afgeleverde e-mails in de exim- of
+ exim-tls-spoolmap (/var/spool/exim/input/). Deze kunnen verplaatst worden
+ naar de exim4-spoolmap (/var/spool/exim4/input/); ze worden dan verder
+ afgehandeld door exim4.
+ .
+ Merk op dat dit eenrichtingsverkeer is; exim4 kan de spool van exim(v3)
+ gebruiken maar niet andersom.
+ .
+ Verplaats de e-mails enkel wanneer u niet van plan bent om nog naar
+ exim(v3) terug te keren, anders dient u de e-mails later wanneer u uw
+ instellingen overgezet heeft handmatig te verplaatsen.
+Description-pt: Mover mails ainda no entregues do exim(v3) para o spool do exim4?
+ Existem alguns mails no entregues no directrio de spool do exim ou do
+ exim-tls em /var/spool/exim/input. Estes podem ser movidos para o spool do
+ exim4 (/var/spool/exim4/input) agora, onde sero geridos pelo exim4.
+ .
+ Ateno que este procedimento apenas funciona num nico sentido, o exim4
+ pode gerir o spool do exim(v3) mas o contrrio no possvel.
+ .
+ Mova os mails apenas se no pretender voltar ao exim(v3), ou, caso
+ contrrio, os mails no devero ser movidos agora mas sim manualmente
+ assim que sua instalao for convertida.
+Description-pt_BR: Mover mensagens ainda no entregues do exim(v3) para o spool do exim4 ?
+ Existem algumas mensagens no entregues no diretrio de spool do exim ou
+ do exim-tls em /var/spool/exim/input. As mesmas podem ser movidas para o
+ spool do exim4 (/var/spool/exim4/input) agora, onde sero gerenciadas pelo
+ exim4.
+ .
+ Esteja avisado que esse procedimento funcionamento somente em um nico
+ sentido, ou seja, o exim4 pode gerenciar o spool do exim(v3) mas o
+ contrrio no possvel.
+ .
+ Movas as mensagens somente caso voc no planeje voltar para o exim(v3),
+ ou, caso contrrio, as mensagens no devero ser movidas agora mas sim
+ manualmente assim que sua instalao for convertida.
+Description-ru: exim(v3) exim4?
+ /var/spool/exim4/input exim
+ exim-tls .
+ exim4 ((/var/spool/exim4/input/),
+ exim4.
+ .
+ , , exim4
+ exim(v3), .
+ .
+ ,
+ exim(v3),
+ , , .
+Description-sv: Flytta hittils olevererade e-postmeddelanden frn exim(v3):s till exim4:s kkatalog?
+ Det finns vissa olevererade e-postmeddelanden i exim:s eller exim-tls
+ kkatalog i /var/spool/exim/input/. De kan flyttas till exim4:s k
+ (/var/spool/exim4/input/) dr de kommer att hanteras av exim4.
+ .
+ Var medveten om att detta enbart funkar ena vgen; exim4 kan hantera
+ exim(v3):s kkatalog men det omvnda gller inte.
+ .
+ Flytta e-postmeddelandena endast om du inte planerar att g tillbaka till
+ exim(v3). Annars br e-posten inte flyttas nu utan manuellt nr du har
+ konverterat ditt system.
+Description-zh_CN: δͶݵż exim(v3) Ƶ exim4 Ļ
+ ЩδͶݳȥż exim exim-tls ĻĿ¼
+ /var/spool/exim/input СǿԱƵ exim4
+ Ļ(/var/spool/exim4/input/)С
+ .
+ Сģȫǵģexim4 Դ exim(v3)
+ Ļ֮򲻿С
+ .
+ ƻٷʹ
+ exim(v3)ƶЩż벻ҪƶǡӦõõתֶʽתǡ
diff --git a/debian/exim4-base.templates.master b/debian/exim4-base.templates.master
new file mode 100644
index 0000000..6a6cfef
--- /dev/null
+++ b/debian/exim4-base.templates.master
@@ -0,0 +1,22 @@
+Template: exim4/purge_spool
+Type: boolean
+Default: false
+_Description: Remove undelivered mails in spool directory?
+ There are mails in the exim spool directory /var/spool/exim4/input which
+ have not yet been delivered. You can keep them in case you decide to
+ re-install Exim at a later date, or you can choose to remove them.
+
+Template: exim4/move_exim3_spool
+Type: boolean
+Default: false
+_Description: Move yet undelivered mails from exim(v3) to exim4 spool?
+ There are some undelivered mails in the spool directory of exim or
+ exim-tls in /var/spool/exim/input/. They can be moved to exim4's spool
+ (/var/spool/exim4/input/) now where they will be handled by exim4.
+ .
+ Be aware that this works only one-way, exim4 can handle exim(v3)'s spool
+ but not the other way round.
+ .
+ Move the mails only if you don't plan to go back to exim(v3), otherwise
+ the mail shouldn't be moved now but manually once you've converted your
+ setup.
diff --git a/debian/exim4-config-medium/debian/changelog b/debian/exim4-config-medium/debian/changelog
new file mode 100644
index 0000000..e364b2a
--- /dev/null
+++ b/debian/exim4-config-medium/debian/changelog
@@ -0,0 +1,12 @@
+exim4-config-medium (4.24-1+2ilk2) unstable; urgency=low
+
+ * separate system user for exim4
+
+ -- Andreas Metzler <ametzler@debian.org> Fri, 12 Dec 2003 15:34:33 +0100
+
+exim4-config-medium (4.24-1+2ilk1) unstable; urgency=low
+
+ * automatically generated changelog
+ * generated source package by create-custom-package
+
+ -- Marc Haber <mh+debian-packages@zugschlus.de> Fri, 17 Oct 2003 13:30:03 +0200
diff --git a/debian/exim4-config-medium/debian/compat b/debian/exim4-config-medium/debian/compat
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/debian/exim4-config-medium/debian/compat
@@ -0,0 +1 @@
+4
diff --git a/debian/exim4-config-medium/debian/config/30_exim4-config_example_check_rcpt b/debian/exim4-config-medium/debian/config/30_exim4-config_example_check_rcpt
new file mode 100644
index 0000000..016190c
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/30_exim4-config_example_check_rcpt
@@ -0,0 +1,139 @@
+# This access control list is used for every RCPT command in an incoming
+# SMTP message. The tests are run in order until the address is either
+# accepted or denied.
+#
+acl_example_check_rcpt:
+ # Accept if the source is local SMTP (i.e. not over TCP/IP). We do this by
+ # testing for an empty sending host field.
+ accept hosts = :
+
+ # Deny if the local part contains @ or % or / or | or !. These are rarely
+ # found in genuine local parts, but are often tried by people looking to
+ # circumvent relaying restrictions.
+ #
+ # Also deny if the local part starts with a dot. Empty components aren't
+ # strictly legal in RFC 2822, but Exim allows them because this is common.
+ # However, actually starting with a dot may cause trouble if the local part
+ # is used as a file name (e.g. for a mailing list).
+ #
+ deny local_parts = ^.*[@%!/|] : ^\\.
+
+ # Accept mail to postmaster in any local domain, regardless of the source,
+ # and without verifying the sender.
+ #
+ accept local_parts = postmaster
+ domains = +local_domains
+
+ # Deny unless the sender address can be verified.
+ deny !acl = acl_whitelist_local_deny
+ !verify = sender
+
+ # Warn if the sender host does not have valid reverse DNS.
+ warn message = X-Broken-Reverse-DNS: no host name found for IP address $sender_host_address
+ !verify = reverse_host_lookup
+
+ # deny bad senders (envelope sender)
+ # CONFDIR/local_sender_blacklist holds a list of envelope senders that
+ # should have their access denied to the local host. Incoming messages
+ # with one of these senders are rejected at RCPT time.
+ #
+ # The explicit white lists are honored as well as negative items in
+ # the black list. See /usr/share/doc/exim4-config-medium/default_acl for details.
+ deny message = sender envelope address $sender_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
+ !acl = acl_whitelist_local_deny
+ senders = ${if exists{CONFDIR/local_sender_blacklist}\
+ {CONFDIR/local_sender_blacklist}\
+ {}}
+
+ # deny bad sites (IP address)
+ # CONFDIR/local_host_blacklist holds a list of host names, IP addresses
+ # and networks (CIDR notation) that should have their access denied to
+ # The local host. Messages coming in from a listed host will have all
+ # RCPT statements rejected.
+ #
+ # The explicit white lists are honored as well as negative items in
+ # the black list. See /usr/share/doc/exim4-config-medium/default_acl for details.
+ deny message = sender IP address $sender_host_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
+ !acl = acl_whitelist_local_deny
+ hosts = ${if exists{CONFDIR/local_host_blacklist}\
+ {CONFDIR/local_host_blacklist}\
+ {}}
+
+
+ #############################################################################
+ # The DNS "black" lists here might have gone out of existence at the
+ # time you might want to start using this example. Use at your own risk,
+ # and verify the used lists' policies.
+ #############################################################################
+
+ warn message = X-Warning: $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ dnslists = inputs.relays.osirusoft.com:dialups.relays.osirusoft.com:spamhaus.relays.osirusoft.com:spamsites.relays.osirusoft.com:spews.relays.osirusoft.com:relays.ordb.org:relays.bl.kundenserver.de:relays.visi.com:sbl.spamhaus.org
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_postmaster.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_postmaster.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = postmaster.rfc-ignorant.org/$sender_address_domain
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_abuse.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_abuse.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = abuse.rfc-ignorant.org/$sender_address_domain
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_whois.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_whois.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = whois.rfc-ignorant.org/$sender_address_domain
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_dsn.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_dsn.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = dsn.rfc-ignorant.org/$sender_address_domain
+
+ # Accept if the address is in a local domain, but only if the recipient can
+ # be verified. Otherwise deny. The "endpass" line is the border between
+ # passing on to the next ACL statement (if tests above it fail) or denying
+ # access (if tests below it fail).
+ #
+ accept domains = +local_domains
+ endpass
+ message = unknown user
+ verify = recipient
+
+ # Accept if the address is in a domain for which we are relaying, but again,
+ # only if the recipient can be verified.
+ #
+ accept domains = +relay_to_domains
+ endpass
+ message = unrouteable address
+ verify = recipient
+
+ # If control reaches this point, the domain is neither in +local_domains
+ # nor in +relay_to_domains.
+
+ # Accept if the message comes from one of the hosts for which we are an
+ # outgoing relay. Recipient verification is omitted here, because in many
+ # cases the clients are dumb MUAs that don't cope well with SMTP error
+ # responses. If you are actually relaying out from MTAs, you should probably
+ # add recipient verification here.
+ #
+ accept hosts = +relay_from_hosts
+
+ # Accept if the message arrived over an authenticated connection, from
+ # any host. Again, these messages are usually from MUAs, so recipient
+ # verification is omitted.
+ #
+ accept authenticated = *
+
+ # Reaching the end of the ACL causes a "deny", but we might as well give
+ # an explicit message.
+ #
+ deny message = relay not permitted
diff --git a/debian/exim4-config-medium/debian/config/conf.d/30_exim4-config-medium_example_check_rcpt b/debian/exim4-config-medium/debian/config/conf.d/30_exim4-config-medium_example_check_rcpt
new file mode 100644
index 0000000..8e8883d
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/30_exim4-config-medium_example_check_rcpt
@@ -0,0 +1,139 @@
+# This access control list is used for every RCPT command in an incoming
+# SMTP message. The tests are run in order until the address is either
+# accepted or denied.
+#
+acl_example_check_rcpt:
+ # Accept if the source is local SMTP (i.e. not over TCP/IP). We do this by
+ # testing for an empty sending host field.
+ accept hosts = :
+
+ # Deny if the local part contains @ or % or / or | or !. These are rarely
+ # found in genuine local parts, but are often tried by people looking to
+ # circumvent relaying restrictions.
+ #
+ # Also deny if the local part starts with a dot. Empty components aren't
+ # strictly legal in RFC 2822, but Exim allows them because this is common.
+ # However, actually starting with a dot may cause trouble if the local part
+ # is used as a file name (e.g. for a mailing list).
+ #
+ deny local_parts = ^.*[@%!/|] : ^\\.
+
+ # Accept mail to postmaster in any local domain, regardless of the source,
+ # and without verifying the sender.
+ #
+ accept local_parts = postmaster
+ domains = +local_domains
+
+ # Deny unless the sender address can be verified.
+ deny !acl = acl_whitelist_local_deny
+ !verify = sender
+
+ # Warn if the sender host does not have valid reverse DNS.
+ warn message = X-Broken-Reverse-DNS: no host name found for IP address $sender_host_address
+ !verify = reverse_host_lookup
+
+ # deny bad senders (envelope sender)
+ # CONFDIR/local_sender_blacklist holds a list of envelope senders that
+ # should have their access denied to the local host. Incoming messages
+ # with one of these senders are rejected at RCPT time.
+ #
+ # The explicit white lists are honored as well as negative items in
+ # the black list. See /usr/share/doc/exim4-config/default_acl for details.
+ deny message = sender envelope address $sender_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
+ !acl = acl_whitelist_local_deny
+ senders = ${if exists{CONFDIR/local_sender_blacklist}\
+ {CONFDIR/local_sender_blacklist}\
+ {}}
+
+ # deny bad sites (IP address)
+ # CONFDIR/local_host_blacklist holds a list of host names, IP addresses
+ # and networks (CIDR notation) that should have their access denied to
+ # The local host. Messages coming in from a listed host will have all
+ # RCPT statements rejected.
+ #
+ # The explicit white lists are honored as well as negative items in
+ # the black list. See /usr/share/doc/exim4-config/default_acl for details.
+ deny message = sender IP address $sender_host_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
+ !acl = acl_whitelist_local_deny
+ hosts = ${if exists{CONFDIR/local_host_blacklist}\
+ {CONFDIR/local_host_blacklist}\
+ {}}
+
+
+ #############################################################################
+ # The DNS "black" lists here might have gone out of existence at the
+ # time you might want to start using this example. Use at your own risk,
+ # and verify the used lists' policies.
+ #############################################################################
+
+ warn message = X-Warning: $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ dnslists = inputs.relays.osirusoft.com:dialups.relays.osirusoft.com:spamhaus.relays.osirusoft.com:spamsites.relays.osirusoft.com:spews.relays.osirusoft.com:relays.ordb.org:relays.bl.kundenserver.de:relays.visi.com:sbl.spamhaus.org
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_postmaster.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_postmaster.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = postmaster.rfc-ignorant.org/$sender_address_domain
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_abuse.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_abuse.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = abuse.rfc-ignorant.org/$sender_address_domain
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_whois.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_whois.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = whois.rfc-ignorant.org/$sender_address_domain
+
+ warn message = X-Warning: $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ log_message = $sender_address_domain is listed at $dnslist_domain ($dnslist_value: $dnslist_text)
+ !senders = ${if exists{CONFDIR/local_dsn.rfc-ignorant.org_whitelist}\
+ {CONFDIR/local_dsn.rfc-ignorant.org_whitelist}\
+ {}}
+ dnslists = dsn.rfc-ignorant.org/$sender_address_domain
+
+ # Accept if the address is in a local domain, but only if the recipient can
+ # be verified. Otherwise deny. The "endpass" line is the border between
+ # passing on to the next ACL statement (if tests above it fail) or denying
+ # access (if tests below it fail).
+ #
+ accept domains = +local_domains
+ endpass
+ message = unknown user
+ verify = recipient
+
+ # Accept if the address is in a domain for which we are relaying, but again,
+ # only if the recipient can be verified.
+ #
+ accept domains = +relay_to_domains
+ endpass
+ message = unrouteable address
+ verify = recipient
+
+ # If control reaches this point, the domain is neither in +local_domains
+ # nor in +relay_to_domains.
+
+ # Accept if the message comes from one of the hosts for which we are an
+ # outgoing relay. Recipient verification is omitted here, because in many
+ # cases the clients are dumb MUAs that don't cope well with SMTP error
+ # responses. If you are actually relaying out from MTAs, you should probably
+ # add recipient verification here.
+ #
+ accept hosts = +relay_from_hosts
+
+ # Accept if the message arrived over an authenticated connection, from
+ # any host. Again, these messages are usually from MUAs, so recipient
+ # verification is omitted.
+ #
+ accept authenticated = *
+
+ # Reaching the end of the ACL causes a "deny", but we might as well give
+ # an explicit message.
+ #
+ deny message = relay not permitted
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/00_exim4-config-medium_header b/debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/00_exim4-config-medium_header
new file mode 100644
index 0000000..76b017e
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/00_exim4-config-medium_header
@@ -0,0 +1,8 @@
+
+######################################################################
+# ACL CONFIGURATION #
+# Specifies access control lists for incoming SMTP mail #
+######################################################################
+begin acl
+
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/20_exim4-config-medium_whitelist_local_deny b/debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/20_exim4-config-medium_whitelist_local_deny
new file mode 100644
index 0000000..5f985b2
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/20_exim4-config-medium_whitelist_local_deny
@@ -0,0 +1,42 @@
+# This access control list is used to determine whitelisted senders and
+# hosts. It checks for CONFDIR/local_host_whitelist and
+# CONFDIR/local_sender_whitelist.
+#
+# It is meant to be used from some other acl entry.
+#
+# For example,
+# deny message = local blacklist example
+# !acl = acl_whitelist
+# dnslist = some.dns.list.example
+# will allow messages with envelope sender listed in local_sender_whitelist
+# or messages coming in from hosts listed in local_host_whitelist to be
+# accepted even if the delivering host is listed in the dns list.
+#
+# Whitelisting can also be configured by including negative items in the
+# black list. See /usr/share/doc/exim4-config/default_acl for details.
+#
+# If the files do not exist, the white list never matches, which is
+# the desired behaviour.
+
+acl_whitelist_local_deny:
+ accept hosts = ${if exists{CONFDIR/local_host_whitelist}\
+ {CONFDIR/local_host_whitelist}\
+ {}}
+ accept senders = ${if exists{CONFDIR/local_sender_whitelist}\
+ {CONFDIR/local_sender_whitelist}\
+ {}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/30_exim4-config-medium_check_rcpt b/debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/30_exim4-config-medium_check_rcpt
new file mode 100644
index 0000000..13d5852
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/30_exim4-config-medium_check_rcpt
@@ -0,0 +1,118 @@
+# This access control list is used for every RCPT command in an incoming
+# SMTP message. The tests are run in order until the address is either
+# accepted or denied.
+#
+acl_check_rcpt:
+ # Accept if the source is local SMTP (i.e. not over TCP/IP). We do this by
+ # testing for an empty sending host field.
+ accept hosts = :
+
+ # Deny if the local part contains @ or % or / or | or !. These are rarely
+ # found in genuine local parts, but are often tried by people looking to
+ # circumvent relaying restrictions.
+ #
+ # Also deny if the local part starts with a dot. Empty components aren't
+ # strictly legal in RFC 2822, but Exim allows them because this is common.
+ # However, actually starting with a dot may cause trouble if the local part
+ # is used as a file name (e.g. for a mailing list).
+ #
+ deny local_parts = ^.*[@%!/|] : ^\\.
+
+ # Accept mail to postmaster in any local domain, regardless of the source,
+ # and without verifying the sender.
+ #
+ accept local_parts = postmaster
+ domains = +local_domains
+
+ # Deny unless the sender address can be verified.
+ #
+ # This is disabled by default so that DNSless systems don't break. If
+ # your system can do DNS lookups without delay or cost, you might want
+ # to enable the following line.
+ # deny !acl = acl_whitelist_local_deny
+ # !verify = sender
+
+ # Warn if the sender host does not have valid reverse DNS.
+ #
+ # This is disabled by default so that DNSless systems don't break. If
+ # your system can do DNS lookups without delay or cost, you might want
+ # to enable the following lines.
+ # warn message = X-Broken-Reverse-DNS: no host name found for IP address $sender_host_address
+ # !verify = reverse_host_lookup
+
+ # deny bad senders (envelope sender)
+ # CONFDIR/local_sender_blacklist holds a list of envelope senders that
+ # should have their access denied to the local host. Incoming messages
+ # with one of these senders are rejected at RCPT time.
+ #
+ # The explicit white lists are honored as well as negative items in
+ # the black list. See /usr/share/doc/exim4-config/default_acl for details.
+ deny message = sender envelope address $sender_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
+ !acl = acl_whitelist_local_deny
+ senders = ${if exists{CONFDIR/local_sender_blacklist}\
+ {CONFDIR/local_sender_blacklist}\
+ {}}
+
+ # deny bad sites (IP address)
+ # CONFDIR/local_host_blacklist holds a list of host names, IP addresses
+ # and networks (CIDR notation) that should have their access denied to
+ # The local host. Messages coming in from a listed host will have all
+ # RCPT statements rejected.
+ #
+ # The explicit white lists are honored as well as negative items in
+ # the black list. See /usr/share/doc/exim4-config/default_acl for details.
+ deny message = sender IP address $sender_host_address is locally blacklisted here. If you think this is wrong, get in touch with postmaster
+ !acl = acl_whitelist_local_deny
+ hosts = ${if exists{CONFDIR/local_host_blacklist}\
+ {CONFDIR/local_host_blacklist}\
+ {}}
+
+
+ #############################################################################
+ # There are no checks on DNS "black" lists because the domains that contain
+ # these lists are changing all the time. You can find examples of
+ # how to use dnslists in /usr/share/doc/exim4-config/examples/acl
+ #############################################################################
+
+ # Accept if the address is in a local domain, but only if the recipient can
+ # be verified. Otherwise deny. The "endpass" line is the border between
+ # passing on to the next ACL statement (if tests above it fail) or denying
+ # access (if tests below it fail).
+ #
+ accept domains = +local_domains
+ endpass
+ message = unknown user
+ verify = recipient
+
+ # Accept if the address is in a domain for which we are relaying, but again,
+ # only if the recipient can be verified.
+ #
+ accept domains = +relay_to_domains
+ endpass
+ message = unrouteable address
+ verify = recipient
+
+ # If control reaches this point, the domain is neither in +local_domains
+ # nor in +relay_to_domains.
+
+ # Accept if the message comes from one of the hosts for which we are an
+ # outgoing relay. Recipient verification is omitted here, because in many
+ # cases the clients are dumb MUAs that don't cope well with SMTP error
+ # responses. If you are actually relaying out from MTAs, you should probably
+ # add recipient verification here.
+ #
+ accept hosts = +relay_from_hosts
+
+ # Accept if the message arrived over an authenticated connection, from
+ # any host. Again, these messages are usually from MUAs, so recipient
+ # verification is omitted.
+ #
+ accept authenticated = *
+
+ # Reaching the end of the ACL causes a "deny", but we might as well give
+ # an explicit message.
+ #
+ deny message = relay not permitted
+
+
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/40_exim4-config-medium_check_data b/debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/40_exim4-config-medium_check_data
new file mode 100644
index 0000000..74cfd6c
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/acl/40_exim4-config-medium_check_data
@@ -0,0 +1,24 @@
+# 40_exim4-config_check_data
+
+acl_check_data:
+ # Deny unless the address list headers are syntactically correct.
+ #
+ # This is disabled by default because it might reject legitimate mail.
+ # If you want your system to insist on syntactically valid address
+ # headers, you might want to enable the following lines.
+ # deny message = Message headers fail syntax check
+ # !acl = acl_whitelist_local_deny
+ # !verify = header_syntax
+
+ # require that there is a verifiable sender address in at least
+ # one of the "Sender:", "Reply-To:", or "From:" header lines.
+ # deny message = No verifiable sender address in message headers
+ # !acl = acl_whitelist_local_deny
+ # !verify = header_sender
+
+ # enforce a message-size limit
+ # deny message = Message size $message_size is larger than limit of MESSAGE_SIZE_LIMIT
+ # condition = ${if >{$message_size}{MESSAGE_SIZE_LIMIT}{yes}{no}}
+
+ # accept otherwise
+ accept
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/auth/00_exim4-config-medium_header b/debian/exim4-config-medium/debian/config/conf.d/conf.d/auth/00_exim4-config-medium_header
new file mode 100644
index 0000000..c5f8fc1
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/auth/00_exim4-config-medium_header
@@ -0,0 +1,8 @@
+
+######################################################################
+# AUTHENTICATION CONFIGURATION #
+######################################################################
+
+begin authenticators
+
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/auth/30_exim4-config-medium_examples b/debian/exim4-config-medium/debian/config/conf.d/conf.d/auth/30_exim4-config-medium_examples
new file mode 100644
index 0000000..24c4c8a
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/auth/30_exim4-config-medium_examples
@@ -0,0 +1,91 @@
+
+### auth/30_exim4-config_examples
+#################################
+
+# The examples below are for server side authentication; they allow two
+# styles of plain-text authentication against an CONFDIR/passwd file
+# which should have user IDs in the first column and crypted passwords
+# in the second. The columns need to be separated by ':'. For CRAM-MD5
+# exim needs access to the UNECRYPTED passwd - the example below assumes
+# it is avalable in the third column of CONFDIR/passwd
+
+# plain_server:
+# driver = plaintext
+# public_name = PLAIN
+# server_condition = "${if crypteq{$3}{${extract{1}{:}{${lookup{$2}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
+# server_set_id = $2
+# server_prompts = :
+#
+# login_server:
+# driver = plaintext
+# public_name = LOGIN
+# server_prompts = "Username:: : Password::"
+# server_condition = "${if crypteq{$2}{${extract{1}{:}{${lookup{$1}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
+# server_set_id = $1
+#
+# cram_md5_server:
+# driver = cram_md5
+# public_name = CRAM-MD5
+# server_secret = ${extract{2}{:}{${lookup{$1}lsearch{CONFDIR/passwd}{$value}fail}}}
+# server_set_id = $1
+
+# Here is an example of CRAM-MD5 authentication against PostgreSQL:
+#
+# psqldb_auth:
+# driver = cram_md5
+# public_name = CRAM-MD5
+# server_secret = ${lookup pgsql{SELECT pw FROM users WHERE username = '${quote_pgsql:$1}'}{$value}fail}
+# server_set_id = $1
+
+##############
+# See /usr/share/doc/exim4-base/README.SMTP-AUTH
+##############
+
+# These examples below are the equivalent for client side authentication.
+# They get the passwords from CONFDIR/passwd.client. This file should have
+# three columns separated by colons, the first contains the name of the
+# mailserver to authenticate against, the second the username and the third
+# contains the password.
+
+### # example for CONFDIR/passwd.client
+### mail.server:blah:secret
+### # default entry:
+### *:bar:foo
+
+cram_md5:
+ driver = cram_md5
+ public_name = CRAM-MD5
+ client_name = ${extract{1}{:}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}
+ client_secret = ${extract{2}{:}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}
+
+# Because AUTH PLAIN sends the password in clear, per default we only allow it
+# over encrypted connections. If you want to change this disable the existing
+# "client send" entry and enable the one below without the "if !eq{$tls_cipher}{}"
+# by removing the hash-mark (#) at the beginning of the line.
+plain:
+ driver = plaintext
+ public_name = PLAIN
+ client_send = "${if !eq{$tls_cipher}{}{\
+ ^${extract{1}{::}\
+ {${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}\
+ ^${extract{2}{::}\
+ {${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}\
+ }fail}"
+# client_send = "^${extract{1}{::}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}^${extract{2}{::}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}"
+
+# Because AUTH LOGIN sends the password in clear, per default we only allow it
+# over encrypted connections. If you want to change this disable the existing
+# "client send" entry and enable the one below without the "if !eq{$tls_cipher}{}"
+# by removing the hash-mark (#) at the beginning of the line.
+login:
+ driver = plaintext
+ public_name = LOGIN
+ client_send = "${if !eq{$tls_cipher}{}{}fail}\
+ : ${extract{1}{::}\
+ {${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}} \
+ : ${extract{2}{::}\
+ {${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}"
+# client_send = ": ${extract{1}{::}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}} : ${extract{2}{::}{${lookup{$host}lsearch*{CONFDIR/passwd.client}{$value}fail}}}"
+
+
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/main/01_exim4-config-medium_listmacrosdefs b/debian/exim4-config-medium/debian/config/conf.d/conf.d/main/01_exim4-config-medium_listmacrosdefs
new file mode 100644
index 0000000..c065abf
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/main/01_exim4-config-medium_listmacrosdefs
@@ -0,0 +1,79 @@
+
+######################################################################
+# Runtime configuration file for Exim #
+######################################################################
+
+######################################################################
+# MAIN CONFIGURATION SETTINGS #
+######################################################################
+
+# Just for reference and scripts, on debian, the main binary is
+# installed as exim4
+exim_path = /usr/sbin/exim4
+
+# Macro defining the main configuration directory, we use no abolute
+# paths.
+CONFDIR = /etc/exim4
+
+# Macro defining the message size limit. This is not enabled by default
+# in CONFDIR/conf.d/acl/40_exim4-config_check_data
+MESSAGE_SIZE_LIMIT = 10M
+
+# Define a macro DC_minimaldns if dc_minimaldns=true, to use in
+# .ifdef-statements otherwise this expands to an empty line
+DEBCONFminimaldnsDEBCONF
+
+.ifdef DC_minimaldns
+primary_hostname = DEBCONFvisiblenameDEBCONF
+.else
+# Let Exim autodetect this
+# primary_hostname =
+.endif
+
+# The next three settings create two lists of domains and one list of hosts.
+# These lists are referred to later in this configuration using the syntax
+# +local_domains, +relay_to_domains, and +relay_from_hosts, respectively. They
+# are all colon-separated lists:
+
+# '@' refers to 'the name of the local host'
+
+### EXPANSION-begins ######################
+domainlist local_domains = DEBCONFlocal_domainsDEBCONF
+
+domainlist relay_to_domains = DEBCONFrelay_domainsDEBCONF
+
+hostlist relay_from_hosts = 127.0.0.1 : ::::1 : DEBCONFrelay_netsDEBCONF
+
+
+# Specify the domain you want to be added to all unqualified addresses
+# here. An unqualified address is one that does not contain an "@" character
+# followed by a domain. For example, "caesar@rome.example" is a fully qualified
+# address, but the string "caesar" (i.e. just a login name) is an unqualified
+# email address. Unqualified addresses are accepted only from local callers by
+# default. See the recipient_unqualified_hosts option if you want to permit
+# unqualified addresses from remote sources. If this option is not set, the
+# primary_hostname value is used for qualification.
+qualify_domain = DEBCONFvisiblenameDEBCONF
+
+# only used for satellite-system
+DCreadhost = DEBCONFreadhostDEBCONF
+
+#for satellite and smarthost-systems
+DCsmarthost = DEBCONFsmarthostDEBCONF
+
+# listen on all all interfaces?
+DEBCONFlistenonpublicDEBCONF
+### EXPANSION-ends ######################
+
+# The default delivery method. See CONFDIR/conf.d/transports/ for other
+# possibilities
+LOCAL_DELIVERY=mail_spool
+
+# The gecos field in /etc/passwd holds not only the name. see passwd(5).
+gecos_pattern = ^([^,:]*)
+gecos_name = $1
+
+
+# define a macro DCconfig_smarthost, DCconfig_satellite, etc. we need this
+# for .ifdef ... .endif
+DCconfig_DEBCONFconfigtypeDEBCONF = 1
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/main/02_exim4-config-medium_options b/debian/exim4-config-medium/debian/config/conf.d/conf.d/main/02_exim4-config-medium_options
new file mode 100644
index 0000000..814b526
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/main/02_exim4-config-medium_options
@@ -0,0 +1,96 @@
+
+### main/02_exim4-config_options
+#################################
+
+# This option defines the access control list that is run when an
+# SMTP RCPT command is received.
+#
+acl_smtp_rcpt = acl_check_rcpt
+
+# This option defines the access control list that is run when an
+# SMTP DATA command is received.
+#
+acl_smtp_data = acl_check_data
+
+# If you want unqualified recipient addresses to be qualified with a different
+# domain to unqualified sender addresses, specify the recipient domain here.
+# If this option is not set, the qualify_domain value is used.
+#
+# qualify_recipient =
+
+# The following line must be uncommented if you want Exim to recognize
+# addresses of the form "user@[10.11.12.13]" that is, with a "domain literal"
+# (an IP address) instead of a named domain. The RFCs still require this form,
+# but it makes little sense to permit mail to be sent to specific hosts by
+# their IP address in the modern Internet. This ancient format has been used
+# by those seeking to abuse hosts by using them for unwanted relaying. If you
+# really do want to support domain literals, uncomment the following line, and
+# see also the "domain_literal" router.
+#
+# allow_domain_literals
+
+.ifndef DC_minimaldns
+# The setting below causes Exim to do a reverse DNS lookup on all incoming
+# IP calls, in order to get the true host name. If you feel this is too
+# expensive, you can specify the networks for which a lookup is done, or
+# remove the setting entirely.
+#
+host_lookup = *
+.endif
+
+# The settings below, which are actually the same as the defaults in the
+# code, cause Exim to make RFC 1413 (ident) callbacks for all incoming SMTP
+# calls. You can limit the hosts to which these calls are made, and/or change
+# the timeout that is used. If you set the timeout to zero, all RFC 1413 calls
+# are disabled. RFC 1413 calls are cheap and can provide useful information
+# for tracing problem messages, but some hosts and firewalls have problems
+# with them. This can result in a timeout instead of an immediate refused
+# connection, leading to delays on starting up an SMTP session.
+#
+rfc1413_hosts = *
+rfc1413_query_timeout = 30s
+
+# By default, Exim expects all envelope addresses to be fully qualified, that
+# is, they must contain both a local part and a domain. If you want to accept
+# unqualified addresses (just a local part) from certain hosts, you can specify
+# these hosts by setting one or both of
+#
+# sender_unqualified_hosts =
+# recipient_unqualified_hosts =
+#
+# to control sender and recipient addresses, respectively. When this is done,
+# unqualified addresses are qualified using the settings of qualify_domain
+# and/or qualify_recipient (see above).
+
+# If you want Exim to support the "percent hack" for certain domains,
+# uncomment the following line and provide a list of domains. The "percent
+# hack" is the feature by which mail addressed to x%y@z (where z is one of
+# the domains listed) is locally rerouted to x@y and sent on. If z is not one
+# of the "percent hack" domains, x%y is treated as an ordinary local part. This
+# hack is rarely needed nowadays; you should not enable it unless you are sure
+# that you really need it.
+#
+# percent_hack_domains =
+
+# When Exim can neither deliver a message nor return it to sender, it "freezes"
+# the delivery error message (aka "bounce message"). There are also other
+# circumstances in which messages get frozen. They will stay on the queue for
+# ever unless one of the following options is set.
+
+# This option unfreezes frozen bounce messages after two days, tries
+# once more to deliver them, and ignores any delivery failures.
+#
+ignore_bounce_errors_after = 2d
+
+# This option cancels (removes) frozen messages that are older than a week.
+#
+timeout_frozen_after = 7d
+
+freeze_tell = postmaster
+
+# uucp should be able to set envelope-from to arbitrary values
+trusted_users = uucp
+
+# uncomment this to get the Debian version in the SMTP dialog
+# smtp_banner = "${primary_hostname} ESMTP Exim ${version_number} (Debian package DEBCONFpackageversionDEBCONF) ${tod_full}"
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/main/03_exim4-config-medium_tlsoptions b/debian/exim4-config-medium/debian/config/conf.d/conf.d/main/03_exim4-config-medium_tlsoptions
new file mode 100644
index 0000000..9c07b50
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/main/03_exim4-config-medium_tlsoptions
@@ -0,0 +1,30 @@
+# Example for TLS/SSL configuration.
+
+# See /usr/share/doc/exim4-base/README.TLS* for explanations.
+
+# Defines what hosts to 'advertise' AUTHentication to when they connect
+# via TLS. Setting this to * will advertise this functionality to all
+# hosts that connect with TLS and this is a good default
+#
+# hostlist auth_over_tls_hosts = *
+
+# Defines that you want to log what cipher your exim and the peer's mailer
+# uses to encrypt the transaction. It also defines you want to log the 'DN'
+# (Distinguished Name) of the certificate of the peer.
+#
+# log_selector = +tls_cipher +tls_peerdn
+
+# Defines what hosts to 'advertise' STARTTLS functionality to. Setting this
+# to * will advertise to all hosts that connect with EHLO, and this is a
+# good default
+#
+# tls_advertise_hosts = *
+
+# Defines where your SSL-certificate and SSL-Private Key are located.
+# This requires a full path. The files pointed to must be kept 'secret'
+# and should be owned my root.mail mode 640 (-rw-r-----). Usually the
+# exim-gencert script takes care of these prerequisites.
+#
+# tls_certificate = CONFDIR/exim.crt
+# tls_privatekey = CONFDIR/exim.key
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/retry/00_exim4-config-medium_header b/debian/exim4-config-medium/debian/config/conf.d/conf.d/retry/00_exim4-config-medium_header
new file mode 100644
index 0000000..e2bb4a4
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/retry/00_exim4-config-medium_header
@@ -0,0 +1,7 @@
+
+######################################################################
+# RETRY CONFIGURATION #
+######################################################################
+
+begin retry
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/retry/30_exim4-config-medium b/debian/exim4-config-medium/debian/config/conf.d/conf.d/retry/30_exim4-config-medium
new file mode 100644
index 0000000..0ade295
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/retry/30_exim4-config-medium
@@ -0,0 +1,14 @@
+
+# This single retry rule applies to all domains and all errors. It specifies
+# retries every 15 minutes for 2 hours, then increasing retry intervals,
+# starting at 1 hour and increasing each time by a factor of 1.5, up to 16
+# hours, then retries every 6 hours until 4 days have passed since the first
+# failed delivery.
+
+# Domain Error Retries
+# ------ ----- -------
+
+* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
+
+
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/rewrite/00_exim4-config-medium_header b/debian/exim4-config-medium/debian/config/conf.d/conf.d/rewrite/00_exim4-config-medium_header
new file mode 100644
index 0000000..a32db17
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/rewrite/00_exim4-config-medium_header
@@ -0,0 +1,7 @@
+
+######################################################################
+# REWRITE CONFIGURATION #
+######################################################################
+
+begin rewrite
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/rewrite/31_exim4-config-medium_rewriting b/debian/exim4-config-medium/debian/config/conf.d/conf.d/rewrite/31_exim4-config-medium_rewriting
new file mode 100644
index 0000000..e5944dc
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/rewrite/31_exim4-config-medium_rewriting
@@ -0,0 +1,23 @@
+
+### rewrite/31_exim4-config_rewriting
+#################################
+
+# This rewriting rule is particularily useful for dialup users who
+# don't have their own domain, but could be useful for anyone.
+# It looks up the real address of all local users in a file
+*@+local_domains ${lookup{${local_part}}lsearch{/etc/email-addresses}\
+ {$value}fail} Ffrs
+
+# The same as above, using outdated /etc/exim4/email-addresses, please
+# move its contents to /etc/email-addresses and delete
+# /etc/exim4/email-addresses
+*@+local_domains "${if exists {CONFDIR/email-addresses}\
+ {${lookup{${local_part}}lsearch{CONFDIR/email-addresses}\
+ {$value}fail}}fail}" Ffrs
+
+
+
+# hide mailname for satellite system and masqerade as DCreadhost instead
+.ifdef DCconfig_satellite
+*@+local_domains ${local_part}@DCreadhost Ffr
+.endif
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/00_exim4-config-medium_header b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/00_exim4-config-medium_header
new file mode 100644
index 0000000..531e21f
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/00_exim4-config-medium_header
@@ -0,0 +1,11 @@
+
+######################################################################
+# ROUTERS CONFIGURATION #
+# Specifies how addresses are handled #
+######################################################################
+# THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT! #
+# An address is passed to each router in turn until it is accepted. #
+######################################################################
+
+begin routers
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/100_exim4-config-medium_domain_literal b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/100_exim4-config-medium_domain_literal
new file mode 100644
index 0000000..c07a354
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/100_exim4-config-medium_domain_literal
@@ -0,0 +1,16 @@
+
+# This router routes to remote hosts over SMTP by explicit IP address,
+# when an email address is given in "domain literal" form, for example,
+# <user@[192.168.35.64]>. The RFCs require this facility. However, it is
+# little-known these days, and has been exploited by evil people seeking
+# to abuse SMTP relays. Consequently it is commented out in the default
+# configuration. If you uncomment this router, you also need to uncomment
+# allow_domain_literals above, so that Exim can recognize the syntax of
+# domain literal addresses.
+
+# domain_literal:
+# debug_print = "R: domain_literal for $local_part@$domain"
+# driver = ipliteral
+# domains = ! +local_domains
+# transport = remote_smtp
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/200_exim4-config-medium_primary b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/200_exim4-config-medium_primary
new file mode 100644
index 0000000..0a64829
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/200_exim4-config-medium_primary
@@ -0,0 +1,72 @@
+
+### router/200_exim4-config_primary
+#################################
+# This file holds the primary router, responsible for nonlocal mails
+
+.ifdef DCconfig_internet
+# configtype=internet
+#
+# deliver mail to the recipient if recipient domain is a domain we
+# relay for. We do not ignore any target hosts here since delivering to
+# a site local or even a link local address might be wanted here, and if
+# such an address has found its way into the MX record of such a domain,
+# the local admin is probably in a place where that broken MX record
+# could be fixed.
+
+dnslookup_relay_to_domains:
+ driver = dnslookup
+ domains = ! +local_domains : +relay_to_domains
+ transport = remote_smtp
+ same_domain_copy_routing = yes
+ no_more
+
+# deliver mail directly to the recipient. This router is only reached
+# for domains that we do not relay for. Since we most probably can't
+# have broken MX records pointing to site local or link local IP
+# addresses fixed, we ignore target hosts pointing to these addresses.
+
+dnslookup:
+ driver = dnslookup
+ domains = ! +local_domains
+ transport = remote_smtp
+ same_domain_copy_routing = yes
+ # ignore private rfc1918 and APIPA addresses
+ ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 : 192.168.0.0/16 :\
+ 172.16.0.0/12 : 10.0.0.0/8 : 169.254.0.0/16
+ no_more
+
+.endif
+
+
+.ifdef DCconfig_local
+# configtype=local
+#
+# Stand-alone system, so generate an error for mail to a non-local domain
+nonlocal:
+ driver = redirect
+ allow_fail
+ data = :fail: Mailing to remote domains not supported
+ no_more
+ domains = ! +local_domains
+
+.endif
+
+
+.ifdef DCconfig_smarthost DCconfig_satellite
+# configtype=smarthost or configtype=satellite
+#
+# Send all non-local mail to a single other machine (smarthost).
+smarthost:
+ driver = manualroute
+ domains = ! +local_domains
+ transport = remote_smtp
+ route_list = * DCsmarthost
+ host_find_failed = defer
+ same_domain_copy_routing = yes
+ no_more
+
+.endif
+
+
+# The "no_more" above means that all later routers are for
+# domains in the local_domains list, i.e. just like Exim 3 directors.
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/300_exim4-config-medium_real_local b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/300_exim4-config-medium_real_local
new file mode 100644
index 0000000..75fd115
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/300_exim4-config-medium_real_local
@@ -0,0 +1,8 @@
+
+real_local:
+ debug_print = "R: real_local for $local_part@$domain"
+ driver = accept
+ local_part_prefix = real-
+ check_local_user
+ transport = LOCAL_DELIVERY
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/400_exim4-config-medium_system_aliases b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/400_exim4-config-medium_system_aliases
new file mode 100644
index 0000000..cf88375
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/400_exim4-config-medium_system_aliases
@@ -0,0 +1,27 @@
+
+# This router handles aliasing using a traditional /etc/aliases file.
+#
+##### NB You must ensure that /etc/aliases exists. It used to be the case
+##### NB that every Unix had that file, because it was the Sendmail default.
+##### NB These days, there are systems that don't have it. Your aliases
+##### NB file should at least contain an alias for "postmaster".
+#
+# If any of your aliases expand to pipes or files or directories you will
+# need to set up a user and a group for these deliveries to run under. You
+# can do this by uncommenting the "user" option below (changing the user name
+# as appropriate) and adding a "group" option if necessary. Alternatively, you
+# can specify "user" on the transports that are used. Note that the transports
+# listed below are the same as are used for .forward files; you might want
+# to set up different ones for pipe and file deliveries from aliases.
+#
+system_aliases:
+ debug_print = "R: system_aliases for $local_part@$domain"
+ driver = redirect
+ allow_fail
+ allow_defer
+ data = ${lookup{$local_part}lsearch{/etc/aliases}}
+# user = list
+ file_transport = address_file
+ pipe_transport = address_pipe
+# directory_transport = address_directory
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/500_exim4-config-medium_hubuser b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/500_exim4-config-medium_hubuser
new file mode 100644
index 0000000..d568e8c
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/500_exim4-config-medium_hubuser
@@ -0,0 +1,18 @@
+
+### router/500_exim4-config_hubuser
+#################################
+
+.ifdef DCconfig_satellite
+# This router is only used for configtype=satellite.
+# It takes care to route all mail targetted to <somelocaluser@this.machine>
+# to the host where we read our mail
+#
+hub_user:
+ debug_print = "R: hub_user for $local_part@$domain"
+ driver = redirect
+ data = ${local_part}@DCreadhost
+ check_local_user
+
+.endif
+
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/600_exim4-config-medium_userforward b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/600_exim4-config-medium_userforward
new file mode 100644
index 0000000..ccaafe6
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/600_exim4-config-medium_userforward
@@ -0,0 +1,47 @@
+
+# router/600_exim4-config_userforward
+#################################
+
+# This router handles forwarding using traditional .forward files in users'
+# home directories and filtering with exim's builtin filter language.
+#
+# The no_verify setting means that this router is skipped when Exim is
+# verifying addresses. Similarly, no_expn means that this router is skipped if
+# Exim is processing an EXPN command.
+#
+# The check_ancestor option means that if the forward file generates an
+# address that is an ancestor of the current one, the current one gets
+# passed on instead. This covers the case where A is aliased to B and B
+# has a .forward file pointing to A.
+#
+# The four transports specified at the end are those that are used when
+# forwarding generates a direct delivery to a directory, or a file, or to a
+# pipe, or sets up an auto-reply, respectively.
+#
+userforward:
+ debug_print = "R: userforward for $local_part@$domain"
+ driver = redirect
+ check_local_user
+ file = $home/.forward
+ no_verify
+ no_expn
+ check_ancestor
+ allow_filter
+ directory_transport = address_directory
+ file_transport = address_file
+ pipe_transport = address_pipe
+ reply_transport = address_reply
+ skip_syntax_errors
+ syntax_errors_to = real-$local_part@$domain
+ syntax_errors_text = \
+ This is an automatically generated message. An error has\n\
+ been found in your .forward file. Details of the error are\n\
+ reported below. While this error persists, you will receive\n\
+ a copy of this message for every message that is addressed\n\
+ to you. If your .forward file is a filter file, or if it is\n\
+ a non-filter file containing no valid forwarding addresses,\n\
+ a copy of each incoming message will be put in your normal\n\
+ mailbox. If a non-filter file contains at least one valid\n\
+ forwarding address, forwarding to the valid addresses will\n\
+ happen, and those will be the only deliveries that occur.
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/700_exim4-config-medium_procmail b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/700_exim4-config-medium_procmail
new file mode 100644
index 0000000..7a56894
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/700_exim4-config-medium_procmail
@@ -0,0 +1,10 @@
+
+procmail:
+ debug_print = "R: procmail for $local_part@$domain"
+ driver = accept
+ check_local_user
+ transport = procmail_pipe
+ require_files = ${local_part}:${home}/.procmailrc:+/usr/bin/procmail
+ no_verify
+ no_expn
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/800_exim4-config-medium_maildrop b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/800_exim4-config-medium_maildrop
new file mode 100644
index 0000000..1db2b90
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/800_exim4-config-medium_maildrop
@@ -0,0 +1,13 @@
+
+### router/800_exim4-config_maildrop
+#################################
+
+maildrop:
+ debug_print = "R: maildrop for $local_part@$domain"
+ driver = accept
+ check_local_user
+ transport = maildrop_pipe
+ require_files = ${local_part}:${home}/.mailfilter:+/usr/bin/maildrop
+ no_verify
+ no_expn
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/900_exim4-config-medium_local_user b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/900_exim4-config-medium_local_user
new file mode 100644
index 0000000..0f6f4e8
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/900_exim4-config-medium_local_user
@@ -0,0 +1,13 @@
+
+### router/900_exim4-config_local_user
+#################################
+
+local_user:
+ debug_print = "R: local_user for $local_part@$domain"
+ driver = accept
+ check_local_user
+ local_parts = ! root
+ transport = LOCAL_DELIVERY
+
+
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/mmm_mail4root b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/mmm_mail4root
new file mode 100644
index 0000000..63b2749
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/router/mmm_mail4root
@@ -0,0 +1,16 @@
+
+### router/mmm_mail4root
+#################################
+# deliver mail addressed to root to /var/mail/mail as user mail:mail
+# if it was not redirected in /etc/aliases or by other means
+# Exim cannot deliver as root since 4.24 (FIXED_NEVER_USERS)
+
+mail4root:
+ debug_print = "R: mail4root for $local_part@$domain"
+ driver = redirect
+ data = /var/mail/mail
+ file_transport = address_file
+ local_parts = root
+ user = mail
+ group = mail
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/00_exim4-config-medium_header b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/00_exim4-config-medium_header
new file mode 100644
index 0000000..48e45da
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/00_exim4-config-medium_header
@@ -0,0 +1,13 @@
+
+######################################################################
+# TRANSPORTS CONFIGURATION #
+######################################################################
+# ORDER DOES NOT MATTER #
+# Only one appropriate transport is called for each delivery. #
+######################################################################
+
+# A transport is used only when referenced from a router that successfully
+# handles an address.
+
+begin transports
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_address_file b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_address_file
new file mode 100644
index 0000000..82b55e2
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_address_file
@@ -0,0 +1,11 @@
+
+# This transport is used for handling deliveries directly to files that are
+# generated by aliasing or forwarding.
+#
+address_file:
+ debug_print = "T: address_file for $local_part@$domain"
+ driver = appendfile
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_address_pipe b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_address_pipe
new file mode 100644
index 0000000..cb01c37
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_address_pipe
@@ -0,0 +1,12 @@
+
+# This transport is used for handling pipe deliveries generated by alias or
+# .forward files. If the commands fails and produces any output on standard
+# output or standard error streams, the output is returned to the sender
+# of the message as a delivery error.
+# You can set different transports for aliases and forwards if you want to
+# - see the references to address_pipe in the routers section above.
+address_pipe:
+ debug_print = "T: address_pipe for $local_part@$domain"
+ driver = pipe
+ return_fail_output
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_address_reply b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_address_reply
new file mode 100644
index 0000000..b2b8862
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_address_reply
@@ -0,0 +1,8 @@
+
+# This transport is used for handling autoreplies generated by the filtering
+# option of the userforward router.
+#
+address_reply:
+ debug_print = "T: autoreply for $local_part@$domain"
+ driver = autoreply
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_mail_spool b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_mail_spool
new file mode 100644
index 0000000..21dfae4
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_mail_spool
@@ -0,0 +1,17 @@
+
+### transport/30_exim4-config_mail_spool
+
+# This transport is used for local delivery to user mailboxes in traditional
+# BSD mailbox format.
+#
+mail_spool:
+ debug_print = "T: appendfile for $local_part@$domain"
+ driver = appendfile
+ file = /var/mail/$local_part
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+ group = mail
+ mode = 0660
+ mode_fail_narrower = false
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_maildir_home b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_maildir_home
new file mode 100644
index 0000000..3d25c30
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_maildir_home
@@ -0,0 +1,17 @@
+
+### transport/30_exim4-config_maildir_home
+
+# Use this instead of mail_spool if you want to to deliver to Maildir in
+# home-directory - change the definition of LOCAL_DELIVERY
+#
+maildir_home:
+ debug_print = "T: maildir_home for $local_part@$domain"
+ driver = appendfile
+ directory = $home/Maildir
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+ maildir_format
+ mode = 0600
+ mode_fail_narrower = false
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_maildrop_pipe b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_maildrop_pipe
new file mode 100644
index 0000000..0ba27bc
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_maildrop_pipe
@@ -0,0 +1,10 @@
+
+maildrop_pipe:
+ debug_print = "T: maildrop_pipe for $local_part@$domain"
+ driver = pipe
+ path = "/bin:/usr/bin:/usr/local/bin"
+ command = "/usr/bin/maildrop"
+ return_path_add
+ delivery_date_add
+ envelope_to_add
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_procmail_pipe b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_procmail_pipe
new file mode 100644
index 0000000..5fb03ff
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_procmail_pipe
@@ -0,0 +1,10 @@
+
+procmail_pipe:
+ debug_print = "T: procmail_pipe for $local_part@$domain"
+ driver = pipe
+ path = "/bin:/usr/bin:/usr/local/bin"
+ command = "/usr/bin/procmail"
+ return_path_add
+ delivery_date_add
+ envelope_to_add
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_remote_smtp b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_remote_smtp
new file mode 100644
index 0000000..62ab68e
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/30_exim4-config-medium_remote_smtp
@@ -0,0 +1,14 @@
+
+### transport/30_exim4-config_remote_smtp
+#################################
+# This transport is used for delivering messages over SMTP connections.
+remote_smtp:
+ debug_print = "T: remote_smtp for $local_part@$domain"
+ driver = smtp
+# hosts_try_auth = DCsmarthost
+
+# To use SMTP AUTH when sending to your smarthost, uncomment the above line,
+# "hosts_try_auth = DCsmarthost" and add the necessary information (password,
+# etc.) to the passwd.client file.
+# /usr/share/doc/exim4-base/README.SMTP-AUTH
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/35_exim4-config-medium_address_directory b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/35_exim4-config-medium_address_directory
new file mode 100644
index 0000000..94541a4
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/conf.d/transport/35_exim4-config-medium_address_directory
@@ -0,0 +1,13 @@
+# This transport is used for handling file addresses generated by alias
+# or .forward files if the path ends in "/", which causes it to be treated
+# as a directory name rather than a file name.
+
+address_directory:
+ debug_print = "T: address_directory for $local_part@$domain"
+ driver = appendfile
+ envelope_to_add = true
+ return_path_add = true
+ check_string = ""
+ escape_string = ""
+ maildir_format
+
diff --git a/debian/exim4-config-medium/debian/config/conf.d/default_acl b/debian/exim4-config-medium/debian/config/conf.d/default_acl
new file mode 100644
index 0000000..452615c
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/conf.d/default_acl
@@ -0,0 +1,48 @@
+Access Control in the default configuration
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+The Debian exim 4 package comes with a default configuration that
+allows flexible access control and blacklisting of sites and hosts.
+The acls involved can be found in /etc/exim4/conf.d/acl with the file
+names 20_exim4-config_whitelist_local_deny and 30_exim4-config_check_rcpt,
+thus all rejections of messages due to this mechanism happen at RCPT
+time. Local configuration of the mechanisms happen through data files
+in /etc/exim4, so there is normally no need to change the files in the
+acl subdirectory.
+
+/etc/exim4/local_sender_blacklist contains a list of envelope senders
+whose messages will be denied with the error message "locally
+blacklisted". This is a full exim 4 address list, and all available
+features can be used. This includes negative items, and so it is
+possible to exclude addresses from being blacklisted. For convenience,
+as an additional method to whitelist addresses from being blocked, an
+explicit whitelist is read in from /etc/exim4/local_sender_whitelist.
+Entries in the whitelist override corresponding blacklist entries.
+
+In the blacklist, the trick is to read a line break as "or" if it
+follows a positive item, and as "and" if it follows a negative item.
+
+For example, a /etc/exim4/local_sender_blacklist
+
+domain1.example
+!local@domain2.example
+domain2.example
+domain3.example
+
+Exim just evaluates left to right (or up-down in the file listing
+context), so you don't get the same kind of operator binding as in a
+programming language.
+
+/etc/exim4/local_host_blacklist contains a list of IP addresses,
+networks and host names whose messages will be denied with the error
+message "locally blacklisted". This is a full exim 4 host list. Again,
+negative items can be used here, and there is also an explicit
+whitelist read in from /etc/exim4/local_host_whitelist, and whitelist
+entries override blacklistings.
+
+The example access list shipped in
+/usr/share/doc/exim4-config/examples/acl/30_exim4-config_example_check_rcpt
+includes a bunch of dnslists configured to warn and/or deny incoming
+messages. Some of these lists have a corresponding whitelist, read
+in from /etc/exim4/local_$DNSLISTNAME_whitelist which allows the local
+administrator to override dnslist entries for domains or IP addresses
+that should be able to send mail despite the dnslist entry.
diff --git a/debian/exim4-config-medium/debian/config/default_acl b/debian/exim4-config-medium/debian/config/default_acl
new file mode 100644
index 0000000..18d75c5
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/default_acl
@@ -0,0 +1,49 @@
+Access Control in the default configuration
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+The Debian exim 4 package comes with a default configuration that
+allows flexible access control and blacklisting of sites and hosts.
+The acls involved can be found in /etc/exim4/conf.d/acl with the file
+names 20_exim4-config-medium_whitelist_local_deny and
+30_exim4-config-medium_check_rcpt,
+thus all rejections of messages due to this mechanism happen at RCPT
+time. Local configuration of the mechanisms happen through data files
+in /etc/exim4, so there is normally no need to change the files in the
+acl subdirectory.
+
+/etc/exim4/local_sender_blacklist contains a list of envelope senders
+whose messages will be denied with the error message "locally
+blacklisted". This is a full exim 4 address list, and all available
+features can be used. This includes negative items, and so it is
+possible to exclude addresses from being blacklisted. For convenience,
+as an additional method to whitelist addresses from being blocked, an
+explicit whitelist is read in from /etc/exim4/local_sender_whitelist.
+Entries in the whitelist override corresponding blacklist entries.
+
+In the blacklist, the trick is to read a line break as "or" if it
+follows a positive item, and as "and" if it follows a negative item.
+
+For example, a /etc/exim4/local_sender_blacklist
+
+domain1.example
+!local@domain2.example
+domain2.example
+domain3.example
+
+Exim just evaluates left to right (or up-down in the file listing
+context), so you don't get the same kind of operator binding as in a
+programming language.
+
+/etc/exim4/local_host_blacklist contains a list of IP addresses,
+networks and host names whose messages will be denied with the error
+message "locally blacklisted". This is a full exim 4 host list. Again,
+negative items can be used here, and there is also an explicit
+whitelist read in from /etc/exim4/local_host_whitelist, and whitelist
+entries override blacklistings.
+
+The example access list shipped in
+/usr/share/doc/exim4-config-medium/examples/acl/30_exim4-config-medium_example_check_rcpt
+includes a bunch of dnslists configured to warn and/or deny incoming
+messages. Some of these lists have a corresponding whitelist, read
+in from /etc/exim4/local_$DNSLISTNAME_whitelist which allows the local
+administrator to override dnslist entries for domains or IP addresses
+that should be able to send mail despite the dnslist entry.
diff --git a/debian/exim4-config-medium/debian/config/update-exim4.conf b/debian/exim4-config-medium/debian/config/update-exim4.conf
new file mode 100755
index 0000000..0811288
--- /dev/null
+++ b/debian/exim4-config-medium/debian/config/update-exim4.conf
@@ -0,0 +1,205 @@
+#!/bin/sh
+# update-exim4.conf(8) - Generate /var/lib/exim4/config.autogenerated
+
+
+# exit immediately if /etc/exim4/exim4.conf exists
+[ -e /etc/exim4/exim4.conf ] && exit 0
+
+UPEX4C_confdir="/etc/exim4"
+UPEX4C_sections="main acl router transport retry rewrite auth"
+EXIM="/usr/sbin/exim4"
+
+UPEX4C_verbose=no
+UPEX4C_comments=no
+UPEX4C_autoconfigfile=/var/lib/exim4/config.autogenerated
+UPEX4C_outputfile="${UPEX4C_autoconfigfile}"
+UPEX4C_version=""
+
+usage() {
+cat <<EOF
+$0 - Generate exim4 configuration files
+ Options:
+ -v|--verbose - Enable verbose mode, tell about ignored files
+ -h|--help - Show this message
+ --keepcomments - Do not remove comment lines
+ --removecomments - Remove comment lines
+ -o|--output file - write output to file instead of ${UPEX4C_outputfile}
+ -d|--confdir directory - read input from given directory instead of ${UPEX4C_confdir}
+EOF
+}
+
+## Parse commandline
+TEMP=$(getopt -n update-exim4.conf \
+ -l keepcomments,removecomments,output:,confdir:,help,verbose -- \
+ +o:d:vh "$@")
+
+if test "$?" != 0; then
+ echo "Terminating..." >&2
+ exit 1
+fi
+
+eval set -- ${TEMP}
+while test "$1" != "--"; do
+ case $1 in
+ -h|--help)
+ usage
+ exit 0
+ ;;
+ -v|--verbose)
+ UPEX4C_verbose=yes
+ ;;
+ --keepcomments)
+ UPEX4C_comments=yes
+ ;;
+ --removecomments)
+ UPEX4C_comments=no
+ ;;
+ -o|--output)
+ shift
+ UPEX4C_outputfile="$1"
+ ;;
+ -d|--confdir)
+ shift
+ UPEX4C_confdir="$1"
+ ;;
+ esac
+ shift
+done
+shift
+
+# No non-option arguments allowed.
+if [ "$#" -ne 0 ]; then
+ echo "No non option arguments ($@) allowed" >&2
+ usage >&2
+ exit 1
+fi
+
+UPEX4C_confd=$UPEX4C_confdir/conf.d
+
+[ -d ${UPEX4C_confd} ] || \
+{ printf "$0: Error, no ${UPEX4C_confd}, exiting.\n" 1>&2 ; exit 1 ; }
+
+[ -d `dirname $UPEX4C_outputfile` ] || \
+{ printf "$0: Error, missing `dirname $UPEX4C_outputfile`, exiting.\n" 1>&2 ; exit 1 ; }
+
+. $UPEX4C_confdir/update-exim4.conf.conf || \
+{ printf "$0: Error, no $UPEX4C_confdir/update-exim4.conf.conf, exiting.\n" 1>&2 ; exit 1 ; }
+
+[ "x${CFILEMODE}" = "x" ] && CFILEMODE=644
+
+mailname=`cat /etc/mailname | head -n 1`
+
+# add localhost and mailname, get rid of spaces and trailing colons
+local_domains="`echo ${mailname}:localhost:${dc_other_hostnames} | \
+ sed -e 's[: ]*$' -e 's *'`"
+
+UPEX4C_internal_tmp=`tempfile -m600 -p ex4`
+
+trap "rm -f ${UPEX4C_internal_tmp}" 0 2 15
+
+# run-parts emulation, stolen from Branden's /etc/X11/Xsession
+# Addition: Use file.rul instead if file if it exists.
+run_parts () {
+ # reset LC_COLLATE
+ unset LANG LC_COLLATE LC_ALL
+
+ if [ -z "$1" ]; then
+ errormessage "$0: internal run_parts called without an argument"
+ fi
+ if [ ! -d "$1" ]; then
+ errormessage "$0: internal run_parts called, but $1 does not exist or is not a directory."
+ fi
+ for F in $(ls $1); do
+ if expr "$F" : '[[:alnum:]_-]\+$' > /dev/null 2>&1; then
+ if [ -f "$1/$F" ] ; then
+ if [ -f "$1/${F}.rul" ] ; then
+ echo "$1/${F}.rul"
+ else
+ echo "$1/$F"
+ fi
+ fi
+ fi
+ done;
+}
+# also from Branden
+errormessage () {
+ # pretty-print messages of arbitrary length (no trailing newline)
+ echo "$*" | fold -s -w ${COLUMNS:-80} >&2;
+}
+
+cat_parts() {
+ if [ -z "$1" ]; then
+ errormessage "$0: internal cat_parts called without an argument"
+ fi
+ if [ ! -d "$1" ]; then
+ errormessage "$0: internal cat_parts called, but $1 does not exist or is not a directory."
+ fi
+ for file in `run_parts $1`; do
+ echo "#####################################################"
+ echo "### $file"
+ echo "#####################################################"
+ cat $file
+ echo "#####################################################"
+ echo "### end $file"
+ echo "#####################################################"
+ done
+}
+
+gentmpconf() {
+ touch ${UPEX4C_outputfile}.tmp
+ chown root:Debian-exim ${UPEX4C_outputfile}.tmp
+ [ -e ${UPEX4C_outputfile} ] && chown root:Debian-exim ${UPEX4C_outputfile}
+ chmod 640 ${UPEX4C_outputfile}.tmp
+ [ -e ${UPEX4C_outputfile} ] && chmod 640 ${UPEX4C_outputfile}
+}
+
+removecomments(){
+ if [ "x${UPEX4C_comments}" = "xno" ] ; then
+ egrep -v '^[[:space:]]*#' | sed -e '/^$/N;/\n$/D' ;
+ else
+ cat
+ fi
+}
+
+gentmpconf
+
+cat << EOF > ${UPEX4C_outputfile}.tmp
+#########
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# this file is generated dynamically from the files in
+# CONFDIR/conf.d/ and /etc/exim4/update-exim4.conf.conf
+# Any changes you make here will be lost.
+# See /usr/share/doc/exim4-base/README.Debian and update-exim4.conf(8)
+# for instructions of customization.
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+#########
+EOF
+
+for i in ${UPEX4C_sections} ; do
+ echo "# begin processing $i #####"
+ cat_parts ${UPEX4C_confd}/$i
+ echo "# end of $i #####"
+done | \
+removecomments \
+ >> ${UPEX4C_outputfile}.tmp
+
+# test validity if called without -o
+if [ "x${UPEX4C_outputfile}" = "x${UPEX4C_autoconfigfile}" ] && \
+ [ -x ${EXIM} ] ; then
+ if ! ${EXIM} -C "${UPEX4C_outputfile}.tmp" -bV > /dev/null ; then
+ errormessage "Invalid new configfile ${UPEX4C_outputfile}.tmp"
+ errormessage "not installing ${UPEX4C_outputfile}.tmp to ${UPEX4C_outputfile}"
+ exit 1
+ fi
+fi
+
+mv -f ${UPEX4C_outputfile}.tmp ${UPEX4C_outputfile}
+chmod ${CFILEMODE} ${UPEX4C_outputfile}
diff --git a/debian/exim4-config-medium/debian/control b/debian/exim4-config-medium/debian/control
new file mode 100644
index 0000000..d6a94bb
--- /dev/null
+++ b/debian/exim4-config-medium/debian/control
@@ -0,0 +1,18 @@
+Source: exim4-config-medium
+Section: mail
+Priority: optional
+Maintainer: locally built <root@localhost>
+Standards-Version: 3.6.1.0
+Build-Depends-Indep: debhelper (>= 4.0.1)
+
+Package: exim4-config-medium
+Architecture: all
+Priority: important
+Conflicts: exim4-config-2,exim4-config
+Replaces: exim4-config-2
+Provides: exim4-config-2
+Depends: ${shlibs:Depends}, ${misc:Depends}, exim4-base, adduser
+Description: locally modified Debian configuration for exim4 (medium flavour)
+ This package provides the configuration for the exim4 daemon
+ packages. It is a locally built special version derived from
+ exim4-config.
diff --git a/debian/exim4-config-medium/debian/copyright b/debian/exim4-config-medium/debian/copyright
new file mode 100644
index 0000000..1910196
--- /dev/null
+++ b/debian/exim4-config-medium/debian/copyright
@@ -0,0 +1,15 @@
+This is a custom made configuration package for Debian GNU/Linux's
+prepackaged version of exim4, a powerful yet easy to configure mail
+transport agent.
+
+This package was originally made by create-custom-package, a script
+written by Marc Haber <mh+debian-packages@zugschlus.de> using work
+provided by Andreas Metzler <ametzler@downhill.at.eu.org>.
+create-custom-package uses the exim4 source package to build this
+source package.
+
+The files in this package are free software; you can redistribute them
+and/or modify them under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2, or (at
+your option) any later version. Full text of the license can be found
+at /usr/share/common-licenses/GPL
diff --git a/debian/exim4-config-medium/debian/email-addresses b/debian/exim4-config-medium/debian/email-addresses
new file mode 100644
index 0000000..8e4f2cb
--- /dev/null
+++ b/debian/exim4-config-medium/debian/email-addresses
@@ -0,0 +1,9 @@
+# This is /etc/email-addresses. It is part of the exim package
+#
+# This file contains email addresses to use for outgoing mail. Any local
+# part not in here will be qualified by the system domain as normal.
+#
+# It should contain lines of the form:
+#
+#user: someone@isp.com
+#otheruser: someoneelse@anotherisp.com
diff --git a/debian/exim4-config-medium/debian/exim4-config-medium.dirs b/debian/exim4-config-medium/debian/exim4-config-medium.dirs
new file mode 100644
index 0000000..d76fa70
--- /dev/null
+++ b/debian/exim4-config-medium/debian/exim4-config-medium.dirs
@@ -0,0 +1,6 @@
+/usr/sbin
+/etc/exim4/conf.d
+/etc/ppp/ip-up.d
+/usr/share/doc/exim4-config-medium/examples
+/usr/share/man/man8
+/var/lib/exim4
diff --git a/debian/exim4-config-medium/debian/exim4-config-medium.manpages b/debian/exim4-config-medium/debian/exim4-config-medium.manpages
new file mode 100644
index 0000000..6359efc
--- /dev/null
+++ b/debian/exim4-config-medium/debian/exim4-config-medium.manpages
@@ -0,0 +1,2 @@
+debian/manpages/update-exim4.conf.8
+debian/manpages/update-exim4defaults.8
diff --git a/debian/exim4-config-medium/debian/exim4-config-medium.postinst b/debian/exim4-config-medium/debian/exim4-config-medium.postinst
new file mode 100644
index 0000000..bf04dc4
--- /dev/null
+++ b/debian/exim4-config-medium/debian/exim4-config-medium.postinst
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+set -e
+
+alias stripwhitespace="sed -e 's/^[[:blank:]]*//' -e 's/[[:blank:]]*$//'"
+
+# Disable orphaned inetd-entries from exim (v3) caused by bugs #202670
+# and #182206.
+if [ "$1" = "configure" ] &&\
+ [ -x /usr/sbin/update-inetd ] && [ ! -x /usr/sbin/exim ] && \
+ egrep -q '^smtp[[:space:]]*stream[[:space:]]*tcp[[:space:]]*nowait[[:space:]]*mail[[:space:]]*/usr/sbin/+exim exim -bs' /etc/inetd.conf
+then
+ update-inetd --comment-chars \#disabled\# \
+ --pattern '/usr/sbin/exim exim -bs' --disable smtp
+fi
+if [ "$1" = "configure" ] &&\
+ ! getent passwd Debian-exim > /dev/null ; then
+ echo 'Adding system-user for exim (v4)' 1>&2
+ adduser --system --group --home /var/spool/exim4 --no-create-home \
+ --disabled-login --force-badname Debian-exim >/dev/null 2>&1
+fi
+if [ "$1" = "configure" ] ; then
+ if ! dpkg-statoverride --list /etc/exim4/passwd.client > /dev/null 2>&1
+ then
+ dpkg-statoverride --update --add root Debian-exim 0640 \
+ /etc/exim4/passwd.client
+ fi
+
+ find /etc/exim4 -user mail \( -type f -or -type d \) -print |\
+ while read i ;
+ do
+ if ! dpkg-statoverride --list "$i" > /dev/null ; then
+ chown Debian-exim "$i"
+ fi
+ done
+ find /etc/exim4 -group mail \( -type f -or -type d \) -print |\
+ while read i ;
+ do
+ if ! dpkg-statoverride --list "$i" > /dev/null ; then
+ chgrp Debian-exim "$i"
+ fi
+ done
+fi
+
+case "$1" in
+ configure)
+ # Configure Exim##############################
+ ##############################################
+
+ # generate defaultfile
+ update-exim4defaults --init
+
+ [ "x${CFILEMODE}" = "x" ] && CFILEMODE=644
+
+ [ -x /usr/sbin/update-exim4.conf ] && update-exim4.conf
+
+ ;;
+esac
+
+# remove orphaned conffile if unmodified. 4.20-2.
+if [ "$1" = "configure" ] && \
+ dpkg --compare-versions "$2" le-nl "4.20-1" && \
+ [ -e /etc/exim4/email-addresses ] && \
+ [ `md5sum /etc/exim4/email-addresses | cut -d\ -f1` = "6bea09fbb18e4676012105fa5fc726c6" ]
+then
+ echo "Removing orphaned unmodified configfile /etc/exim4/email-addresses" 1>&2
+ rm /etc/exim4/email-addresses
+fi
+
+
+#DEBHELPER#
diff --git a/debian/exim4-config-medium/debian/exim4-config-medium.postrm b/debian/exim4-config-medium/debian/exim4-config-medium.postrm
new file mode 100644
index 0000000..ee88e9a
--- /dev/null
+++ b/debian/exim4-config-medium/debian/exim4-config-medium.postrm
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+ purge)
+ rm -f /etc/exim4/update-exim4.conf.conf
+ rm -f /var/lib/exim4/config.autogenerated
+ rm -f /etc/exim4/conf.d/main/03_exim4-config-medium_neverusers \
+ /etc/exim4/conf.d/rewrite/30_exim4-config-medium_email-addresses \
+ /etc/exim4/conf.d/rewrite/35_exim4-config-medium_masquerade
+
+ # remove empty directories in /etc/exim4
+ rmdir /etc/exim4/conf.d/auth /etc/exim4/conf.d/acl \
+ /etc/exim4/conf.d/transport /etc/exim4/conf.d/main \
+ /etc/exim4/conf.d/retry /etc/exim4/conf.d/rewrite \
+ /etc/exim4/conf.d/router /etc/exim4/conf.d \
+ /etc/exim4 /var/lib/exim4 2> /dev/null || true
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-config-medium/debian/ip-up.d b/debian/exim4-config-medium/debian/ip-up.d
new file mode 100644
index 0000000..dea0e3b
--- /dev/null
+++ b/debian/exim4-config-medium/debian/ip-up.d
@@ -0,0 +1,9 @@
+#!/bin/sh
+[ -x /usr/lib/exim4/exim4 ] || exit 0
+
+[ -f /etc/default/exim4 ] && . /etc/default/exim4
+
+if [ "x${QUEUERUNNER}" != "xno" ] ; then
+# Flush exim queue
+ /usr/sbin/exim4 -qf ${QUEUERUNNEROPTIONS} ${COMMONOPTIONS}
+fi
diff --git a/debian/exim4-config-medium/debian/manpages/update-exim4.conf.8 b/debian/exim4-config-medium/debian/manpages/update-exim4.conf.8
new file mode 100644
index 0000000..3a5accf
--- /dev/null
+++ b/debian/exim4-config-medium/debian/manpages/update-exim4.conf.8
@@ -0,0 +1,172 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH UPDATE-EXIM4.CONF 8 "July 24, 2003" EXIM4
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+update\-exim4.conf \- Generate exim4 configuration files.
+.SH SYNOPSIS
+.B update\-exim4.conf [\-v|\-\-verbose] [\-h|\-\-help] [\-\-keepcomments] [\-\-removecomments] [\-o|\-\-output file]
+
+.SH OPTIONS
+.TP
+.I \-v|\-\-verbose
+Enable verbose mode, tell about ignored, user modified files
+.TP
+.I \-h|\-\-help
+Show short help message and exit
+.TP
+.I \-\-keepcomments
+Do not remove comment lines from the output file.
+.TP
+.I \-\-removecomments
+Remove comment lines from the output file. [Default]
+.TP
+.I \-o|\-\-output file
+Write output to file instead of /var/lib/exim4/config.autogenerated.
+
+.SH DESCRIPTION
+The script
+.B update\-exim4.conf
+generates the main configuration files
+.I /var/lib/exim4/config.autogenerated
+for
+.B Exim v4
+by merging the data in the template files in the
+.I /etc/exim4/conf.d
+directory tree and
+.I /etc/exim4/update\-exim4.conf.conf
+to the output file
+.I /var/lib/exim4/config.autogenerated.
+.PP
+.B update\-exim4.conf
+sorts the files in the subdirectories main, acl, router, transport, retry,
+rewrite and auth of /etc/exim4/conf.d in the lexical sort order, concatenates
+them and replaces the patterns DEBCONFsomethingDEBCONF.
+It does not change the other contents of these files.
+This makes it very simple to make small changes to the configuration and
+still have the benefits of debconf.
+
+On the other hand if you don't want to manage exim4.conf with debconf
+install your own handcrafted version as /etc/exim4/exim4.conf.
+- Exim will use this file if it exists and ignore the autogenerated one.
+Additionally you might want to set
+.I dc_eximconfig_configtype=none
+in /etc/exim4/update\-exim4.conf.conf to stop debconf from asking you questions about exim4.
+
+.B update\-exim4.conf
+exits silently and does nothing if /etc/exim4/exim4.conf exists.
+
+.B update\-exim4.conf
+ignores all files in the conf.d directory that have a filename which
+does not consist only of letters, numbers, underscores and hyphens
+([:alnum:]_\-), similar to
+.B run\-parts(8).
+For easy interaction with packages extending Exim additionally
+/etc/exim4/conf.d/foo/bar.rul is used instead of
+/etc/exim4/conf.d/foo/bar if it exists!
+
+If
+.B update\-exim4.conf
+is called without the option \-o it checks the validity of the
+freshly generated configurationfile and exits with an error instead
+of installing the file to /var/lib/exim4/config.autogenerated.
+
+.SH EXAMPLES
+You want to be able to check exim's queue as normal user: Generate a new
+file, e.g. /etc/exim4/conf.d/main/40_local_mailq, containing only the line
+.I queue_list_requires_admin = false
+
+.SH NOTES
+.B update\-exim4.conf
+changes the file permissions of the output file to the value of the environment
+variable CFILEMODE, if CFILEMODE is set neither in
+/etc/exim4/update\-exim4.conf.conf nor in the environment it defaults to 0644.
+Change this to 0640 if you're keeping sensible information (LDAP credentials
+et. al.) in there.
+
+.SH FILES
+.B update\-exim4.conf
+manages these files:
+.TP
+.I /var/lib/exim4/config.autogenerated
+Exim's main configuration file
+
+.SH REPLACEMENT PATTERNS
+.B update\-exim4.conf
+know about these identifiers:
+.TP
+.I DEBCONFrelay_domainsDEBCONF
+is replaced by the contents of dc_relay_domains in
+/etc/exim4/update\-exim4.conf.conf
+.TP
+.I DEBCONFrelay_netsDEBCONF
+is replaced by the contents of dc_relay_nets in
+/etc/exim4/update\-exim4.conf.conf
+.TP
+.I DEBCONFvisiblenameDEBCONF
+holds the contents of (the first line of) /etc/mailname
+.TP
+.I DEBCONFreadhostDEBCONF
+corresponds to dc_readhost in /etc/exim4/update\-exim4.conf.conf and holds
+the visible mailname for satellite\-systems.
+.TP
+.I DEBCONFsmarthostDEBCONF
+corresponds to dc_smarthost in /etc/exim4/update\-exim4.conf.conf and
+contains the name of the SMTP smarthost that takes care of outgoing mail.
+.TP
+.I DEBCONFconfigtypeDEBCONF
+dc_eximconfig_configtype in /etc/exim4/update\-exim4.conf.conf.
+.TP
+.I DEBCONFpackageversionDEBCONF
+contains the complete Debian version-number of the exim4-config-medium package, you
+could use this in smtp_banner or received_header_text.
+.TP
+.I DEBCONFlistenonpublicDEBCONF
+If dc_local_interfaces is set to nonempty value this is replaced with
+\(lqlocal_interfaces = <value of dc_local_interfaces>\(rq
+and a empty string otherwise.
+.TP
+.I DEBCONFminimaldnsDEBCONF
+is replaced with \(lqDC_minimaldns = 1\(rq if dc_minimaldns is set to true
+and to an empty string otherwise.
+.TP
+.I DEBCONFnever_usersDEBCONF
+is replaced with the value of dc_never_users in
+/etc/exim4/update\-exim4.conf.conf i.e. with \(lqnever_users = root\(rq
+if mail for root is redirected to an unpriviledged account and
+with \(lq# never_users = root\(rq otherwise.
+
+.SH RECOMMENDED USAGE
+If you are running exim as daemon (that is the default setup of the Debian
+packages) you should not invoke
+.B update\-exim4.conf
+directly when exim is running, because the forked processes exim starts
+for SMTP receiving or queue running would use the new configuration file,
+while the original main exim-daemon would still use the old configuration
+file. You should use
+.I invoke\-rc.d exim4 reload
+instead.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/ and for general notes and details about interaction
+with debconf
+/usr/share/doc/exim4\-base/README.Debian
+
+.SH AUTHOR
+Andreas Metzler <ametzler at downhill.at.eu.org>
diff --git a/debian/exim4-config-medium/debian/manpages/update-exim4defaults.8 b/debian/exim4-config-medium/debian/manpages/update-exim4defaults.8
new file mode 100644
index 0000000..05ae587
--- /dev/null
+++ b/debian/exim4-config-medium/debian/manpages/update-exim4defaults.8
@@ -0,0 +1,162 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH UPDATE-EXIM4DEFAULTS 8 "March 26, 2003" EXIM4
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+update\-exim4defaults \- Manage exim4 daemon default file.
+.SH SYNOPSIS
+.B update\-exim4defaults
+.I [ \-\-qflags flags ]
+.I [ \-\-queuerunner combined|separate|ppp|no ]
+.I [ \-\-queuetime time ]
+.I [ \-\-commonoptions options ]
+.I [ \-\-queuerunneroptions options ]
+.I [ \-\-smtplisteneroptions options ]
+.I [ \-\-remove\-common options ]
+.I [ \-\-remove\-queue options ]
+.I [ \-\-remove\-smtp options ]
+.I [ \-\-force|\-f ]
+.I [ \-\-help|\-h ]
+.I [ \-\-init ]
+
+.SH DESCRIPTION
+.B update\-exim4defaults
+allows to set run parameters for the
+.B Exim
+daemon in
+.I /etc/default/exim4.
+Its main purpose is for interaction with packages enhancing
+.B Exim
+like virus-scanners that need to change the way the exim daemon is started.
+.PP
+
+.SH OPTIONS
+.TP
+.I \-\-help|\-h
+Print short usage instructions and exit.
+.TP
+.I \-\-qflags flags
+Set qflags, special flags given to exim directly after the \(lq\-q\(rq. See
+.B exim(8)
+for more information.
+.TP
+.I \-\-queuerunner combined|separate|ppp|no
+Should the init script start one daemon that listens on the smtp port for
+incoming connections and runs the queue at regular intervals
+.I (combined)
+, or should it start two separate daemons, one listening on the smtp port,
+the other running the queue
+.I (separate)
+, or should the queue only be run by /etc/ppp/ip\-up.d/exim4
+.I (ppp)
+, or shouldn't we run the queue at all, for example if you'd rather do this
+with
+.B cron?
+.TP
+.I \-\-queuetime time
+In which intervals should we run the queue? This passed as option
+.I \-q<qflags>time
+to Exim, e.g. \-q30m or \-qq1h.
+.TP
+.I \-\-commonoptions options
+Options passed both to queue\-running and listening instances of Exim.
+.TP
+.I \-\-queuerunneroptions options
+Options only passed to the instance of Exim running the queue.
+.TP
+.I \-\-smtplisteneroptions options
+Options only passed to the instance of Exim listening on the SMTP port.
+.TP
+.I \-\-force|\-f
+Without this option
+.B update\-exim4defaults
+exits with an error if at least one of the options \-\-queuetime,
+\-\-commonoptions, \-\-queuerunneroptions or \-\-smtplisteneroptions is used and the
+corresponding value in /etc/default/exim4 is
+.I already
+set to a nonempty value.
+.TP
+.I \-\-remove\-common option
+Try to remove the given option from COMMONOPTIONS.
+.TP
+.I \-\-remove\-queue option
+Try to remove the given option from QUEUERUNNEROPTIONS.
+.TP
+.I \-\-remove\-smtp option
+Try to remove the given option from SMTPLISTENEROPTIONS.
+.PP
+The \-\-remove\-commands cannot be used at the same time as any of \-\-commonoptions,
+\-\-queuerunneroptions or \-\-smtplisteneroptions. The \-\-remove\-commands will
+additionally remove whitespace at the begining and the end of the option and
+exchange multiple spaces wi a single one.
+.TP
+.I \-\-init
+create a default /etc/default/exim4 file and exit immediately. Unless
+.I \-\-force
+was also specified
+.B update\-exim4defaults
+exits (successfully) without doing anything if /etc/default/exim4 already
+exists. All other options are ignored.
+
+.SH EXIT STATUS
+.TP
+.I 0
+change was successfull or nothing needed to be done.
+.TP
+.I 1
+generic error: wrong options, unreadable configuration file, etc.
+.TP
+.I 2
+QUEUEINTERVAL was already set.
+.TP
+.I 4
+COMMONOPTIONS was already set.
+.TP
+.I 8
+QUEUERUNNEROPTIONS was already set.
+.TP
+.I 16
+SMTPLISTENEROPTIONS was already set.
+.TP
+.I 32
+QFLAGS was already set.
+.TP
+.I 64
+\-\-remove\-something failed, i.e. the value of the option was not changed.
+.PP
+Exit codes 2 to 32 will be summed up, if more than one unsuccesful option was
+given.
+
+.SH FILES
+.TP
+.I /etc/default/exim4
+The configuration file.
+.TP
+.I /etc/init.d/exim4
+The Exim init\-script.
+.TP
+.I /etc/ppp/ip\-up.d/exim4
+The queuerunner in this file also uses COMMONOPTIONS and QUEUERUNNEROPTIONS and
+does not run if QUEUERUNNER=no.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+Andreas Metzler <ametzler at downhill.at.eu.org>
diff --git a/debian/exim4-config-medium/debian/rules b/debian/exim4-config-medium/debian/rules
new file mode 100755
index 0000000..ef1101e
--- /dev/null
+++ b/debian/exim4-config-medium/debian/rules
@@ -0,0 +1,96 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# This file is public domain software, originally written by Joey Hess.
+#
+# This version is for a hypothetical package that builds an
+# architecture-dependant package, as well as an architecture-independent
+# package.
+
+# Uncomment this to turn on verbose mode.
+export DH_VERBOSE=1
+
+buildname=$${build:-`$(SHELL) scripts/os-type`-`$(SHELL) scripts/arch-type`}
+
+DEBIAN:=$(shell pwd)/debian
+
+configure: configure-stamp
+
+# the patches might change src/EDITME.
+configure-stamp:
+ dh_testdir
+ touch configure-stamp
+
+build-indep: build-indep-stamp
+build-indep-stamp:
+ dh_testdir
+ touch build-indep-stamp
+
+build: build-indep
+
+clean: cleanfiles
+
+cleanfiles:
+ dh_testdir
+ dh_testroot
+ rm -f build-indep-stamp configure-stamp install-stamp
+
+ # Add here commands to clean up after the build process.
+ dh_clean
+
+install: install-stamp
+install-stamp: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ install -m 755 debian/config/update-exim4.conf debian/exim4-config-medium/usr/sbin
+ install -m 644 debian/update-exim4.conf.conf debian/exim4-config-medium/etc/exim4
+ install -m 755 $(DEBIAN)/update-exim4defaults $(DEBIAN)/exim4-config-medium/usr/sbin
+ # install -m644 debian/config/exim4.conf.template debian/exim4-config-medium/etc/exim4
+
+ cd $(DEBIAN)/config/conf.d && \
+ tar cf - `find \( -path '*/CVS/*' -prune \) -or \( -type f -print \)` | \
+ { cd $(DEBIAN)/exim4-config-medium/etc/exim4/conf.d/ && \
+ tar xf - ; }
+
+ # ship a copy in examples
+ install -m644 debian/email-addresses debian/exim4-config-medium/etc/exim4
+ install -m755 debian/ip-up.d debian/exim4-config-medium/etc/ppp/ip-up.d/exim4
+
+# dh_movefiles
+ touch install-stamp
+
+# Build architecture-independent files here.
+binary-indep: build install
+ dh_testdir -i
+ dh_testroot -i
+ dh_installchangelogs -i
+ dh_installdocs -i
+ dh_installexamples -i
+ dh_installmenu -i
+ dh_installdebconf -i
+ dh_installlogrotate -i
+# dh_installemacsen -i
+ dh_installpam -i
+ dh_installmime -i
+# dh_installinit -i
+ dh_installcron -i
+# dh_installinfo -i
+# dh_undocumented -i
+ dh_installman -i
+ dh_install -i
+ dh_strip -i
+ dh_link -i
+ dh_compress -i
+ dh_fixperms -i
+# dh_makeshlibs -i
+ dh_installdeb -i
+# dh_perl -i
+ dh_shlibdeps -i
+ dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
+
+binary: binary-indep
+.PHONY: build clean binary-indep binary-arch binary install
diff --git a/debian/exim4-config-medium/debian/update-exim4.conf.conf b/debian/exim4-config-medium/debian/update-exim4.conf.conf
new file mode 100644
index 0000000..f75a557
--- /dev/null
+++ b/debian/exim4-config-medium/debian/update-exim4.conf.conf
@@ -0,0 +1,6 @@
+# /etc/exim4/update-exim4.conf.conf
+#
+# Edit this file and /etc/mailname by hand and execute update-exim4.conf
+# yourself or use 'dpkg-reconfigure exim4-config'
+
+CFILEMODE=644
diff --git a/debian/exim4-config-medium/debian/update-exim4defaults b/debian/exim4-config-medium/debian/update-exim4defaults
new file mode 100644
index 0000000..99a8da4
--- /dev/null
+++ b/debian/exim4-config-medium/debian/update-exim4defaults
@@ -0,0 +1,276 @@
+#!/bin/sh
+# update-exim4defaults(8): manage entries in /etc/default/exim4
+# per script
+
+#set -x
+
+defaultfile=/etc/default/exim4
+
+EX4DEF_INIT=false
+EX4DEF_FORCE=false
+
+
+if [ -r ${defaultfile} ]; then
+ . ${defaultfile}
+fi
+
+
+# initialize variables
+EX4DEF_QUEUERUNNER="${QUEUERUNNER}"
+EX4DEF_QUEUEINTERVAL="${QUEUEINTERVAL}"
+EX4DEF_COMMONOPTIONS="${COMMONOPTIONS}"
+EX4DEF_QUEUERUNNEROPTIONS="${QUEUERUNNEROPTIONS}"
+EX4DEF_QFLAGS="${QFLAGS}"
+EX4DEF_SMTPLISTENEROPTIONS="${SMTPLISTENEROPTIONS}"
+
+EX4DEF_FLAGOPTIONS=false
+EX4DEF_FLAGREMOVE=false
+
+ex4def_usage ()
+{
+ echo "update-exim4defaults: manage entries in /etc/default/exim4"
+ echo " usage: update-exim4defaults [[--queuerunner combined|separate|queueonly|ppp|no|nodaemon]"
+ echo " [--qflags flags ] [--queuetime time] [--commonoptions options]"
+ echo " [--queuerunneroptions options] [--smtplisteneroptions options]]"
+ echo " [--remove-common options] [--remove-queue options]"
+ echo " [--remove-smtp options]"
+ echo " [--force|-f] [--help|-h]"
+ echo " [--init]"
+}
+
+
+# used for initialzing and with --force.
+ex4def_write(){
+ EX4DEF_TMP=`tempfile -m 600 -p ex4`
+ cat << EOF > "${EX4DEF_TMP}"
+# /etc/default/exim4
+EX4DEF_VERSION='${EX4DEF_VERSION}'
+
+# 'combined' - one daemon running queue and listening on SMTP port
+# 'no' - no daemon running the queue
+# 'separate' - two separate daemons
+# 'ppp' - only run queue with /etc/ppp/ip-up.d/exim4.
+# 'nodaemon' - no daemon is started at all.
+# 'queueonly' - only a queue running daemon is started, no SMTP listener.
+# setting this to 'no' will also disable queueruns from /etc/ppp/ip-up.d/exim4
+QUEUERUNNER='${EX4DEF_QUEUERUNNER}'
+# how often should we run the queue
+QUEUEINTERVAL='${EX4DEF_QUEUEINTERVAL}'
+# options common to quez-runner and listening daemon
+COMMONOPTIONS='${EX4DEF_COMMONOPTIONS}'
+# more options for the daemon/process running the queue (applies to the one
+# started in /etc/ppp/ip-up.d/exim4, too.
+QUEUERUNNEROPTIONS='${EX4DEF_QUEUERUNNEROPTIONS}'
+# special flags given to exim directly after the -q. See exim(8)
+QFLAGS='${EX4DEF_QFLAGS}'
+# options for daemon listening on port 25
+SMTPLISTENEROPTIONS='${EX4DEF_SMTPLISTENEROPTIONS}'
+EOF
+ cat "${EX4DEF_TMP}" > "${defaultfile}"
+ rm -f "${EX4DEF_TMP}"
+}
+
+## Parse commandline
+TEMP=$(getopt -n update-exim4defaults \
+ -l qflags:,queuerunner:,queuetime:,commonoptions:,queuerunneroptions:,smtplisteneroptions:,remove-common:,remove-queue:,remove-smtp:,force,help,init -- \
+ +fh "$@")
+
+if test "$?" != 0; then
+ echo "Terminating..." >&2
+ exit 1
+fi
+
+eval set -- ${TEMP}
+while test "$1" != "--"; do
+ case $1 in
+ -f|--force)
+ EX4DEF_FORCE=true
+ ;;
+ -h|--help)
+ ex4def_usage
+ exit 0
+ ;;
+ --qflags)
+ shift
+ EX4DEF_QFLAGS="$1"
+ ;;
+ --queuerunner)
+ shift
+ EX4DEF_QUEUERUNNER="$1"
+ if ! expr match "${EX4DEF_QUEUERUNNER}" '\(ppp\|no\|combined\|nodaemon\|queueonly\|separate\)$' >/dev/null ; then
+ echo "invalid argument ${EX4DEF_QUEUERUNNER} for --queuerunner" 1>&2
+ exit 1
+ fi
+ ;;
+ --queuetime)
+ shift
+ EX4DEF_QUEUETIME="$1"
+ ;;
+ --commonoptions)
+ shift
+ EX4DEF_COMMONOPTIONS="$1"
+ EX4DEF_FLAGOPTIONS=true
+ ;;
+ --queuerunneroptions)
+ shift
+ EX4DEF_QUEUERUNNEROPTIONS="$1"
+ EX4DEF_FLAGOPTIONS=true
+ ;;
+ --smtplisteneroptions)
+ shift
+ EX4DEF_SMTPLISTENEROPTIONS="$1"
+ EX4DEF_FLAGOPTIONS=true
+ ;;
+ --remove-common)
+ shift
+ EX4DEF_REMOVECOMMON="$1"
+ EX4DEF_FLAGREMOVE=true
+ ;;
+ --remove-queue)
+ shift
+ EX4DEF_REMOVEQUEUE="$1"
+ EX4DEF_FLAGREMOVE=true
+ ;;
+ --remove-smtp)
+ shift
+ EX4DEF_REMOVESMTP="$1"
+ EX4DEF_FLAGREMOVE=true
+ ;;
+ --init)
+ EX4DEF_INIT=true
+ ;;
+ esac
+ shift
+done
+shift
+
+# No non-option arguments allowed.
+if [ "$#" -ne 0 ]; then
+ echo "No non option arguments allowed" >&2
+ ex4def_usage >&2
+ exit 1
+fi
+
+if [ "${EX4DEF_FLAGREMOVE}" = "true" ] && [ "${EX4DEF_FLAGOPTIONS}" = "true" ] ; then
+ echo "Cannot use --remove-something together with --somethingoptions" >&2
+ ex4def_usage >&2
+ exit 1
+fi
+
+#if [ ! -r ${defaultfile} ]; then
+# echo "Cannot read ${defaultfile}, terminating" >&2
+# exit 1
+#fi
+
+if "${EX4DEF_INIT}" = "true" ] ; then
+ [ -e "${defaultfile}" ] && [ "${EX4DEF_FORCE}" != "true" ] && exit 0
+ # Reset to default values
+ EX4DEF_QUEUERUNNER='combined'
+ EX4DEF_QUEUEINTERVAL='30m'
+ EX4DEF_COMMONOPTIONS=''
+ EX4DEF_QUEUERUNNEROPTIONS=''
+ EX4DEF_QFLAGS=''
+ EX4DEF_SMTPLISTENEROPTIONS=''
+
+ ex4def_write
+ exit 0
+fi
+
+#Try removing
+if [ "${EX4DEF_FLAGREMOVE}" = "true" ] ; then
+ EX4DEF_REMOVEERROR="false"
+ if [ ! -z "${EX4DEF_REMOVECOMMON}" ] ; then
+ EX4DEF_COMMONOPTIONS=$(echo "${COMMONOPTIONS}" | \
+ sed -e "s${EX4DEF_REMOVECOMMON}" -e "s/ / /g" -e 's/^ //' -e 's/ $//')
+ [ "${EX4DEF_COMMONOPTIONS}" = "${COMMONOPTIONS}" ] && \
+ EX4DEF_REMOVEERROR="true"
+ fi
+ if [ ! -z "${EX4DEF_REMOVEQUEUE}" ] ; then
+ EX4DEF_QUEUERUNNEROPTIONS=$(echo "${QUEUERUNNEROPTIONS}" | \
+ sed -e "s${EX4DEF_REMOVEQUEUE}" -e "s/ / /g" -e 's/^ //' -e 's/ $//')
+ [ "${EX4DEF_QUEUERUNNEROPTIONS}" = "${QUEUERUNNEROPTIONS}" ] && \
+ EX4DEF_REMOVEERROR="true"
+ fi
+ if [ ! -z "${EX4DEF_REMOVESMTP}" ] ; then
+ EX4DEF_SMTPLISTENEROPTIONS=$(echo "${SMTPLISTENEROPTIONS}" | \
+ sed -e "s${EX4DEF_REMOVESMTP}" -e "s/ / /g" -e 's/^ //' -e 's/ $//')
+ [ "${EX4DEF_SMTPLISTENEROPTIONS}" = "${SMTPLISTENEROPTIONS}"] && \
+ EX4DEF_REMOVEERROR="true"
+ fi
+ if [ "x${EX4DEF_REMOVEERROR}" = "xtrue" ] ; then
+ echo "$0: removing failed, no changes" >&2
+ exit 64
+ fi
+
+ EX4DEF_TMP=`tempfile -m 600 -p ex4`
+ sed -e "s^QFLAGS=.*QFLAGS='${EX4DEF_QFLAGS}'" \
+ -e "s^QUEUERUNNER=.*QUEUERUNNER='${EX4DEF_QUEUERUNNER}'" \
+ -e "s^QUEUEINTERVAL=.*QUEUEINTERVAL='${EX4DEF_QUEUEINTERVAL}'" \
+ -e "s^COMMONOPTIONS=.*COMMONOPTIONS='${EX4DEF_COMMONOPTIONS}'" \
+ -e "s^QUEUERUNNEROPTIONS=.*QUEUERUNNEROPTIONS='${EX4DEF_QUEUERUNNEROPTIONS}'" \
+ -e "s^SMTPLISTENEROPTIONS=.*SMTPLISTENEROPTIONS='${EX4DEF_SMTPLISTENEROPTIONS}'" \
+ < $defaultfile > "${EX4DEF_TMP}"
+ mv "${EX4DEF_TMP}" $defaultfile
+ rm -f "${EX4DEF_TMP}"
+ exit 0
+fi
+
+if [ "${EX4DEF_FORCE}" = "true" ] ; then
+ ex4def_write
+ exit 0
+
+else
+ EX4DEF_DOANYTHING=0
+ EX4DEF_NOTALLOWED=0
+ if [ "x${QUEUERUNNER}" != "x${EX4DEF_QUEUERUNNER}" ]; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+1))
+ # switching the QUEUERUNNER modus is always allowed
+ #[ -z "${QUEUERUNNER}" ] || EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+1))
+ fi
+ if [ "x${QUEUEINTERVAL}" != "x${EX4DEF_QUEUEINTERVAL}" ] ; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+2))
+ [ -z "${QUEUEINTERVAL}" ] || \
+ EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+2))
+ fi
+ if [ "x${COMMONOPTIONS}" != "x${EX4DEF_COMMONOPTIONS}" ] ; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+4))
+ [ -z "${COMMONOPTIONS}" ] || \
+ EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+4))
+ fi
+ if [ "x${QUEUERUNNEROPTIONS}" != "x${EX4DEF_QUEUERUNNEROPTIONS}" ] ; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+8))
+ [ -z "${QUEUERUNNEROPTIONS}" ] || \
+ EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+8))
+ fi
+ if [ "x${SMTPLISTENEROPTIONS}" != "x${EX4DEF_SMTPLISTENEROPTIONS}" ] ; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+16))
+ [ -z "${SMTPLISTENEROPTIONS}" ] || \
+ EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+16))
+ fi
+ if [ "x${QFLAGS}" != "x${EX4DEF_QFLAGS}" ] ; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+32))
+ [ -z "${QFLAGS}" ] || \
+ EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+32))
+ fi
+
+ [ ${EX4DEF_DOANYTHING} -eq 0 ] && exit 0
+ if [ ${EX4DEF_NOTALLOWED} -ne 0 ] ; then
+ echo "setting(s) conflict with current one, terminating" >&2
+ exit ${EX4DEF_NOTALLOWED}
+ fi
+
+ EX4DEF_TMP=`tempfile -m 600 -p ex4`
+ sed -e "s^QFLAGS=.*QFLAGS='${EX4DEF_QFLAGS}'" \
+ -e "s^QUEUERUNNER=.*QUEUERUNNER='${EX4DEF_QUEUERUNNER}'" \
+ -e "s^QUEUEINTERVAL=.*QUEUEINTERVAL='${EX4DEF_QUEUEINTERVAL}'" \
+ -e "s^COMMONOPTIONS=.*COMMONOPTIONS='${EX4DEF_COMMONOPTIONS}'" \
+ -e "s^QUEUERUNNEROPTIONS=.*QUEUERUNNEROPTIONS='${EX4DEF_QUEUERUNNEROPTIONS}'" \
+ -e "s^SMTPLISTENEROPTIONS=.*SMTPLISTENEROPTIONS='${EX4DEF_SMTPLISTENEROPTIONS}'" \
+ < $defaultfile > "${EX4DEF_TMP}"
+ mv "${EX4DEF_TMP}" $defaultfile
+ rm -f "${EX4DEF_TMP}"
+ exit 0
+fi
+
+
+
diff --git a/debian/exim4-config-simple/debian/changelog b/debian/exim4-config-simple/debian/changelog
new file mode 100644
index 0000000..85893e3
--- /dev/null
+++ b/debian/exim4-config-simple/debian/changelog
@@ -0,0 +1,11 @@
+exim4-config-simple (4.12-0.0.17mh18) unstable; urgency=low
+
+ * separate system user for exim4
+
+ -- Andreas Metzler <ametzler@debian.org> Fri, 12 Dec 2003 15:26:29 +0100
+
+exim4-config-simple (4.12-0.0.17mh17) unstable; urgency=low
+
+ * first version
+
+ -- Marc Haber <mh+debian-packages@zugschlus.de> Sat, 15 Feb 2003 14:20:49 +0000
diff --git a/debian/exim4-config-simple/debian/compat b/debian/exim4-config-simple/debian/compat
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/debian/exim4-config-simple/debian/compat
@@ -0,0 +1 @@
+4
diff --git a/debian/exim4-config-simple/debian/control b/debian/exim4-config-simple/debian/control
new file mode 100644
index 0000000..a719a3d
--- /dev/null
+++ b/debian/exim4-config-simple/debian/control
@@ -0,0 +1,24 @@
+Source: exim4-config-simple
+Section: mail
+Priority: important
+Maintainer: Andreas Metzler <ametzler@downhill.at.eu.org>
+Uploaders: Marc Haber <mh+debian-packages@zugschlus.de>
+Standards-Version: 3.5.6
+Build-Depends-Indep: debhelper (>= 4.0.1)
+
+Package: exim4-config-simple
+Architecture: all
+Priority: important
+Provides: exim4-config-2
+Conflicts: exim4-config,exim4-config-2
+Depends: ${shlibs:Depends}, ${misc:Depends}, exim4-base, adduser
+Description: Simplest Debian configuration for exim4
+ This package provides a simple configuration framework for the exim4
+ daemon packages. It is meant as a proof-of-concept alternative imple-
+ mentation to exim4-config-debian and simply contains a exim4 config
+ file flagged as a dpkg-conffile. NO automatic configuration is in
+ place here.
+ .
+ Do not use this package in a production environment. It is only an
+ example. You can use it as base for your own packages providing
+ exim4-config.
diff --git a/debian/exim4-config-simple/debian/copyright b/debian/exim4-config-simple/debian/copyright
new file mode 100644
index 0000000..1484c04
--- /dev/null
+++ b/debian/exim4-config-simple/debian/copyright
@@ -0,0 +1,12 @@
+This is a simple configuration package for Debian GNU/Linux's prepackaged
+version of exim4, a powerful yet easy to configure mail transport agent.
+
+This package was originally made by Marc Haber
+<mh+debian-packages@zugschlus.de> using work provided by Andreas
+Metzler <ametzler@downhill.at.eu.org>.
+
+The files in this package are free software; you can redistribute them
+and/or modify them under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2, or (at
+your option) any later version. Full text of the license can be found
+at /usr/share/common-licenses/GPL
diff --git a/debian/exim4-config-simple/debian/debconf/update-exim4.conf b/debian/exim4-config-simple/debian/debconf/update-exim4.conf
new file mode 100755
index 0000000..bc15ffe
--- /dev/null
+++ b/debian/exim4-config-simple/debian/debconf/update-exim4.conf
@@ -0,0 +1,169 @@
+#!/bin/sh
+# update-exim4.conf(8) - Generate /var/lib/exim4/config.autogenerated
+
+
+# exit immediately if /etc/exim4/exim4.conf exists
+[ -e /etc/exim4/exim4.conf ] && exit 0
+
+EXIM="/usr/sbin/exim4"
+
+UPEX4C_confdir="/etc/exim4"
+UPEX4C_verbose=no
+UPEX4C_comments=no
+UPEX4C_autoconfigfile=/var/lib/exim4/config.autogenerated
+UPEX4C_outputfile="${UPEX4C_autoconfigfile}"
+
+usage() {
+cat <<EOF
+$0 - Generate exim4 configuration files
+ Options:
+ -v|--verbose - Enable verbose mode, tell about ignored files
+ -h|--help - Show this message
+ --keepcomments - Do not remove comment lines
+ --removecomments - Remove comment lines
+ -o|--output file - write output to file instead of ${UPEX4C_outputfile}
+ -d|--confdir directory - read input from given directory instead of ${UPEX4C_confdir}
+EOF
+}
+
+# also from Branden
+errormessage () {
+ # pretty-print messages of arbitrary length (no trailing newline)
+ echo "$*" | fold -s -w ${COLUMNS:-80} >&2;
+}
+
+## Parse commandline
+TEMP=$(getopt -n update-exim4.conf \
+ -l keepcomments,removecomments,output:,confdir:,help,verbose -- \
+ +o:d:vh "$@")
+
+if test "$?" != 0; then
+ echo "Terminating..." >&2
+ exit 1
+fi
+
+eval set -- ${TEMP}
+while test "$1" != "--"; do
+ case $1 in
+ -h|--help)
+ usage
+ exit 0
+ ;;
+ -v|--verbose)
+ UPEX4C_verbose=yes
+ ;;
+ --keepcomments)
+ UPEX4C_comments=yes
+ ;;
+ --removecomments)
+ UPEX4C_comments=no
+ ;;
+ -o|--output)
+ shift
+ UPEX4C_outputfile="$1"
+ ;;
+ -d|--confdir)
+ shift
+ UPEX4C_confdir="$1"
+ ;;
+ esac
+ shift
+done
+shift
+
+# No non-option arguments allowed.
+if [ "$#" -ne 0 ]; then
+ echo "No non option arguments ($@) allowed" >&2
+ usage >&2
+ exit 1
+fi
+
+UPEX4C_confd=$UPEX4C_confdir/conf.d
+
+[ -d ${UPEX4C_confd} ] || \
+{ printf "$0: Error, no ${UPEX4C_confd}, exiting.\n" 1>&2 ; exit 1 ; }
+
+[ -d `dirname $UPEX4C_outputfile` ] || \
+{ printf "$0: Error, missing `dirname $UPEX4C_outputfile`, exiting.\n" 1>&2 ; exit 1 ; }
+
+. $UPEX4C_confdir/update-exim4.conf.conf || \
+{ printf "$0: Error, no $UPEX4C_confdir/update-exim4.conf.conf, exiting.\n" 1>&2 ; exit 1 ; }
+
+[ "x${CFILEMODE}" = "x" ] && CFILEMODE=644
+
+mailname=`cat /etc/mailname | head -n 1`
+
+# add localhost and mailname, get rid of spaces and trailing colons
+local_domains="`echo ${mailname}:localhost:${dc_other_hostnames} | \
+ sed -e 's[: ]*$' -e 's *'`"
+
+UPEX4C_internal_tmp=`tempfile -m600 -p ex4`
+
+trap "rm -f ${UPEX4C_internal_tmp}" 0 2 15
+
+gentmpconf() {
+ touch ${UPEX4C_outputfile}.tmp
+ chown root:Debian-exim ${UPEX4C_outputfile}.tmp
+ [ -e ${UPEX4C_outputfile} ] && chown root:Debian-exim ${UPEX4C_outputfile}
+ chmod 640 ${UPEX4C_outputfile}.tmp
+ [ -e ${UPEX4C_outputfile} ] && chmod 640 ${UPEX4C_outputfile}
+}
+
+removecomments(){
+ if [ "x${UPEX4C_comments}" = "xno" ] ; then
+ egrep -v '^[[:space:]]*#' ;
+ else
+ cat
+ fi
+}
+
+. /etc/exim4/exim4.conf.defaults
+
+case "${listenonpublic}" in
+ false)
+ listenonpublic='local_interfaces = 127.0.0.1'
+ ;;
+ true|*)
+ listenonpublic='# if local_interfaces is unset, we listen on all interfaces'
+ ;;
+esac
+
+cat << EOF > ${UPEX4C_outputfile}.tmp
+#########
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# this file is generated dynamically
+# Any changes you make here will be lost.
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+# WARNING WARNING WARNING
+#########
+EOF
+
+cat /etc/exim4/exim4.conf.source | \
+removecomments | \
+sed -e "sDEBCONFlocal_domainsDEBCONF@:${local_domains}g" \
+ -e "sDEBCONFrelay_domainsDEBCONF${relay_domains}g" \
+ -e "sDEBCONFrelay_netsDEBCONF${relay_nets}g" \
+ -e "sDEBCONFvisiblenameDEBCONF${mailname}g" \
+ -e "sDEBCONFreadhostDEBCONF${readhost}g" \
+ -e "sDEBCONFsmarthostDEBCONF${smarthost}g" \
+ -e "sDEBCONFconfigtypeDEBCONF${eximconfig_configtype}g" \
+ -e "sDEBCONFlistenonpublicDEBCONF${listenonpublic}g" \
+ >> ${UPEX4C_outputfile}.tmp
+
+# test validity if called without -o
+if [ "x${UPEX4C_outputfile}" = "x${UPEX4C_autoconfigfile}" ] ; then
+ if ! ${EXIM} -C "${UPEX4C_outputfile}.tmp" -bV > /dev/null ; then
+ errormessage "Invalid new configfile ${UPEX4C_outputfile}.tmp"
+ errormessage "not installing ${UPEX4C_outputfile}.tmp to ${UPEX4C_outputfile}"
+ exit 1
+ fi
+fi
+
+mv -f ${UPEX4C_outputfile}.tmp ${UPEX4C_outputfile}
diff --git a/debian/exim4-config-simple/debian/exim4-config-simple.dirs b/debian/exim4-config-simple/debian/exim4-config-simple.dirs
new file mode 100644
index 0000000..76d4455
--- /dev/null
+++ b/debian/exim4-config-simple/debian/exim4-config-simple.dirs
@@ -0,0 +1,5 @@
+/usr/sbin
+/etc/exim4
+/usr/share/doc/exim4-config-debian/examples
+/usr/share/man/man8
+/var/lib/exim4
diff --git a/debian/exim4-config-simple/debian/exim4-config-simple.manpages b/debian/exim4-config-simple/debian/exim4-config-simple.manpages
new file mode 100644
index 0000000..234e068
--- /dev/null
+++ b/debian/exim4-config-simple/debian/exim4-config-simple.manpages
@@ -0,0 +1 @@
+debian/manpages/update-exim4.conf.8
diff --git a/debian/exim4-config-simple/debian/exim4-config-simple.postinst b/debian/exim4-config-simple/debian/exim4-config-simple.postinst
new file mode 100644
index 0000000..6dbef33
--- /dev/null
+++ b/debian/exim4-config-simple/debian/exim4-config-simple.postinst
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+set -e
+
+
+case "$1" in
+ configure)
+ if ! getent passwd Debian-exim > /dev/null ; then
+ echo 'Adding system-user for exim (v4)' 1>&2
+ adduser --system --group --home /var/spool/exim4 \
+ --no-create-home --disabled-login --force-badname \
+ Debian-exim >/dev/null 2>&1
+ fi
+
+ update-exim4.conf
+
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-config-simple/debian/exim4-config-simple.postrm b/debian/exim4-config-simple/debian/exim4-config-simple.postrm
new file mode 100644
index 0000000..3bbd538
--- /dev/null
+++ b/debian/exim4-config-simple/debian/exim4-config-simple.postrm
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+ purge)
+ rm -f /var/lib/exim4/config.autogenerated
+
+ # remove empty directories in /etc/exim4
+ rmdir /etc/exim4 2> /dev/null || true
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-config-simple/debian/exim4.conf.defaults b/debian/exim4-config-simple/debian/exim4.conf.defaults
new file mode 100644
index 0000000..e7c98d1
--- /dev/null
+++ b/debian/exim4-config-simple/debian/exim4.conf.defaults
@@ -0,0 +1,7 @@
+local_domains=
+relay_domains=
+relay_nets=
+visiblename=paola-chroot
+readhost=paola-chroot
+smarthost=smtp
+listenonpublic=no
diff --git a/debian/exim4-config-simple/debian/exim4.conf.source b/debian/exim4-config-simple/debian/exim4.conf.source
new file mode 100644
index 0000000..5c743f4
--- /dev/null
+++ b/debian/exim4-config-simple/debian/exim4.conf.source
@@ -0,0 +1,502 @@
+######################################################################
+# Runtime configuration file for Exim #
+######################################################################
+
+######################################################################
+# MAIN CONFIGURATION SETTINGS #
+######################################################################
+
+# Just for reference and scripts, on debian, the main binary is
+# installed as exim4
+exim_path = /usr/sbin/exim4
+
+# Let Exim autodetect this
+# primary_hostname =
+
+# The next three settings create two lists of domains and one list of hosts.
+# These lists are referred to later in this configuration using the syntax
+# +local_domains, +relay_to_domains, and +relay_from_hosts, respectively. They
+# are all colon-separated lists:
+
+# '@' refers to 'the name of the local host'
+
+domainlist local_domains = DEBCONFlocal_domainsDEBCONF
+
+domainlist relay_to_domains = DEBCONFrelay_domainsDEBCONF
+
+hostlist relay_from_hosts = 127.0.0.1 : ::::1 : DEBCONFrelay_netsDEBCONF
+
+
+# Specify the domain you want to be added to all unqualified addresses
+# here. An unqualified address is one that does not contain an "@" character
+# followed by a domain. For example, "caesar@rome.example" is a fully qualified
+# address, but the string "caesar" (i.e. just a login name) is an unqualified
+# email address. Unqualified addresses are accepted only from local callers by
+# default. See the recipient_unqualified_hosts option if you want to permit
+# unqualified addresses from remote sources. If this option is not set, the
+# primary_hostname value is used for qualification.
+qualify_domain = DEBCONFvisiblenameDEBCONF
+
+# only used for satellite-system
+DCreadhost = DEBCONFreadhostDEBCONF
+
+#for satellite and smarthost-systems
+DCsmarthost = DEBCONFsmarthostDEBCONF
+
+# listen on all all interfaces?
+DEBCONFlistenonpublicDEBCONF
+### EXPANSION-ends ######################
+
+# The default delivery method. See /etc/exim4/conf.d/transports/ for other
+# possibilities
+LOCAL_DELIVERY=mail_spool
+
+# The gecos field in /etc/passwd holds not only the name. see passwd(5).
+gecos_pattern = ^([^,:]*)
+gecos_name = $1
+
+
+
+
+# This option defines the access control list that is run when an
+# SMTP RCPT command is received.
+#
+acl_smtp_rcpt = acl_check_rcpt
+
+# If you want unqualified recipient addresses to be qualified with a different
+# domain to unqualified sender addresses, specify the recipient domain here.
+# If this option is not set, the qualify_domain value is used.
+#
+# qualify_recipient =
+
+# The following line must be uncommented if you want Exim to recognize
+# addresses of the form "user@[10.11.12.13]" that is, with a "domain literal"
+# (an IP address) instead of a named domain. The RFCs still require this form,
+# but it makes little sense to permit mail to be sent to specific hosts by
+# their IP address in the modern Internet. This ancient format has been used
+# by those seeking to abuse hosts by using them for unwanted relaying. If you
+# really do want to support domain literals, uncomment the following line, and
+# see also the "domain_literal" router below.
+#
+# allow_domain_literals
+
+# The setting below causes Exim to do a reverse DNS lookup on all incoming
+# IP calls, in order to get the true host name. If you feel this is too
+# expensive, you can specify the networks for which a lookup is done, or
+# remove the setting entirely.
+#
+host_lookup = *
+
+# The settings below, which are actually the same as the defaults in the
+# code, cause Exim to make RFC 1413 (ident) callbacks for all incoming SMTP
+# calls. You can limit the hosts to which these calls are made, and/or change
+# the timeout that is used. If you set the timeout to zero, all RFC 1413 calls
+# are disabled. RFC 1413 calls are cheap and can provide useful information
+# for tracing problem messages, but some hosts and firewalls have problems
+# with them. This can result in a timeout instead of an immediate refused
+# connection, leading to delays on starting up an SMTP session.
+#
+rfc1413_hosts = *
+rfc1413_query_timeout = 30s
+
+# By default, Exim expects all envelope addresses to be fully qualified, that
+# is, they must contain both a local part and a domain. If you want to accept
+# unqualified addresses (just a local part) from certain hosts, you can specify
+# these hosts by setting one or both of
+#
+# sender_unqualified_hosts =
+# recipient_unqualified_hosts =
+#
+# to control sender and recipient addresses, respectively. When this is done,
+# unqualified addresses are qualified using the settings of qualify_domain
+# and/or qualify_recipient (see above).
+
+# If you want Exim to support the "percent hack" for certain domains,
+# uncomment the following line and provide a list of domains. The "percent
+# hack" is the feature by which mail addressed to x%y@z (where z is one of
+# the domains listed) is locally rerouted to x@y and sent on. If z is not one
+# of the "percent hack" domains, x%y is treated as an ordinary local part. This
+# hack is rarely needed nowadays; you should not enable it unless you are sure
+# that you really need it.
+#
+# percent_hack_domains =
+
+# When Exim can neither deliver a message nor return it to sender, it "freezes"
+# the delivery error message (aka "bounce message"). There are also other
+# circumstances in which messages get frozen. They will stay on the queue for
+# ever unless one of the following options is set.
+
+# This option unfreezes frozen bounce messages after two days, tries
+# once more to deliver them, and ignores any delivery failures.
+#
+ignore_bounce_errors_after = 2d
+
+# This option cancels (removes) frozen messages that are older than a week.
+#
+timeout_frozen_after = 7d
+
+freeze_tell = postmaster
+
+# uucp should be able to set envelope-from to arbitrary values
+trusted_users = uucp
+
+received_header_text = "Received: \
+ ${if def:sender_rcvhost {from ${sender_rcvhost}\n\t}\
+ {${if def:sender_ident {from ${sender_ident} }}\
+ ${if def:sender_helo_name {(helo=${sender_helo_name})\n\t}}}}\
+ by ${primary_hostname} \
+ ${if def:received_protocol {with ${received_protocol}}} \
+ (Exim ${version_number} #${compile_number} (Debian) [+prerelease])\n\t\
+ id ${message_id}\
+ ${if def:received_for {\n\tfor <$received_for>}}"
+
+
+
+# No deliveries will ever be run under the uids of these users (a colon-
+# separated list). An attempt to do so causes a panic error to be logged, and
+# the delivery to be deferred. This is a paranoic safety catch. Note that the
+# default setting means you cannot deliver mail addressed to root as if it
+# were a normal user. This isn't usually a problem, as most sites have an alias
+# for root that redirects such mail to a human administrator.
+#
+never_users = root
+
+######################################################################
+# ACL CONFIGURATION #
+# Specifies access control lists for incoming SMTP mail #
+######################################################################
+begin acl
+
+
+# This access control list is used for every RCPT command in an incoming
+# SMTP message. The tests are run in order until the address is either
+# accepted or denied.
+#
+acl_check_rcpt:
+ # Accept if the source is local SMTP (i.e. not over TCP/IP). We do this by
+ # testing for an empty sending host field.
+ accept hosts = :
+ # Deny if the local part contains @ or % or / or | or !. These are rarely
+ # found in genuine local parts, but are often tried by people looking to
+ # circumvent relaying restrictions.
+ #
+ # Also deny if the local part starts with a dot. Empty components aren't
+ # strictly legal in RFC 2822, but Exim allows them because this is common.
+ # However, actually starting with a dot may cause trouble if the local part
+ # is used as a file name (e.g. for a mailing list).
+ #
+ deny local_parts = ^.*[@%!/|] : ^\\.
+ # Accept mail to postmaster in any local domain, regardless of the source,
+ # and without verifying the sender.
+ #
+ accept local_parts = postmaster
+ domains = +local_domains
+ # Deny unless the sender address can be verified.
+ #
+ # require verify = sender
+
+ #############################################################################
+ # There are no checks on DNS "black" lists because the domains that contain
+ # these lists are changing all the time. However, here are two examples of
+ # how you could get Exim to perform a DNS black list lookup at this point.
+ # The first one denies, while the second just warns.
+ #
+ # deny message = rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
+ # dnslists = black.list.example
+ #
+ # warn message = X-Warning: $sender_host_address is in a black list at $dnslist_domain
+ # log_message = found in $dnslist_domain
+ # dnslists = black.list.example
+ #############################################################################
+
+ # Accept if the address is in a local domain, but only if the recipient can
+ # be verified. Otherwise deny. The "endpass" line is the border between
+ # passing on to the next ACL statement (if tests above it fail) or denying
+ # access (if tests below it fail).
+ #
+ accept domains = +local_domains
+ endpass
+ message = unknown user
+ verify = recipient
+
+ # Accept if the address is in a domain for which we are relaying, but again,
+ # only if the recipient can be verified.
+ #
+ accept domains = +relay_to_domains
+ endpass
+ message = unrouteable address
+ verify = recipient
+
+ # If control reaches this point, the domain is neither in +local_domains
+ # nor in +relay_to_domains.
+
+ # Accept if the message comes from one of the hosts for which we are an
+ # outgoing relay. Recipient verification is omitted here, because in many
+ # cases the clients are dumb MUAs that don't cope well with SMTP error
+ # responses. If you are actually relaying out from MTAs, you should probably
+ # add recipient verification here.
+ #
+ accept hosts = +relay_from_hosts
+
+ # Accept if the message arrived over an authenticated connection, from
+ # any host. Again, these messages are usually from MUAs, so recipient
+ # verification is omitted.
+ #
+ accept authenticated = *
+
+ # Reaching the end of the ACL causes a "deny", but we might as well give
+ # an explicit message.
+ #
+ deny message = relay not permitted
+
+
+
+######################################################################
+# ROUTERS CONFIGURATION #
+# Specifies how addresses are handled #
+######################################################################
+# THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT! #
+# An address is passed to each router in turn until it is accepted. #
+######################################################################
+
+begin routers
+
+
+# This router routes to remote hosts over SMTP by explicit IP address,
+# when an email address is given in "domain literal" form, for example,
+# <user@[192.168.35.64]>. The RFCs require this facility. However, it is
+# little-known these days, and has been exploited by evil people seeking
+# to abuse SMTP relays. Consequently it is commented out in the default
+# configuration. If you uncomment this router, you also need to uncomment
+# allow_domain_literals above, so that Exim can recognize the syntax of
+# domain literal addresses.
+
+# domain_literal:
+# driver = ipliteral
+# domains = ! +local_domains
+# transport = remote_smtp
+
+smarthost:
+ driver = manualroute
+ domains = ! +local_domains
+ transport = remote_smtp
+ route_list = * DCsmarthost
+ host_find_failed = defer
+ no_more
+
+# The "no_more" above means that all routers below here are for
+# domains in the local_domains list, i.e. just like Exim 3 directors.
+
+
+real_local:
+ driver = accept
+ local_part_prefix = real-
+ check_local_user
+ transport = LOCAL_DELIVERY
+
+
+# This router handles aliasing using a traditional /etc/aliases file.
+#
+##### NB You must ensure that /etc/aliases exists. It used to be the case
+##### NB that every Unix had that file, because it was the Sendmail default.
+##### NB These days, there are systems that don't have it. Your aliases
+##### NB file should at least contain an alias for "postmaster".
+#
+# If any of your aliases expand to pipes or files, you will need to set
+# up a user and a group for these deliveries to run under. You can do
+# this by uncommenting the "user" option below (changing the user name
+# as appropriate) and adding a "group" option if necessary. Alternatively, you
+# can specify "user" on the transports that are used. Note that the transports
+# listed below are the same as are used for .forward files; you might want
+# to set up different ones for pipe and file deliveries from aliases.
+#
+system_aliases:
+ driver = redirect
+ allow_fail
+ allow_defer
+ data = ${lookup{$local_part}lsearch{/etc/aliases}}
+# user = list
+ file_transport = address_file
+ pipe_transport = address_pipe
+
+hub_user:
+ driver = redirect
+ data = ${local_part}@DCreadhost
+ check_local_user
+
+# This router handles forwarding using traditional .forward files in users'
+# home directories. If you want it also to allow mail filtering when a forward
+# file starts with the string "# Exim filter", uncomment the "allow_filter"
+# option.
+#
+# The no_verify setting means that this router is skipped when Exim is
+# verifying addresses. Similarly, no_expn means that this router is skipped if
+# Exim is processing an EXPN command.
+#
+# The check_ancestor option means that if the forward file generates an
+# address that is an ancestor of the current one, the current one gets
+# passed on instead. This covers the case where A is aliased to B and B
+# has a .forward file pointing to A.
+#
+# The three transports specified at the end are those that are used when
+# forwarding generates a direct delivery to a file, or to a pipe, or sets
+# up an auto-reply, respectively.
+#
+userforward:
+ driver = redirect
+ check_local_user
+ file = $home/.forward
+ no_verify
+ no_expn
+ check_ancestor
+# allow_filter
+ file_transport = address_file
+ pipe_transport = address_pipe
+ reply_transport = address_reply
+
+
+procmail:
+ driver = accept
+ check_local_user
+ transport = procmail_pipe
+ require_files = ${local_part}:${home}/.procmailrc:+/usr/bin/procmail
+ no_verify
+ no_expn
+
+
+# Use maildrop
+# maildrop:
+# driver = accept
+# check_local_user
+# transport = maildrop_pipe
+# require_files = ${local_part}:${home}/.mailfilter:+/usr/bin/maildrop
+# no_verify
+# no_expn
+
+
+local_user:
+ driver = accept
+ check_local_user
+ transport = LOCAL_DELIVERY
+
+
+
+######################################################################
+# TRANSPORTS CONFIGURATION #
+######################################################################
+# ORDER DOES NOT MATTER #
+# Only one appropriate transport is called for each delivery. #
+######################################################################
+
+# A transport is used only when referenced from a router that successfully
+# handles an address.
+
+begin transports
+
+
+# This transport is used for handling deliveries directly to files that are
+# generated by aliasing or forwarding.
+#
+address_file:
+ driver = appendfile
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+
+
+# This transport is used for handling pipe deliveries generated by alias or
+# .forward files. If the pipe generates any standard output, it is returned
+# to the sender of the message as a delivery error. Set return_fail_output
+# instead of return_output if you want this to happen only when the pipe fails
+# to complete normally. You can set different transports for aliases and
+# forwards if you want to - see the references to address_pipe in the routers
+# section above.
+#
+address_pipe:
+ driver = pipe
+ return_output
+
+
+# This transport is used for handling autoreplies generated by the filtering
+# option of the userforward router.
+#
+address_reply:
+ driver = autoreply
+
+
+# This transport is used for local delivery to user mailboxes in traditional
+# BSD mailbox format.
+#
+mail_spool:
+ driver = appendfile
+ file = /var/mail/$local_part
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+ group = mail
+ mode = 0660
+
+
+# Use this instead of mail_spool if you want to to deliver to Maildir in
+# home-directory - change the definition of LOCAL_DELIVERY
+#
+maildir_home:
+ driver = appendfile
+ directory = $home/Maildir
+ maildir_format
+ mode = 0600
+
+
+maildrop_pipe:
+ driver = pipe
+ path = "/bin:/usr/bin:/usr/local/bin"
+ command = "/usr/bin/maildrop"
+ return_path_add
+ delivery_date_add
+ envelope_to_add
+
+
+procmail_pipe:
+ driver = pipe
+ path = "/bin:/usr/bin:/usr/local/bin"
+ command = "/usr/bin/procmail"
+ return_path_add
+ delivery_date_add
+ envelope_to_add
+
+
+# This transport is used for delivering messages over SMTP connections.
+remote_smtp:
+ driver = smtp
+
+######################################################################
+# RETRY CONFIGURATION #
+######################################################################
+
+begin retry
+
+
+# This single retry rule applies to all domains and all errors. It specifies
+# retries every 15 minutes for 2 hours, then increasing retry intervals,
+# starting at 1 hour and increasing each time by a factor of 1.5, up to 16
+# hours, then retries every 6 hours until 4 days have passed since the first
+# failed delivery.
+
+# Domain Error Retries
+# ------ ----- -------
+
+* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
+
+
+
+######################################################################
+# REWRITE CONFIGURATION #
+######################################################################
+
+begin rewrite
+
+######################################################################
+# AUTHENTICATION CONFIGURATION #
+######################################################################
+
+begin authenticators
diff --git a/debian/exim4-config-simple/debian/manpages/update-exim4.conf.8 b/debian/exim4-config-simple/debian/manpages/update-exim4.conf.8
new file mode 100644
index 0000000..e1019ac
--- /dev/null
+++ b/debian/exim4-config-simple/debian/manpages/update-exim4.conf.8
@@ -0,0 +1,75 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH UPDATE-EXIM4.CONF 8 "February 4, 2003" EXIM4
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+update-exim4.conf \- Generate exim4 configuration files.
+.SH SYNOPSIS
+.B update-exim4.conf [-v|--verbose] [-h|--help] [--keepcomments] [--removecomments] [-o|--output file]
+
+.SH OPTIONS
+.TP
+.I -v|--verbose
+Enable verbose mode, tell about ignored, user modified files
+.TP
+.I -h|--help
+Show short help message and exit
+.TP
+.I --keepcomments
+Do not remove comment lines from the output file.
+.TP
+.I --removecomments
+Remove comment lines from the output file. [Default]
+.TP
+.I -o|--output file
+Write output to file instead of /var/lib/exim4/config.autogenerated. Be careful,
+
+.SH DESCRIPTION
+The script
+.B update-exim4.conf
+generates the main configuration files
+.I /var/lib/exim4/config.autogenerated
+for
+.B Exim v4
+by merging the data in the template files in the
+.I /etc/exim4/exim4.conf.source
+and
+.I /etc/exim4/exim4.conf.defaults
+files to the output file
+.I /var/lib/exim4/config.autogenerated.
+.PP
+
+.B update-exim4.conf
+exits silently and does nothing if /etc/exim4/exim4.conf exists.
+
+If
+.B update-exim4.conf
+is called without the option -o it checks the validity of the
+freshly generated configurationfile and exits with an error instead
+of installing the file to /var/lib/exim4/config.autogenerated.
+
+.SH FILES
+.B update-exim4.conf
+manages these files:
+.TP
+.I /var/lib/exim4/config.autogenerated
+Exim's main configuration file
+.SH SEE ALSO
+.BR exim (8)
+
+.SH AUTHOR
+Marc Haber <mh+debian-packages@zugschlus.de> using work prepared by
+Andreas Metzler <ametzler at downhill.at.eu.org>
diff --git a/debian/exim4-config-simple/debian/rules b/debian/exim4-config-simple/debian/rules
new file mode 100755
index 0000000..505a055
--- /dev/null
+++ b/debian/exim4-config-simple/debian/rules
@@ -0,0 +1,86 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# This file is public domain software, originally written by Joey Hess.
+#
+# This version is for a hypothetical package that builds an
+# architecture-dependant package, as well as an architecture-independent
+# package.
+
+# Uncomment this to turn on verbose mode.
+export DH_VERBOSE=1
+
+buildname=$${build:-`$(SHELL) scripts/os-type`-`$(SHELL) scripts/arch-type`}
+
+DEBIAN:=$(shell pwd)/debian
+
+configure: configure-stamp
+
+# the patches might change src/EDITME.
+configure-stamp:
+ dh_testdir
+ touch configure-stamp
+
+build-indep: build-indep-stamp
+build-indep-stamp:
+ dh_testdir
+ touch build-indep-stamp
+
+build: build-indep
+
+clean: cleanfiles
+
+cleanfiles:
+ dh_testdir
+ dh_testroot
+ rm -f build-indep-stamp configure-stamp install-stamp
+
+ # Add here commands to clean up after the build process.
+ dh_clean
+
+install: install-stamp
+install-stamp: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ install -m 755 debian/debconf/update-exim4.conf debian/exim4-config-simple/usr/sbin
+ install -m 644 debian/exim4.conf.source debian/exim4-config-simple/etc/exim4
+ install -m 644 debian/exim4.conf.defaults debian/exim4-config-simple/etc/exim4
+
+# dh_movefiles
+ touch install-stamp
+
+# Build architecture-independent files here.
+binary-indep: build install
+ dh_testdir -i
+ dh_testroot -i
+ dh_installchangelogs -i
+ dh_installdocs -i
+ dh_installexamples -i
+ dh_installmenu -i
+ dh_installdebconf -i
+ dh_installlogrotate -i
+# dh_installemacsen -i
+ dh_installpam -i
+ dh_installmime -i
+# dh_installinit -i
+ dh_installcron -i
+# dh_installinfo -i
+# dh_undocumented -i
+ dh_installman -i
+ dh_install -i
+ dh_strip -i
+ dh_link -i
+ dh_compress -i
+# dh_fixperms -i
+# dh_makeshlibs -i
+ dh_installdeb -i
+# dh_perl -i
+ dh_shlibdeps -i
+ dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
+
+binary: binary-indep
+.PHONY: build clean binary-indep binary-arch binary install
diff --git a/debian/exim4-config.NEWS b/debian/exim4-config.NEWS
new file mode 100644
index 0000000..c476417
--- /dev/null
+++ b/debian/exim4-config.NEWS
@@ -0,0 +1,16 @@
+exim4 (4.30-5) unstable; urgency=low
+
+ * (Re)introduce /etc/exim4/exim4.conf.template as alternative to the
+ multiple small files in /etc/exim4/conf.d/ and make it the default choice
+ for fresh installations. This trades in a loss of comfort (you will again
+ need to merge in each small change manually) for increased stability.
+
+ -- Andreas Metzler <ametzler@debian.org> Sun, 11 Jan 2004 13:03:43 +0100
+
+exim4 (4.20-2) unstable; urgency=low
+
+ * Rewriting now uses /etc/email-addresses instead of
+ /etc/exim4/email-addresses like exim v3 did. Please move the contents to
+ the new file and delete the old one, when you have time to spare.
+
+ -- Andreas Metzler <ametzler@debian.org> Tue, 15 Jul 2003 10:20:15 +0200
diff --git a/debian/exim4-config.config b/debian/exim4-config.config
new file mode 100644
index 0000000..bd286a7
--- /dev/null
+++ b/debian/exim4-config.config
@@ -0,0 +1,620 @@
+#!/bin/sh
+set -e
+
+alias stripwhitespace="sed -e 's/^[[:blank:]]*//' -e 's/[[:blank:]]*$//'"
+
+. /usr/share/debconf/confmodule
+
+[ -n "$EX4DEBUG" ] && set -x
+
+convert_to_long ()
+{
+ case "$1" in
+ internet)
+ echo -n "internet site; mail is sent and received directly using SMTP"
+ ;;
+ smarthost)
+ echo -n "mail sent by smarthost; received via SMTP or fetchmail"
+ ;;
+ satellite)
+ echo -n "mail sent by smarthost; no local mail"
+ ;;
+ local)
+ echo -n "local delivery only; not on a network"
+ ;;
+ exim3manual)
+ echo -n "manually convert from handcrafted Exim v3 configuration"
+ ;;
+ none)
+ echo -n "no configuration at this time"
+ ;;
+ esac
+}
+convert_to_short ()
+{
+ case "$1" in
+ "internet site; mail is sent and received directly using SMTP")
+ echo -n "internet"
+ ;;
+ "mail sent by smarthost; received via SMTP or fetchmail")
+ echo -n "smarthost"
+ ;;
+ "mail sent by smarthost; no local mail")
+ echo -n "satellite"
+ ;;
+ "local delivery only; not on a network")
+ echo -n "local"
+ ;;
+ "manually convert from handcrafted Exim v3 configuration")
+ echo -n "exim3manual"
+ ;;
+ "no configuration at this time")
+ echo -n "none"
+ ;;
+ esac
+}
+
+# store environment variables in debconf db.
+storevar2db() {
+ dc_eximconfig_configtype=`echo "${dc_eximconfig_configtype}" | stripwhitespace`
+ dc_local_interfaces=`echo "${dc_local_interfaces}" | stripwhitespace`
+ dc_other_hostnames=`echo "${dc_other_hostnames}" | stripwhitespace`
+ dc_readhost=`echo "${dc_readhost}" | stripwhitespace`
+ dc_relay_domains=`echo "${dc_relay_domains}" | stripwhitespace`
+ dc_relay_nets=`echo "${dc_relay_nets}" | stripwhitespace`
+ dc_smarthost=`echo "${dc_smarthost}" | stripwhitespace`
+ dc_minimaldns=`echo "${dc_minimaldns}" | stripwhitespace`
+ dc_use_split_config=`echo "${dc_use_split_config}" | stripwhitespace`
+ # store externally changed values to debconf.db
+ db_set exim4/dc_eximconfig_configtype \
+ "`convert_to_long ${dc_eximconfig_configtype}`"
+ db_set exim4/dc_local_interfaces "${dc_local_interfaces}"
+ db_set exim4/dc_other_hostnames "${dc_other_hostnames}"
+ db_set exim4/dc_readhost "${dc_readhost}"
+ db_set exim4/dc_relay_domains "${dc_relay_domains}"
+ db_set exim4/dc_relay_nets "${dc_relay_nets}"
+ db_set exim4/dc_smarthost "${dc_smarthost}"
+ if [ "x${dc_minimaldns}" != "x" ]; then
+ db_set exim4/dc_minimaldns "${dc_minimaldns}"
+ fi
+ db_set exim4/use_split_config "${dc_use_split_config}"
+}
+
+# ipv6: replace double colons in colon-separated host lists with umlaut-o
+# replace ':' with ' : ', add leading and ending whitespace.
+# return empty string if custom delimiter was used:
+ # local_domains = <; 172.16.0.0/12; 3ffe:ffff:836f::/48
+# e.g: 'localhost : 172.16.0.1 :3ffe::ffff::836f::::: foo.org'
+# ===> ' localhost : 172.16.0.1 : 3ffeffff836f : foo.org '
+alias coloncolon2oe="sed -e 's/[[:blank:]]*//g' -e '/^</d' -e 's/:::::/:/g' -e 's/:::://g' -e 's/:::/:/g' -e 's/:://g' -e 's/:/ : /g' -e 's/^/ /' -e 's/$/ /'"
+
+# try to parse exim3 configuration file - works only if it was generated
+# with eximconfig.
+parseexim3() {
+ dc_mailname=`head -n 1 /etc/mailname | stripwhitespace` || true
+
+ # get the .... entries from
+ # host_accept_relay = 127.0.0.1 : ::::1 : ......
+ # if they exist, ie. parse list, and remove "127.0.0.1", "::::1"
+ # and "localhost" from it.
+ #
+ dc_relay_nets=`cat $1 | grep -h '^host_accept_relay[[:blank:]]*=' | sed -e 's/^host_accept_relay[[:blank:]]*=//' | coloncolon2oe | sed -e 's/ 127\.0\.0\\.1 //g' -e 's/ localhost //g' -e 's/ 1//g' -e 's/[[:blank:]]*//g' -e 's/::/:/g' -e 's/^://' -e 's/:$//' -e 's//::/g'`
+
+ # 'local_domains = $colonhostnames', including mailname and "localhost"
+ #
+ dc_other_hostnames=`cat $1 | grep -h '^local_domains[[:blank:]]*=' | sed -e 's/^local_domains[[:blank:]]*=//' | coloncolon2oe | sed -e 's/ localhost //g' -e "s/ ${dc_mailname} //g" -e 's/[[:blank:]]*//g' -e 's/::/:/g' -e 's/^://' -e 's/:$//' -e 's//::/g'`
+
+ # relay_domains = some.domain
+ dc_relay_domains=`cat $1 | grep -h '^relay_domains = ' | sed -e 's/^relay_domains[[:blank:]]*=[[:blank:]]*//' -e 's/[[:blank:]]*$//'`
+
+ # lookuphost router exist ---> dc_eximconfig_configtype=internet
+ #
+ if cat $1 | grep -h -A2 '^lookuphost:' | \
+ grep -h -A1 '[[:blank:]]*driver = lookuphost' | \
+ grep -h -q '[[:blank:]]*transport = remote_smtp' ; then
+ dc_eximconfig_configtype=internet
+ else
+ # smart:-director exists ---> dc_eximconfig_configtype=satellite
+ #
+ # Later we need the new_address directive to find dc_readhost.
+ # ' || true' is required for "set -e"
+ dc_readhost=`cat $1 | grep -h -A2 '^smart:' | grep -h -A1 '^[[:blank:]]*driver = smartuser' | grep -h '^[[:blank:]]*new_address' || true`
+
+ # smarthost router exists --> dc_eximconfig_configtype is satellite or smarthost
+ #
+ # we need the route_list directive to find dc_smarthost
+ # ' || true' is required for "set -e"
+ dc_smarthost=`cat $1 | grep -h -A3 '^smarthost:' | grep -h -A2 '[[:blank:]]*driver = domainlist' | grep -h -A1 '^[[:blank:]]*transport = remote_smtp' | grep -h '^[[:blank:]]*route_list = "' || true`
+
+ if [ ! -z "${dc_readhost}" ] ; then
+ dc_eximconfig_configtype=satellite
+ elif [ ! -z "${dc_smarthost}" ] ; then
+ dc_eximconfig_configtype=smarthost
+ elif ! cat "$1" | grep -h -q '^remote_smtp:'; then
+ # dc_eximconfig_configtype=local has no remote_smtp transport.
+ dc_eximconfig_configtype=local
+ else
+ # handcrafted config. We probably misparsed, reset values
+ # and exit.
+ dc_eximconfig_configtype=''
+ dc_local_interfaces='notset'
+ dc_other_hostnames=''
+ dc_readhost=''
+ dc_relay_domains=''
+ dc_relay_nets=''
+ dc_smarthost=''
+ return 1
+ fi
+ fi
+
+ case ${dc_eximconfig_configtype} in
+ internet|local)
+ #paranoia
+ dc_readhost=''
+ dc_smarthost=''
+ ;;
+ satellite)
+ # new_address = ${local_part}@$readhost
+ dc_readhost=`echo "${dc_readhost}" | sed -e 's/^.*@//' -e 's/[[:blank:]]*$//'`
+ # route_list = "* $smtphost bydns_a"
+ dc_smarthost=`echo "${dc_smarthost}" | \
+ sed -e 's/^ *route_list = "\* //' -e 's/ bydns_a"//' -e 's/[[:blank:]]*$//'`
+ ;;
+ smarthost)
+ # route_list = "* $smtphost bydns_a"
+ dc_smarthost=`echo "${dc_smarthost}" | \
+ sed -e 's/^ *route_list = "\* //' -e 's/ bydns_a"//' -e 's/[[:blank:]]*$//'`
+ ;;
+ esac
+}
+
+# set to dummy value, so we can differ between unset vs (seen or set outside debconf)
+dc_local_interfaces=notset
+
+# SETTITLE is only supported since debconf 1.3.22
+if command -v db_settitle > /dev/null 2>&1; then
+ db_settitle exim4/exim4-config-title 2>/dev/null || true
+fi
+db_get exim4/dc_eximconfig_configtype
+dc_eximconfig_configtype=`convert_to_short "$RET"`
+db_get exim4/use_split_config
+dc_use_split_config="$RET"
+
+if [ -e /etc/exim4/update-exim4.conf.conf ] ; then
+ . /etc/exim4/update-exim4.conf.conf || true
+ # set defaults using these values
+ storevar2db
+else
+ # If there are no debconf answers (running first time) and we are
+ # making a cross upgrade from exim3, try to parse its config file
+ # to seed debconf db.
+ if [ "x${dc_eximconfig_configtype}" = "x" ] && [ -r /etc/exim/exim.conf ] ; then
+ # parse old configfile
+ #
+ # first do unfolding of lines continued with backslash, by:
+ # 1. remove comment lines
+ # 2. remove blank lines
+ # 3. remove "\<optional space><newline><optional space>"
+ exim3confunfolded=`tempfile -p EX3`
+ perl -e \
+ 'undef $/;
+ while (<>) {
+ s/^[[:space:]]*#[^\n]*\n//mg;
+ s/^\n//mg;
+ s/\\[[:space:]]*\n[[:space:]]*//g;
+ } continue {
+ print or die "blah";
+ }' < /etc/exim/exim.conf > "$exim3confunfolded"
+ if parseexim3 "$exim3confunfolded" ; then
+ # set defaults using these values
+ storevar2db
+ fi
+ rm -f "$exim3confunfolded"
+ fi
+fi
+
+## set up default values, we cannot do this in templates file because
+## config script is called two times before update-exim4.conf.conf exists.
+[ "x${dc_eximconfig_configtype}" = "x" ] && \
+ dc_eximconfig_configtype="local" && \
+ db_set exim4/dc_eximconfig_configtype "`convert_to_long ${dc_eximconfig_configtype}`"
+
+
+if [ -e /etc/mailname ] ; then
+ dc_mailname=`head -n 1 /etc/mailname | stripwhitespace` || true
+ # store values
+ db_set exim4/mailname "${dc_mailname}"
+else
+ db_get exim4/mailname
+ dc_mailname="$RET"
+fi
+
+#Set default mailname
+if [ "x${dc_mailname}" = "x" ] ; then
+ dc_mailname=`hostname --fqdn` || dc_mailname=`hostname` && \
+ dc_mailname=`echo "${dc_mailname}" | stripwhitespace` && \
+ db_set exim4/mailname "${dc_mailname}"
+fi
+
+# initialize env-vars from debconf_db, if they haven't been set yet either by
+# parseexim3() or by sourcing /etc/exim4/update-exim4.conf.conf
+if [ "x${dc_readhost}" = "x" ] ; then
+ db_get exim4/dc_readhost
+ dc_readhost="$RET"
+fi
+if [ "x${dc_smarthost}" = "x" ] ; then
+ db_get exim4/dc_smarthost
+ dc_smarthost="$RET"
+fi
+# Tricky! An empty value for this option is significant, therefore both
+# envvar and debconf-value default to "nonset" instead of "", the
+# following line will only change then envvars value if the config-script
+# runs the second time without existing /etc/exim4/update-exim4.conf.conf or
+# if the debconf-db has been preseeded by other means.
+if [ "x${dc_local_interfaces}" = "xnotset" ]; then
+ db_get exim4/dc_local_interfaces
+ dc_local_interfaces="$RET"
+fi
+if [ "x${dc_minimaldns}" = "x" ] ; then
+ db_get exim4/dc_minimaldns
+ dc_minimaldns="$RET"
+fi
+
+if [ "x${dc_use_split_config}" = "x" ] ; then
+ if [ "x${2}" = "x" ] ; then
+ # fresh installation
+ db_set exim4/use_split_config false
+ dc_use_split_config="false"
+ else
+ db_set exim4/use_split_config true
+ dc_use_split_config="true"
+ fi
+fi
+
+db_version 2.0
+
+db_capb backup
+# initial state
+STATE=1
+# last valid state
+STATELIMIT=36
+EX4QUESTION=""
+while [ "$STATE" != 0 -a "$STATE" -le "$STATELIMIT" ]; do
+ case "$STATE" in
+ 1)
+ EX4QUESTION="exim4/use_split_config"
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ db_input medium "$EX4QUESTION" || true
+ ;;
+
+ 2)
+ EX4QUESTION="exim4/dc_eximconfig_configtype"
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ db_input critical "$EX4QUESTION" || true
+ ;;
+ 3)
+ EX4QUESTION=""
+ db_get exim4/dc_eximconfig_configtype
+ dc_eximconfig_configtype=`convert_to_short "$RET"`
+ db_get exim4/mailname
+ dc_mailname="$RET"
+ db_subst exim4/dc_other_hostnames mailname ${dc_mailname}
+ PREVSTATE=$(($STATE - 1))
+ case "${dc_eximconfig_configtype}" in
+ none)
+ # dont ask more questions
+ #NEXTSTATE=$(($STATELIMIT + 1))
+ NEXTSTATE=4
+ ;;
+ internet)
+ NEXTSTATE=7
+ ;;
+ smarthost)
+ NEXTSTATE=14
+ ;;
+ satellite)
+ NEXTSTATE=21
+ ;;
+ local)
+ NEXTSTATE=28
+ ;;
+ exim3manual)
+ NEXTSTATE=35
+ ;;
+ *)
+ # Should not happen. Break loop
+ NEXTSTATE=$(($STATELIMIT + 1))
+ ;;
+ esac
+ ;;
+
+ 4)
+ # show additional info for type=none
+ EX4QUESTION="exim4/no_config"
+ PREVSTATE=2
+ NEXTSTATE=$(($STATE + 1))
+ # same priority as configtype because of danger of loop?
+ db_input critical "$EX4QUESTION" || true
+ ;;
+ 5)
+ EX4QUESTION=""
+ PREVSTATE=2
+ db_get exim4/no_config || true
+ if [ "$RET" = "false" ]; then
+ NEXTSTATE=2
+ else
+ #break loop
+ NEXTSTATE=$(($STATELIMIT + 1))
+ fi
+ ;;
+
+ 7)
+ # internet site
+ EX4QUESTION="exim4/mailname"
+ db_input medium "$EX4QUESTION" || true
+ PREVSTATE=2
+ NEXTSTATE=$(($STATE + 1))
+ ;;
+ 8)
+ EX4QUESTION="exim4/dc_local_interfaces"
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ if [ "x${dc_local_interfaces}" = "xnotset" ] ; then
+ dc_local_interfaces=''
+ db_set exim4/dc_local_interfaces ''
+ fi
+ db_input medium "$EX4QUESTION" || true
+ ;;
+ 9)
+ EX4QUESTION="exim4/dc_other_hostnames"
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ db_input medium "$EX4QUESTION" || true
+ ;;
+ 10)
+ EX4QUESTION="exim4/dc_relay_domains"
+ db_input medium "$EX4QUESTION" || true
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ ;;
+ 11)
+ EX4QUESTION="exim4/dc_relay_nets"
+ db_input medium "$EX4QUESTION" || true
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ ;;
+ 12)
+ EX4QUESTION="exim4/dc_minimaldns"
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATELIMIT + 1))
+ db_input low "$EX4QUESTION" || true
+ ;;
+
+ 14)
+ # internet site with smarthost
+ EX4QUESTION="exim4/mailname"
+ db_input medium "$EX4QUESTION" || true
+ PREVSTATE=2
+ NEXTSTATE=$(($STATE + 1))
+ ;;
+ 15)
+ EX4QUESTION="exim4/dc_local_interfaces"
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ if [ "x${dc_local_interfaces}" = "xnotset" ] ; then
+ dc_local_interfaces=''
+ db_set exim4/dc_local_interfaces ''
+ fi
+ db_input medium "$EX4QUESTION" || true
+ ;;
+ 16)
+ EX4QUESTION="exim4/dc_other_hostnames"
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ db_input medium "$EX4QUESTION" || true
+ ;;
+ 17)
+ EX4QUESTION="exim4/dc_relay_domains"
+ db_input medium "$EX4QUESTION" || true
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ ;;
+ 18)
+ EX4QUESTION="exim4/dc_relay_nets"
+ db_input medium "$EX4QUESTION" || true
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ ;;
+ 19)
+ EX4QUESTION="exim4/dc_smarthost"
+ if [ "x${dc_smarthost}" = "x" ] ; then
+ # default to mail.mailname
+ dc_smarthost="mail.${dc_mailname}"
+ db_set exim4/dc_smarthost "${dc_smarthost}"
+ fi
+ db_input high "$EX4QUESTION" || true
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ ;;
+ 20)
+ EX4QUESTION="exim4/dc_minimaldns"
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATELIMIT + 1))
+ db_input low "$EX4QUESTION" || true
+ ;;
+
+ 21)
+ # satellite
+ EX4QUESTION="exim4/mailname"
+ db_input medium "$EX4QUESTION" || true
+ PREVSTATE=2
+ NEXTSTATE=$(($STATE + 1))
+ ;;
+ 22)
+ EX4QUESTION="exim4/dc_local_interfaces"
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ if [ "x${dc_local_interfaces}" = "xnotset" ] ; then
+ dc_local_interfaces='127.0.0.1'
+ db_set exim4/dc_local_interfaces '127.0.0.1'
+ fi
+ db_input medium "$EX4QUESTION" || true
+ ;;
+ 23)
+ EX4QUESTION="exim4/dc_other_hostnames"
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ db_input medium "$EX4QUESTION" || true
+ ;;
+ 24)
+ EX4QUESTION="exim4/dc_readhost"
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ if [ "x${dc_readhost}" = "x" ] ; then
+ # default to domain of mailname
+ dc_readhost=`echo ${dc_mailname} | sed -e 's/^[^.][^.]*\.//'`
+ db_set exim4/dc_readhost "${dc_readhost}"
+ fi
+ db_input high "$EX4QUESTION" || true
+ ;;
+ 25)
+ EX4QUESTION="exim4/dc_smarthost"
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ db_get exim4/dc_readhost
+ dc_readhost="$RET"
+ if [ "x${dc_smarthost}" = "x" ] ; then
+ # default to read_host
+ dc_smarthost="${dc_readhost}"
+ db_set exim4/dc_smarthost "${dc_smarthost}"
+ fi
+ db_input high "$EX4QUESTION" || true
+ ;;
+ 26)
+ EX4QUESTION=""
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ # satellite-system! Only ask for relay_nets/relay_domains if they are
+ # nonempty - we cannot distinguish whether they were set outside debconf
+ # or whether the user switched dc_eximconfig_configtype
+ db_get exim4/dc_relay_nets || true
+ dc_relay_nets="$RET"
+ db_get exim4/dc_relay_domains || true
+ dc_relay_domains="$RET"
+ if [ "x${dc_relay_nets}" != "x" ] ; then
+ db_input medium exim4/dc_relay_nets || true
+ NEXTSTATE=$(($STATE + 1))
+ fi
+ if [ "x${dc_relay_domains}" != "x" ] ; then
+ NEXTSTATE=$(($STATE + 1))
+ db_input medium exim4/dc_relay_domains || true
+ fi
+ ;;
+ 27)
+ EX4QUESTION="exim4/dc_minimaldns"
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATELIMIT + 1))
+ db_input low "$EX4QUESTION" || true
+ ;;
+
+ 28)
+ # local mail only
+ EX4QUESTION="exim4/mailname"
+ db_input medium "$EX4QUESTION" || true
+ PREVSTATE=2
+ NEXTSTATE=$(($STATE + 1))
+ ;;
+ 29)
+ EX4QUESTION=""
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ if [ "x${dc_local_interfaces}" = "xnotset" ] ; then
+ dc_local_interfaces='127.0.0.1'
+ db_set exim4/dc_local_interfaces '127.0.0.1'
+ fi
+ db_input medium exim4/dc_local_interfaces || true
+ ;;
+ 30)
+ EX4QUESTION=""
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATE + 1))
+ # local mail only -system! Only ask for relay_nets/relay_domains if they are
+ # nonempty - we cannot distinguish whether they were set outside debconf
+ # or whether the user switched dc_eximconfig_configtype
+ db_get exim4/dc_relay_nets || true
+ dc_relay_nets="$RET"
+ db_get exim4/dc_relay_domains || true
+ dc_relay_domains="$RET"
+
+ if [ "x${dc_relay_nets}" != "x" ] ; then
+ db_input medium exim4/dc_relay_nets || true
+ fi
+ if [ "x${dc_relay_domains}" != "x" ] ; then
+ db_input medium exim4/dc_relay_domains || true
+ fi
+ ;;
+ 31)
+ EX4QUESTION="exim4/dc_minimaldns"
+ PREVSTATE=$(($STATE - 1))
+ NEXTSTATE=$(($STATELIMIT + 1))
+ db_input low "$EX4QUESTION" || true
+ ;;
+ 35)
+ #MANUAL upgrade fom exim3
+ EX4QUESTION="exim4/exim3_upgrade"
+ PREVSTATE=2
+ NEXTSTATE=$(($STATE + 1))
+ # same priority as configtype because of danger of loop?
+ db_input critical "$EX4QUESTION" || true
+ ;;
+ 36)
+ EX4QUESTION=""
+ PREVSTATE=2
+ db_get exim4/exim3_upgrade || true
+ if [ "$RET" = "false" ]; then
+ NEXTSTATE=1
+ else
+ #break loop
+ NEXTSTATE=$(($STATELIMIT + 1))
+ fi
+ ;;
+ esac
+ if db_go; then
+ STATE=$NEXTSTATE
+ else
+ STATE=$PREVSTATE
+ fi
+done
+if [ "$STATE" = 0 ] ; then
+ # User pressed back on the first question, go back to previous
+ # package if run by base-config 2.0. #222773.
+ exit 30
+fi
+
+# make sure dc_local_interfaces is set to sane value
+if [ "x${dc_local_interfaces}" = "xnotset" ] ; then
+ dc_local_interfaces=''
+ db_set exim4/dc_local_interfaces ''
+fi
+
+if [ ! -e /etc/aliases ] || \
+ ! grep -q '^root:[[:space:]]*[[:alnum:]]' /etc/aliases ; then
+ db_input high exim4/dc_postmaster || true
+ db_go || true
+fi
+
+db_get exim4/dc_postmaster || true
+dc_postmaster=`echo "$RET" | stripwhitespace`
+
+# if [ "x${dc_eximconfig_configtype}" = "xsatellite" ] || [ "x${dc_eximconfig_configtype}" = "xlocal" ] ; then
+# # reset dc_relay_domains dc_relay_nets and dc_other_hostnames
+# db_set exim4/dc_relay_domains ""
+# db_set exim4/dc_relay_nets ""
+# db_set exim4/dc_other_hostnames ""
+# fi
+if [ "$1" = "reconfigure" ] && [ -x /etc/init.d/exim4 ] &&\
+ command -v invoke-rc.d >/dev/null 2>&1; then
+ invoke-rc.d exim4 reload || true
+fi
diff --git a/debian/exim4-config.dirs b/debian/exim4-config.dirs
new file mode 100644
index 0000000..e3a0edd
--- /dev/null
+++ b/debian/exim4-config.dirs
@@ -0,0 +1,6 @@
+/usr/sbin
+/etc/exim4/conf.d
+/etc/ppp/ip-up.d
+/usr/share/doc/exim4-config/examples
+/usr/share/man/man8
+/var/lib/exim4
diff --git a/debian/exim4-config.docs b/debian/exim4-config.docs
new file mode 100644
index 0000000..400e06e
--- /dev/null
+++ b/debian/exim4-config.docs
@@ -0,0 +1,2 @@
+debian/debconf/default_acl
+debian/README.system_aliases
diff --git a/debian/exim4-config.install b/debian/exim4-config.install
new file mode 100644
index 0000000..3939218
--- /dev/null
+++ b/debian/exim4-config.install
@@ -0,0 +1 @@
+debian/debconf/30_exim4-config_example_check_rcpt usr/share/doc/exim4-config/examples/acl
diff --git a/debian/exim4-config.manpages b/debian/exim4-config.manpages
new file mode 100644
index 0000000..6359efc
--- /dev/null
+++ b/debian/exim4-config.manpages
@@ -0,0 +1,2 @@
+debian/manpages/update-exim4.conf.8
+debian/manpages/update-exim4defaults.8
diff --git a/debian/exim4-config.postinst b/debian/exim4-config.postinst
new file mode 100644
index 0000000..d87bc10
--- /dev/null
+++ b/debian/exim4-config.postinst
@@ -0,0 +1,295 @@
+#!/bin/sh
+
+set -e
+. /usr/share/debconf/confmodule
+
+[ -n "$EX4DEBUG" ] && set -x
+
+db_version 2.0
+
+get_value() {
+ db_get $1
+ code="$?"
+ if [ "$code" -eq "0" ]; then
+ :
+ else
+ echo "Error getting debconf answer $1: debconf code=$code" >&2
+ exit $code
+ fi
+}
+
+write_header() {
+ cat <<EOF > /etc/exim4/update-exim4.conf.conf
+# /etc/exim4/update-exim4.conf.conf
+#
+# Edit this file and /etc/mailname by hand and execute update-exim4.conf
+# yourself or use 'dpkg-reconfigure exim4-config'
+
+EOF
+}
+
+addrootalias() {
+# remove leading and ending whitespace, shrink multiple whitespace, separate
+# entries with commas
+poma=`echo "$1" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]][[:space:]]*/,/g'`
+if [ "xnone" != "x$poma" ] && [ "x" != "x$poma" ]; then
+ echo "root: ${poma}" >> /etc/aliases
+fi
+}
+
+#initialize /etc/aliases
+writealiases() {
+echo '# /etc/aliases' > /etc/aliases.tmp
+echo 'mailer-daemon: postmaster' >> /etc/aliases.tmp
+for i in postmaster nobody hostmaster usenet news webmaster www ftp abuse noc security ; do
+ echo "${i}: root"
+done >> /etc/aliases.tmp
+mv /etc/aliases.tmp /etc/aliases
+}
+
+alias stripwhitespace="sed -e 's/^[[:blank:]]*//' -e 's/[[:blank:]]*$//'"
+
+# return success if md5sum matches file
+unmodified() {
+ [ "$#" -eq 1 ] || return 1
+ [ -f "$1" ] || return 1
+ # first line, without the leading '# '.
+ checksum_current=`sed -n -e '1s/^# //' -e '1p;1q' "$1"`
+
+ # md5sum over the rest of the file.
+ # some versions of md5sum produce
+ # '68b329da9893e34099c7d8ad5cb9c940 -' others don't add the dash.
+ # '68b329da9893e34099c7d8ad5cb9c940'
+ checksum_new=`sed -n '2,$p' "$1" | md5sum | cut -d\ -f1`
+
+ if [ "${checksum_current}" = "${checksum_new}" ] ; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+convert_to_long ()
+{
+ case "$1" in
+ internet)
+ echo -n "internet site; mail is sent and received directly using SMTP"
+ ;;
+ smarthost)
+ echo -n "mail sent by smarthost; received via SMTP or fetchmail"
+ ;;
+ satellite)
+ echo -n "mail sent by smarthost; no local mail"
+ ;;
+ local)
+ echo -n "local delivery only; not on a network"
+ ;;
+ exim3manual)
+ echo -n "manually convert from handcrafted Exim v3 configuration"
+ ;;
+ none)
+ echo -n "no configuration at this time"
+ ;;
+ esac
+}
+convert_to_short ()
+{
+ case "$1" in
+ "internet site; mail is sent and received directly using SMTP")
+ echo -n "internet"
+ ;;
+ "mail sent by smarthost; received via SMTP or fetchmail")
+ echo -n "smarthost"
+ ;;
+ "mail sent by smarthost; no local mail")
+ echo -n "satellite"
+ ;;
+ "local delivery only; not on a network")
+ echo -n "local"
+ ;;
+ "manually convert from handcrafted Exim v3 configuration")
+ echo -n "exim3manual"
+ ;;
+ "no configuration at this time")
+ echo -n "none"
+ ;;
+ esac
+}
+
+# remove orphaned autogenerated conffile if unmodified. 4.20-2.
+if [ "$1" = "configure" ] && \
+ dpkg --compare-versions "$2" le-nl "4.20-1" ; then
+
+ for i in /etc/exim4/conf.d/rewrite/30_exim4-config_email-addresses \
+ /etc/exim4/conf.d/rewrite/35_exim4-config_masquerade ; do
+ if unmodified "$i"; then
+ echo "Removing orphaned unmodified configfile $i" 1>&2
+ rm "$i"
+ fi
+ done
+
+fi
+if [ "$1" = "configure" ] && \
+ dpkg --compare-versions "$2" le-nl "4.20-2" ; then
+ if unmodified "/etc/exim4/conf.d/main/03_exim4-config_neverusers"; then
+ echo "Removing orphaned unmodified configfile /etc/exim4/conf.d/main/03_exim4-config_neverusers" 1>&2
+ rm "/etc/exim4/conf.d/main/03_exim4-config_neverusers"
+ fi
+fi
+
+# Disable orphaned inetd-entries from exim (v3) caused by bugs #202670
+# and #182206.
+if [ "$1" = "configure" ] &&\
+ [ -x /usr/sbin/update-inetd ] && [ ! -x /usr/sbin/exim ] && \
+ egrep -q '^smtp[[:space:]]*stream[[:space:]]*tcp[[:space:]]*nowait[[:space:]]*mail[[:space:]]*/usr/sbin/+exim exim -bs' /etc/inetd.conf
+then
+ update-inetd --comment-chars \#disabled\# \
+ --pattern '/usr/sbin/exim exim -bs' --disable smtp
+fi
+
+if [ "$1" = "configure" ] &&\
+ ! getent passwd Debian-exim > /dev/null ; then
+ echo 'Adding system-user for exim (v4)' 1>&2
+ adduser --system --group --home /var/spool/exim4 --no-create-home \
+ --disabled-login --force-badname Debian-exim > /dev/null
+fi
+
+# fix permissions of /etc/exim4/passwd.client
+if [ "$1" = "configure" ] ; then
+ if ! dpkg-statoverride --list /etc/exim4/passwd.client > /dev/null 2>&1
+ then
+ dpkg-statoverride --update --add root Debian-exim 0640 \
+ /etc/exim4/passwd.client
+ fi
+
+ find /etc/exim4 -user mail \( -type f -or -type d \) -print |\
+ while read i ;
+ do
+ if ! dpkg-statoverride --list "$i" > /dev/null ; then
+ chown Debian-exim "$i"
+ fi
+ done
+ find /etc/exim4 -group mail \( -type f -or -type d \) -print |\
+ while read i ;
+ do
+ if ! dpkg-statoverride --list "$i" > /dev/null ; then
+ chgrp Debian-exim "$i"
+ fi
+ done
+fi
+
+case "$1" in
+ configure)
+ # Configure Exim##############################
+ ##############################################
+ # valid config directives
+ dc_directives="dc_eximconfig_configtype dc_other_hostnames dc_local_interfaces dc_readhost dc_relay_domains dc_minimaldns dc_relay_nets dc_smarthost CFILEMODE dc_use_split_config"
+ # Generate config-file if it does not yet exist
+ if [ ! -e /etc/exim4/update-exim4.conf.conf ] ; then
+ write_header
+ for variable in ${dc_directives} ; do
+ echo "${variable}="
+ done >> /etc/exim4/update-exim4.conf.conf
+ fi
+
+ # If this is a fresh installation generate dummy files, which
+ # will be overwritten by update-exim4.conf
+ # if we add stuff later, we have to compare versions:
+ # if [ -z "$2" -o "$2" = "<unknown>" ] || dpkg --compare-versions "$2" lt "4.14-0.4" ; then
+ # for file in /etc/exim4/conf.d/main/03_exim4-config_neverusers ;do
+ # if [ ! -f "$file" ] ; then
+ # echo "# d41d8cd98f00b204e9800998ecf8427e" > "$file"
+ # chmod 644 "$file"
+ # fi
+ # done
+ #fi
+
+ # generate defaultfile
+ update-exim4defaults --init
+
+ # source /etc/exim4/update-exim4.conf.conf - needed for not
+ # debconf-managed values in there.
+ . /etc/exim4/update-exim4.conf.conf
+
+ # Substitute values from debconf db
+ db_get exim4/dc_eximconfig_configtype || true
+ dc_eximconfig_configtype=`convert_to_short "$RET"`
+ db_get exim4/dc_local_interfaces || true
+ dc_local_interfaces=`echo "$RET" | stripwhitespace`
+ db_get exim4/dc_other_hostnames || true
+ dc_other_hostnames=`echo "$RET" | stripwhitespace`
+ db_get exim4/dc_readhost || true
+ dc_readhost=`echo "$RET" | stripwhitespace`
+ db_get exim4/dc_relay_domains || true
+ dc_relay_domains=`echo "$RET" | stripwhitespace`
+ db_get exim4/dc_relay_nets || true
+ dc_relay_nets=`echo "$RET" | stripwhitespace`
+ db_get exim4/dc_smarthost || true
+ dc_smarthost=`echo "$RET" | stripwhitespace`
+ db_get exim4/dc_minimaldns || true
+ dc_minimaldns=`echo "$RET" | stripwhitespace`
+ db_get exim4/mailname || true
+ mailname=`echo "$RET" | stripwhitespace`
+ db_get exim4/use_split_config || true
+ dc_use_split_config=`echo "$RET" | stripwhitespace`
+
+ [ "x${CFILEMODE}" = "x" ] && CFILEMODE=644
+
+ db_get exim4/dc_postmaster
+ dc_postmaster=`echo "$RET" | stripwhitespace`
+
+ if [ ! -e /etc/aliases ] ; then
+ writealiases
+ fi
+ if ! grep -q '^root:[[:space:]]*[[:alnum:]]' /etc/aliases && \
+ [ "x${dc_postmaster}" != "xnone" ]; then
+ addrootalias "${dc_postmaster}"
+ fi
+
+ ### write configuration to files #
+ # add missing items
+ for variable in ${dc_directives} ; do
+ if ! egrep -q "^[[:space:]]*${variable}=" /etc/exim4/update-exim4.conf.conf ; then
+ echo "${variable}=''" >> /etc/exim4/update-exim4.conf.conf
+ fi
+ done
+ # insert new values, remove outdated ones.
+ sed -e "s^[[:space:]]*dc_eximconfig_configtype=.*dc_eximconfig_configtype='${dc_eximconfig_configtype}'" \
+ -e "s^[[:space:]]*dc_local_interfaces=.*dc_local_interfaces='${dc_local_interfaces}'" \
+ -e "s^[[:space:]]*dc_other_hostnames=.*dc_other_hostnames='${dc_other_hostnames}'" \
+ -e "s^[[:space:]]*dc_readhost=.*dc_readhost='${dc_readhost}'" \
+ -e "s^[[:space:]]*dc_relay_domains=.*dc_relay_domains='${dc_relay_domains}'" \
+ -e "s^[[:space:]]*dc_relay_nets=.*dc_relay_nets='${dc_relay_nets}'" \
+ -e "s^[[:space:]]*dc_smarthost=.*dc_smarthost='${dc_smarthost}'" \
+ -e "s^[[:space:]]*dc_minimaldns=.*dc_minimaldns='${dc_minimaldns}'" \
+ -e "s^[[:space:]]*CFILEMODE=.*CFILEMODE='${CFILEMODE}'" \
+ -e "s^[[:space:]]*dc_never_users=.*" \
+ -e "s^[[:space:]]*dc_use_split_config=.*dc_use_split_config='${dc_use_split_config}'" \
+ < /etc/exim4/update-exim4.conf.conf \
+ > /etc/exim4/update-exim4.conf.conf.tmp
+ mv /etc/exim4/update-exim4.conf.conf.tmp /etc/exim4/update-exim4.conf.conf
+
+ echo $mailname > /etc/mailname
+ ### configuration files written ##
+
+
+ if [ "${dc_eximconfig_configtype}" != "none" ] &&\
+ [ "${dc_eximconfig_configtype}" != "exim3manual" ]; then
+ update-exim4.conf
+ fi
+
+ ;;
+esac
+
+# remove orphaned conffile if unmodified. 4.20-2.
+if [ "$1" = "configure" ] && \
+ dpkg --compare-versions "$2" le-nl "4.20-1" && \
+ [ -e /etc/exim4/email-addresses ] && \
+ [ `md5sum /etc/exim4/email-addresses | cut -d\ -f1` = "6bea09fbb18e4676012105fa5fc726c6" ]
+then
+ echo "Removing orphaned unmodified configfile /etc/exim4/email-addresses" 1>&2
+ rm /etc/exim4/email-addresses
+fi
+
+
+#DEBHELPER#
diff --git a/debian/exim4-config.postrm b/debian/exim4-config.postrm
new file mode 100644
index 0000000..ab1d7b0
--- /dev/null
+++ b/debian/exim4-config.postrm
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+set -e
+. /usr/share/debconf/confmodule
+
+[ -n "$EX4DEBUG" ] && set -x
+
+case "$1" in
+ purge)
+ dpkg-statoverride --remove /etc/exim4/passwd.client || true
+ rm -f /etc/exim4/update-exim4.conf.conf
+ rm -f /var/lib/exim4/config.autogenerated
+ rm -f /etc/exim4/conf.d/main/03_exim4-config_neverusers \
+ /etc/exim4/conf.d/rewrite/30_exim4-config_email-addresses \
+ /etc/exim4/conf.d/rewrite/35_exim4-config_masquerade
+
+ # remove empty directories in /etc/exim4
+ rmdir /etc/exim4/conf.d/auth /etc/exim4/conf.d/acl \
+ /etc/exim4/conf.d/transport /etc/exim4/conf.d/main \
+ /etc/exim4/conf.d/retry /etc/exim4/conf.d/rewrite \
+ /etc/exim4/conf.d/router /etc/exim4/conf.d \
+ /etc/exim4 /var/lib/exim4 2> /dev/null || true
+ # remove user
+ deluser --quiet Debian-exim > /dev/null || true
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-config.templates b/debian/exim4-config.templates
new file mode 100644
index 0000000..e0ce528
--- /dev/null
+++ b/debian/exim4-config.templates
@@ -0,0 +1,2518 @@
+Template: exim4/dc_eximconfig_configtype
+Type: select
+Choices: internet site; mail is sent and received directly using SMTP, mail sent by smarthost; received via SMTP or fetchmail, mail sent by smarthost; no local mail, local delivery only; not on a network, manually convert from handcrafted Exim v3 configuration, no configuration at this time
+Choices-cs: internetov pota; pota je pjmna a doruovna pmo protokolem SMTP, odesln poty pes chytr pota; pjem pes SMTP nebo fetchmail, odesln poty pes chytr pota; dn lokln pota, pouze lokln pota; pota nen na sti, run pevst nastaven z Eximu verze 3, dn nastaven
+Choices-da: internet-sted; post sendes og modtages direkte med SMTP, post sendt af smarthost; hentet via SMTP eller fetchmail, post sendt af smarthost; ingen lokal post, kun lokal levering; ikke p et netvrk, overst manuelt fra hndlavet Exim v3-opstning, ingen opstning endnu
+Choices-de: Internet-Server - Mail wird ber SMTP versandt und empfangen, Versand ber Relay-Host; Empfang mit SMTP oder fetchmail, Versand ber Relay-Host ohne lokale Zustellung normaler Mail, Nur lokale Mailzustellung (keine Netzwerkverbindung), Manuelle Konversion einer bestehenden Exim v3 Konfiguration, Keine Konfiguration zum jetzigen Zeitpunkt
+Choices-el: (internet) - SMTP, smarthost - SMTP fetchmail, smarthost - , - , Exim v3,
+Choices-es: internet site; el correo se enva y recibe directamente usando SMTP, el correo se enva mediante un smarthost; se recibe a travs de SMTP o fetchmail, el correo se enva mediante un smarthost; sin correo local, slamente entrega local; sin red, convierte manualmente a partir de la configuracin manual de exim v3, sin configuracin de momento
+Choices-fi: Internetiin kytketty kone; lhetetys ja vastaanotto suoraan SMTP:ll, lhetetys smarthostin kautta; vastaanottoon SMTP tai fetchmail, lhetetys smarthostin kautta; ei paikallista shkpostia, vain paikallinen shkpostien toimitus; verkkoyhteytt ei ole, Muunna itse Exim v3:n itse tehdyist asetuksista, ei tehd asetuksia nyt
+Choices-fr: Distribution directe par SMTP (site Internet), Envoi via relais (smarthost) - rception SMTP ou fetchmail, Envoi via relais (smarthost) - pas de courrier local, Distribution locale seulement (pas de rseau), Conversion manuelle depuis une configuration spcifique d'Exim v3, Pas de configuration maintenant
+Choices-it: sito internet; posta inviata e ricevuta direttamente con SMTP, posta inviata tramite uno smarthost; ricevuta via SMTP o fetchmail, posta inviata tramite uno smarthost; niente posta locale, solo consegna locale; non in rete, conversione manuale dalla configurazione personalizzata di Exim v3, nessuna configurazione per il momento
+Choices-ja: 󥿡ͥåȥ; ᡼ SMTP Ȥäľ, ޡȥۥȤǥ᡼; SMTP ޤ fetchmail Ǽ, ޡȥۥȤǥ᡼; ᡼ʤ, ۿΤ; ͥåȥʤ, Exim v3 ưѴ, ꤷʤ
+Choices-lt: interneto saitas; pato siuntimas ir mimas tiesiogiai SMTP protokolu, pato siuntimas per smarthost; primimas per SMTP arba fetchmail, pato siuntimas per smarthost; nra lokalaus pato, tik lokalus pristatymas; tinklo nra, Exim v3 konfigracijos rankinis konvertavimas, nra konfigracijos iuo metu
+Choices-nb: internett-sted; e-post sendes og mottas direkte med SMTP, e-post sendt av smartvert; hentes via SMTP eller fetchmail, e-post sendt av smartvert; ingen lokal e-post, kun lokal levering; ikke p noe nettverk, oversett manuelt fra hndoppsatt Exim v3-konfigurasjon, ingen konfigurering n
+Choices-nl: Internet-site; e-mail wordt direct verzonden en ontvangen via SMTP, e-mail met smarthost; e-mail wordt ontvangen via SMTP of fetchmail, en verzonden via een smarthost; Geen lokale e-mail, Enkel lokale e-mail; wanneer u niet over een netwerk beschikt, handmatig aangemaakte Exim3 configuratie zelf omzetten, Nu niet configureren
+Choices-pt: site internet; o mail enviado e recebido usando SMTP, mail enviado por smarthost; recebido por SMTP ou fetchmail, mail enviado por smarthost; no existe mail local, apenas entrega local; no se encontra numa rede, converter manualmente de uma configurao manual do Exim v3, sem nenhuma configurao neste momento.
+Choices-pt_BR: site internet; as mensagens so enviadas e recebidas diretamente usando SMTP, mensagens enviadas por smarthost; recebidas por SMTP ou fetchmail, mensagens enviadas por smarthost; nenhuma mensagem local, somente entrega local; fora de uma rede, converter manualmente de uma configurao Exim v3 feita manualmente, sem configurao no momento.
+Choices-ru: Internet-; SMTP, ; SMTP fetchmail, ; , ; , Exim v3 ,
+Choices-sv: internetvrd; e-post skickas och tas emot direkt med SMTP, e-post skickas av smarthost; tas emot via SMTP eller fetchmail, e-post skickas av smarthost; ingen lokal e-post, endast lokal leverans; inte del av ett ntverk, konvertera manuellt frn en hemsnickrad Exim v3-konfiguration, ingen konfigurering just nu
+Choices-zh_CN: վֱͨ SMTP ͻż, smarthost ţͨ SMTP fetchmail ż, smarthost ţޱż, ڱͶż; , ֶתд Exim v3 , ڲ
+Description: General type of mail configuration:
+ Several general types of mail system configuration are possible. Select the
+ one that best meets your needs.
+ .
+ Systems with dynamic IP addresses, including dialup systems, probably should
+ be configured to send outgoing mail to another machine, called a "smart host"
+ for delivery. You can choose to receive mail on such a system; or to have no
+ local mail delivery, except mail for root and postmaster.
+Description-cs: Zkladn model potovnho nastaven:
+ K dispozici je nkolik zkladnch model potovnho nastaven. Vyberte si
+ ten, kter nejlpe odpovd vaim poadavkm.
+ .
+ Potae s dynamickmi IP adresami by mly bt nastaveny tak, e vekerou
+ odchoz potu poslaj jinmu, "chytrmu", potai (smarthost), kter se
+ postar o jej doruen. Mete si vybrat, zda na takovm systmu chcete
+ potu pijmat, nebo ji zakzat (s vjimkou uivatele root a postmaster).
+Description-da: Overordnet post-opstningstype?
+ Der er mulighed for flere generelle slags postsystem-opstninger. Vlg den
+ type, der passer dig bedst.
+ .
+ System med dynamiske IP-adresser, herunder opkaldssystemer, skal nok
+ sttes op til at sende udgende post til en anden maskine, som kaldes en
+ "smarthost" for levering. Du kan vlge at modtage post p sdan et system:
+ eller slet ikke at have lokal postlevering, udover post til brugerne root
+ og postmaster.
+Description-de: E-Mail Konfigurationstyp:
+ Whlen Sie den Konfigurationstypus, der Ihren Bedrfnissen am Besten
+ entspricht.
+ .
+ Systeme mit wechselnder IP-Adresse (z.B. Dial-In Zugang) sollten
+ ausgehende Mails zur Zustellung an einen Relay-Server ("Smarthost")
+ weitergeben. Sie knnen whlen, ob ein derartiges System Mail empfangen
+ und lokal zustellen soll, oder ob nur Mail fr root und postmaster lokal
+ zugestellt werden soll.
+Description-el: :
+ .
+ .
+ .
+ IP, modem,
+
+ , "smarthost" .
+
+
+ root postmaster.
+Description-es: Tipo de configuracin general del correo:
+ Hay varios tipos de configuracin general para el sistema de correo.
+ Seleccione la que se ajuste mejor a sus necesidades.
+ .
+ Los sistemas con direcciones IP dinmicas, incluyendo las de acceso
+ telefnico, deberan configurarse probablemente mediante el envo del
+ correo a otro servidor llamado smart host para el reparto. Puede escojer
+ recibir el correo a travs de este sistema; o no tener reparto de correo
+ local, excepto para el correo dirigido a los usuarios root y
+ postmaster (el admistrador de correo).
+Description-fi: Shkpostin asetusten perustyyppi:
+ Shkpostijrjestelmn asetusten perustyypeiss on monta mahdollisuutta.
+ Valitse se joka parhaiten vastaa tarpeita.
+ .
+ Koneissa joissa kytetn vaihtuvia IP-osoitteita, mukaanlukien
+ soittoyhteytt kyttvt, asetukset olisi luultavimmin tehtv
+ lhettmn shkposti toiselle koneelle jaettavaksi (tmmisest
+ koneesta kytetn termi "smarthost"). Valinnaisesti tuollainen
+ jrjestelm voi vastaanottaa shkpostia tai olla kokonaan ilman
+ paikallista shkpostin jakelua, paitsi kyttjille root ja postmaster
+ tuleva posti.
+Description-fr: Type gnral de configuration:
+ Plusieurs types gnraux de configuration du serveur de courrier sont
+ possibles. Veuillez choisir celle qui correspond le mieux vos besoins.
+ .
+ Les systmes utilisant des adresses IP dynamiques, y compris les systmes
+ connects par intermittence, doivent le plus souvent tre configurs pour
+ envoyer les courriels sortant une autre machine qui sert de relais
+ (smarthost). Vous pouvez choisir de recevoir du courriel sur de tels
+ systmes ou bien de n'effectuer aucune distribution locale sauf pour
+ root et postmaster.
+Description-it: Tipo di configurazione del sistema di posta:
+ Sono possibili diversi tipi di configurazione del sistema di posta.
+ Selezionare quello che si adatta meglio alle proprie esigenze.
+ .
+ I sistemi con un indirizzo IP dinamico, compresi i sistemi dialup, vanno
+ probabilmente configurati per inviare la posta in uscita a un'altra
+ macchina, chiamata smart host, che si occupi della consegna. Si pu
+ scegliere di ricevere la posta su un sistema del genere o di non abilitare
+ la consegna locale, fatta eccezione per root e postmaster.
+Description-ja: ᡼ΰŪʥ:
+ ᡼륷ƥΤĤΰŪʥפѤǤޤɬפȤΤ˺ŬȻפΤ1򤷤Ƥ
+ .
+ 륢åץƥʤɤưŪ IP
+ ɥ쥹ΥƥǤϡ餯Ф᡼ۿΤ̤Υޥ
+ (֥ޡȥۥȡפȸƤФ)
+ 褦ꤹ٤Ǥ礦Τ褦ʥƥǥ᡼뤫root
+ postmaster
+ ؤΥ᡼᡼ۿʤǤޤ
+Description-lt: Bendras pato konfigracijos tipas:
+ Egzistuoja keletas bendr pato konfigracijos tip. Pasirinkite vien i
+ j, geriausiai atitinkant Js poreikius.
+ .
+ Sistemos su dinaminiu IP adresu, skaitant sistemas su komutuojamom
+ telefono linijom, greiiausiai turt bti konfigruotos sisti ieinant
+ pat kitai pat isiuntinjaniai mainai, vadinamai "smart host". Js
+ galite pasirinkti arba pat priimti su tokia sistema, arba neturti
+ lokalaus pato pristatymo, iskyrus naudotojams root ir postmaster.
+Description-nb: Overordnet e-post-konfigurasjonstype:
+ Det er mulig konfigurere epost-systemene p flere mter. Velg den som
+ best passer dine behov.
+ .
+ Systemer med dynamiske IP-adresser, inkludert oppringt-systemer, burde som
+ regel settes opp til sende utgende e-post til en annen maskin, en
+ skalt "smartvert", for levering. Du kan velge motta mail via et slikt
+ system, eller ha ingen lokal maillevering overhodet, bortsett fra e-post
+ til root og postmaster.
+Description-nl: Algemeen type e-mailconfiguratie:
+ Er zijn verschillende algemene types van e-mailsysteem mogelijk. Welke
+ hiervan komt het best met uw behoeften overeen?
+ .
+ Systemen met dynamische IP-adressen (dus ook inbelsystemen), dienen
+ normaliter ingesteld te worden om uitgaande mail naar een zogenaamde
+ 'smarthost' machine te sturen. U kunt kiezen om e-mail te ontvangen op
+ zo'n machine; of om lokale e-mail enkel af te leveren voor de gebruikers
+ root en postmaster.
+Description-pt: Tipo geral de configurao de mail:
+ Diversos tipos gerais de configuraes de sistemas de mail so possveis.
+ Seleccione aquela que melhor se adequa s suas necessidades.
+ .
+ Sistemas com endereos IP dinmicos, inclundo sistemas de acesso
+ telefnico, provavelmente devero ser configurados para enviar mails para
+ outra mquina, chamada de "smart host" , para que o mesmo possa ser
+ entregue. Pode optar por receber mail em sistemas como esse; ou no ter
+ entrega de mail local, excepto mail para o root e para o postmaster.
+Description-pt_BR: Tipo geral de configurao de e-mail :
+ Diversos tipos gerais de configuraes de sistemas de mensagens so
+ possveis. Selecione aquele que atende melhor a suas necessidades.
+ .
+ Sistemas com endereos IP dinmicos, inclundo sistemas discados,
+ provavelmente devero ser configurados para enviar mensagens para outra
+ mquina, chamada de "smart host" , para que as mesmas possam ser
+ entregues. Voc pode optar por receber mensagens em sistemas como esse; ou
+ no ter entrega de mensagens local, exceto mensagens para o root e para o
+ postmaster.
+Description-ru: :
+ .
+ , .
+ .
+ IP-,
+ , ,
+ , "". ,
+ ,
+ root postmaster.
+Description-sv: Generell typ av e-postkonfiguration:
+ Flera generella konfigurationer av e-postsystem r mjliga. Vlj den som
+ bst uppfyller dina behov.
+ .
+ System med dynamiska IP-adresser, dribland system med uppringd
+ frbindelse, br konfigureras att skicka utgende e-post till en annan
+ maskin, en s kallad smarthost, fr leverans. Du kan vlja att ta emot
+ e-post p ett sdant system eller att inte ha ngon lokal e-postleverans
+ frutom till root och postmaster.
+Description-zh_CN: ʼϵͳõijģʽ
+ ṩһЩʼϵͳijģʽѡһʺҪģʽ
+ .
+ ʹö̬ IP
+ ַϵͳκϵͳͨӦñΪijż͵һ̨ϣҲͶݹġsmart
+ hostѡڴϵͳţ߲Ͷݳ root postmaster
+ żıż
+
+Template: exim4/exim3_upgrade
+Type: boolean
+Default: true
+Description: Configure Exim4 manually?
+ You indicated that you have a handcrafted Exim 3 configuration.
+ To convert this to Exim 4, you can use the exim_convert4r4(8) tool
+ after the installation. Consult
+ /usr/share/doc/exim4-base/examples/example.conf.gz and
+ /usr/share/doc/exim4-base/README.Debian.gz!
+ .
+ Until your mail system is configured, it will be broken and cannot be
+ used.
+Description-cs: Nastavit Exim4 run?
+ Naznaujete, e mte sv vypiplan nastaven Eximu 3. Pro jeho pevod do
+ Eximu 4 mete po instalaci pout nstroj exim_convert4r4(8). Nezapomete
+ si pest /usr/share/doc/exim4-base/examples/example.conf.gz a
+ /usr/share/doc/exim4-base/README.Debian.gz!
+ .
+ Dokud potovn systm nenastavte, bude porouchan a nemete jej
+ vyuvat.
+Description-da: St Exim4 op manuelt?
+ Du har angivet at du har en hndlavet Exim v3-opstning. For at omstte
+ den til Exim v4, kan du bruge vrktjet exim_convert4r4(8) efter
+ installationen. Se i /usr/share/doc/exim4-base/examples/example.conf.gz og
+ /usr/share/doc/exim4-base/README.Debian.gz!
+ .
+ Indtil dit postsystem er sat op, vil det vre ude af funktion og kan ikke
+ benyttes.
+Description-de: Exim4 manuell konfigurieren?
+ Es ist eine manuell erstellte Exim v3 Konfiguration vorhanden, die an
+ Exim4 angepasste werden soll. Sie knnen nach der Installation versuchen,
+ die Konversion mit exim_convert4r4(8) vorzunehmen. Lesen Sie bitte
+ /usr/share/doc/exim4-base/examples/example.conf.gz und
+ /usr/share/doc/exim4-base/README.Debian.gz!
+ .
+ Das Mailsystem ist nicht funktionstchtig, bis Sie es konfigurieren.
+Description-el: Exim4;
+ Exim3.
+ Exim v4,
+ exim_convert4r4(8) .
+ /usr/share/doc/exim4-base/examples/example.conf.gz
+ /usr/share/doc/exim4-base/README.Debian.gz!
+ .
+ ,
+ .
+Description-es: Configurar Exim4 manualmente?
+ Usted indic que tiene una configuracin manual de Exim 3. Para
+ convertirla a Exim4, puede usar la herramienta exim_convert4r4(8) despus
+ de la instalacin. Consulte
+ /usr/share/doc/exim4-base/examples/example.conf.gz y
+ /usr/share/doc/exim4-base/README.Debian.gz!
+ .
+ Hasta que su sistema de correo no est configurado, estar inutilizado y
+ no podr usarse.
+Description-fi: Teetk Exim4:n asetukset itse?
+ Ilmoitit tehneesi Exim 3:n asetukset itse. Niiden muuttamiseen Exim 4:lle
+ voi kytt tykalua exim_convert4r4(8) asennuksen jlkeen. Tutki
+ tiedostoja /usr/share/doc/exim4-base/examples/example.conf.gz ja
+ /usr/share/doc/exim4-base/README.Debian.gz!
+ .
+ Shkpostijrjestelm on rikki eik sit voi kytt ennen kuin asetukset
+ on tehty.
+Description-fr: Souhaitez-vous configurer Exim4 vous-mme?
+ Vous avez indiqu possder une configuration spcifique d'Exim3. Si vous
+ souhaitez la convertir au format de la version4, vous devriez utiliser
+ l'outil exim_convert4r4(8) aprs l'installation. Veuillez consulter les
+ fichiers /usr/share/doc/exim4-base/examples/example.conf.gz et
+ /usr/share/doc/exim4-base/README.Debian.gz.
+ .
+ Tant qu'il ne sera pas configur, votre serveur de courrier ne sera pas en
+ tat de fonctionner et ne pourra pas tre utilis tel quel.
+Description-it: Configurare manualmente Exim4?
+ stato indicato che si possiede una configurazione personalizzata di Exim
+ 3. Per convertirla nel formato di Exim 4, si pu usare exim_convert4r4(8)
+ dopo l'installazione. Consultare
+ /usr/share/doc/exim4-base/examples/example.conf.gz e
+ /usr/share/doc/exim4-base/README.Debian.gz.
+ .
+ Fino a quando non viene configurato, il sistema di posta non funziona e
+ non pu essere usato.
+Description-ja: Exim4 ưꤷޤ?
+ Exim 3 ꤬ޤ Exim 4
+ Ѵˤϡ󥹥ȡΤȤ exim_convert4r4(8)
+ ġȤȤǤޤ/usr/share/doc/exim4-base/examples/example.conf.gz
+ /usr/share/doc/exim4-base/README.Debian.gz 褯ɤǤ!
+ .
+ ᡼륷ƥबꤵޤǡ᡼륷ƥϲ줿֤ѤǤޤ
+Description-lt: Ar konfigruoti Exim4 rankiniu bdu?
+ Js nurodte, kad turite paruot Exim 3 konfigracij. Tam kad
+ konvertuoti j Exim 4 konfigracij, po diegimo Js galite pasinaudoti
+ rankiu exim_convert4r4(8). Daugiau irkite
+ /usr/share/doc/exim4-base/examples/example.conf.gz ir
+ /usr/share/doc/exim4-base/README.Debian.gz!
+ .
+ Kol Js pato sistema nesukonfigruota, ji nebus tinkama darbui ir negali
+ bti naudojama.
+Description-nb: Sett opp Exim4 manuelt?
+ Du valgte at du har en hndlaget Exim 3-konfigurasjon. For konvertere
+ denne til Exim 4 kan du bruke verktyet exim_convert4r4(8) etter
+ installasjonen. Les /usr/share/doc/exim4-base/examples/example.conf.gz og
+ /usr/share/doc/exim4-base/README.Debian.gz!
+ .
+ Fr epost-systemet blir konfigurert, vil det vre brukket og kan ikke
+ brukes.
+Description-nl: Wilt u Exim4 handmatig configureren?
+ U heeft aangegeven dat u een handmatig gemaakte Exim3-configuratie heeft.
+ Om deze om te zetten naar een Exim4-configuratie kunt u het hulpprogramma
+ exim_convert4r4(8) gebruiken. Meer informatie vindt u in
+ /usr/share/doc/exim4-base/examples/example.conf.gz en
+ /usr/share/doc/exim4-base/README.Debian.gz.
+ .
+ Zolang uw e-mailsysteem niet ingesteld is zal het in een niet-werkende
+ staat, en dus onbruikbaar zijn.
+Description-pt: Configurar Exim4 manualmente?
+ Indicou que possui uma configurao manual do Exim 3. Para convert-la
+ para o Exim 4 pode usar a ferramenta exim_convert4r4(8) depois da
+ instalao.Consulte os ficheiros
+ /usr/share/doc/exim4-base/examples/example.conf.gz e
+ /usr/share/doc/exim4-base/README.Debian.gz!
+ .
+ Enquanto o sistema de mail no estiver configurado, no poder ser usado.
+Description-pt_BR: Configurar Exim4 manualmente ?
+ Voc indicou que possui uma configura do Exim 3 feita manualmente. Para
+ convert-la para o Exim 4 voc pode usar a ferramenta exim_convert4r4(8)
+ depois da instalao. Consulte os arquivo
+ /usr/share/doc/exim4-base/README.Debian.gz !
+ .
+ Seu sistema de mensagens estar quebrado e no poder ser usado at que
+ seja configurado.
+Description-ru: Exim4 ?
+ , Exim 3.
+ Exim 4,
+ exim_convert4r4(8).
+ /usr/share/doc/exim4-base/examples/example.conf.gz
+ /usr/share/doc/exim4-base/README.Debian.gz!
+ .
+ , ,
+ .
+Description-sv: Konfigurera Exim4 manuellt?
+ Du angav att du har en hemsnickrad Exim 3-konfiguration. Fr att
+ konvertera denna till Exim 4 kan du anvnda verktyget exim_convert4r4(8)
+ efter installationen. Konsultera
+ /usr/share/doc/exim4-base/examples/example.conf.gz och
+ /usr/share/doc/exim4-base/README.Debian.gz!
+ .
+ Till dess att ditt e-postsystem r konfigurerat kommer det att vara
+ trasigt och inte mjligt att anvnda.
+Description-zh_CN: ֶ Exim4
+ Exim 3 ļдĶùԶɡҪ뽫תΪ Exim 4
+ ʽڰװʹ exim_convert4r4(8) ߡο
+ /usr/share/doc/exim4-base/examples/example.conf.gz
+ /usr/share/doc/exim4-base/README.Debian.gz
+ .
+ ʼϵͳ֮ǰڹ״̬ʹá
+
+Template: exim4/no_config
+Type: boolean
+Default: true
+Description: Really leave the mail system unconfigured?
+ Until your mail system is configured, it will be broken and cannot be
+ used. You can of course configure it later, either by hand or by running
+ "dpkg-reconfigure exim4-config" as root.
+Description-cs: Opravdu nechcete nastavit potovn systm?
+ Dokud potovn systm nenastavte, bude porouchan a nemete jej
+ vyuvat. Nastaven samozejm mete provst pozdji run nebo pkazem
+ "dpkg-reconfigure exim4-config" (oboj pod uivatelem root).
+Description-da: Vil du virkelig undlade at stte postsystemet op?
+ Indtil dit postsystem er sat op, vil det vre ude af funktion og kan ikke
+ benyttes. Du kan naturligvis stte det op senere. Enten med hndkraft
+ eller ved at kre "dpkg-reconfigure exim4-config" som root.
+Description-de: Soll das Mailsystem wirklich nicht konfiguriert werden?
+ Solange bis Exim konfiguriert wird, ist das Mailsystem funktionsuntchtig.
+ Sie knnen Exim spter manuell konfigurieren oder als root
+ "dpkg-reconfigure exim4-config" starten.
+Description-el: ;
+ ,
+ .,
+ "dpkg-reconfigure exim4-config" root.
+Description-es: Realmente quiere dejar el sistema de correo sin configurar?
+ Su sistema de correo estar inutilizado y no podr utilizarse hasta que lo
+ configure. Naturalmente, puede configurarlo ms tarde, ya sea manualmente
+ o ejecutando dpkg-reconfigure exim4-config como administrador.
+Description-fi: Jtetnk tosiaankin shkpostijrjestelmn asetukset tekemtt?
+ Shkpostijrjestelm on rikki eik sit voi kytt ennen kuin asetukset
+ on tehty. Voit tietenkin tehd asetukset myhemmin, joko itse tai
+ suorittamalla "dpkg-reconfigure exim4-config" pkyttjn.
+Description-fr: Faut-il vraiment laisser le serveur de courrier non configur?
+ Tant qu'il ne sera pas configur, votre serveur de courrier ne sera pas en
+ tat de fonctionner et sera inutilisable en l'tat. Vous pouvez bien sr
+ le configurer vous-mme plus tard ou utiliser la commande
+ dpkg-reconfigure exim4-config avec les privilges du
+ super-utilisateur.
+Description-it: Lasciare il sistema di posta non configurato?
+ Fino a quando non viene configurato, il sistema di posta non funziona e
+ non pu essere usato. Naturalmente possibile configurarlo in un secondo
+ momento, manualmente oppure tramite dpkg-reconfigure exim4-config da
+ root.
+Description-ja: ˥᡼륷ƥ̤Τޤޤˤޤ?
+ ᡼륷ƥबꤵޤǡ᡼륷ƥϲ줿֤ѤǤʤΤȤʤޤ󡢤ȤǼưǡޤ
+ root Ȥ "dpkg-reconfigure exim4-config" ¹Ԥ뤳ȤǤޤ
+Description-lt: Ar tikrai palikti pato sistem nekonfigruota?
+ Kol Js pato sistema nesukonfigruota, ji nebus tinkama darbui ir negali
+ bti naudojama. Js inoma galsite atlikti konfigravim vliau rankiniu
+ bdu, arba bnant root naudotoju vykdydami komand "dpkg-reconfigure
+ exim4-config".
+Description-nb: Vil du virkelig la epost-systemet vre ukonfigurert?
+ Fr epost-systemet blir konfigurert, vil det vre brukket og kan ikke
+ brukes. Du kan selvsagt konfigurere det seinere, enten for hnd eller ved
+ kjre "dpkg-reconfigure exim4-config" som root.
+Description-nl: Bent u zeker dat u het e-mailsysteem niet wilt configureren?
+ Zolang uw e-mailsysteem niet ingesteld is, is het in een niet-werkende
+ staat en kan het dus niet gebruikt worden. U kunt de instellingen
+ natuurlijk later alsnog maken, hetzij handmatig, hetzij door
+ 'dpkg-reconfigure exim4-config' uit te voeren als root.
+Description-pt: Pretende deixar o sistema de mail no configurado?
+ Enquanto o sistema de mail no estiver configurado, no poder ser
+ usado.Poder sempre configur-lo manualmente mais tarde ou executando o
+ comando "dpkg-reconfigure exim4-config" como root.
+Description-pt_BR: Realmente deixar o sistema de mensagens no configurado ?
+ Seu sistema de mensagens estar quebrado e no poder ser usado at que
+ seja configurado. Voc pode, claro, configur-lo posteriormente
+ manualmente ou executando o comando "dpkg-reconfigure exim4-config" como
+ root.
+Description-ru: , ?
+ , ,
+ . ,
+ root "dpkg-reconfigure
+ exim4-config"
+Description-sv: Ska e-postsystemet verkligen lmnas okonfigurerat?
+ Till dess att ditt e-postsystem r konfigurerat kommer det att vara
+ trasigt och inte mjligt att anvnda. Du kan givetvis konfigurera det
+ senare, antingen fr hand eller genom att kra "dpkg-reconfigure
+ exim4-config" som root.
+Description-zh_CN: IJʼϵͳ
+ ʼϵͳ֮ǰڹ״̬ʹáȻԺֶ
+ root ִСdpkg-reconfigure exim4-configá
+
+Template: exim4/mailname
+Type: string
+Description: System mail name:
+ Your "mail name" is the hostname portion of the address to be shown on
+ outgoing news and mail messages (following the username and @ sign).
+ .
+ This name will be used by other programs besides Exim; it should be the
+ single, full domain name (FQDN) from which mail will appear to originate.
+ .
+ If you are configuring this system as 'satellite' this name won't appear
+ on From: lines of mail, as rewriting is used.
+Description-cs: Potovn jmno potae:
+ "Potovn jmno" je nzev potae a zrove st adresy za zavinem,
+ kter se bude zobrazovat na odchoz pot.
+ .
+ Toto jmno budou vyuvat i jin programy ne Exim a pota se bude tvit,
+ e odtud byla odeslna. Mlo by to bt jednoznan pln kvalifikovan
+ domnov jmno (FQDN).
+ .
+ Jestlie nastavujete systm jako satelitn, toto jmno se nezobraz ve
+ From: hlavikch, protoe se pouije pepisovn.
+Description-da: System-postnavn:
+ Dit 'postnavn' er vrtsnavn-delen af den adresse, der bliver vist i
+ udgende nyheds- og postbeskeder (det der str efter brugernavnet og
+ @-tegnet).
+ .
+ Dette navn bruges af andre programmer udover Exim; det br vre et enkelt,
+ fuldt domnenavn (FCDN) hvor post vil lade til at komme fra.
+ .
+ Hvis du stter dette system op som 'satelit'-system, vil dette navn ikke
+ optrde i From:-linjer i brevene, da der i s tilflde benyttes
+ omskrivning.
+Description-de: Mailname des Systems:
+ Ihr "Mailname" ist der Hostname aller ausgehenden News-Artikel und Mails,
+ der dem Nutzernamen und '@'-Zeichen folgende Teil der Adresse.
+ .
+ Dieser Name wird auch von anderen Programmen neben Exim genutzt, es sollte
+ dies der eindeutige voll-qualifizierte Domainname (FQDN) dieses Rechners
+ sein, er ist i.d.R. Teil der Absender-Adresse lokal generierter Mails.
+ .
+ Wenn Sie 'Satelliten-System' als Konfigurationskategorie gewhlt haben,
+ wird dieser name nicht im Absender ausgehender Mail (From:-Header)
+ aufscheinen, da "rewriting" benutzt wird.
+Description-el: :
+ " " email
+ news mail
+ ( @).
+ .
+
+ Exim, , (FQDN)
+ .
+ .
+ '',
+ From: ,
+ .
+Description-es: Nombre del sistema de correo:
+ Su mail name es la parte de la direccin del nombre del servidor que se
+ mostrar en los mensajes de noticias y de correo salientes (la que sigue
+ al nombre de usuario tras el signo @).
+ .
+ Este nombre se usar por otros programas adems de Exim; debera ser el
+ nico nombre de dominio totalmente cualificado (FQDN) desde el que el
+ correo parecer proceder.
+ .
+ Si est configurando el sistema como 'satlite' este nombre no aparecer
+ en el campo From: de la cabecera del correo, ya que ese campo ser
+ reescrito.
+Description-fi: Jrjestelmn postinimi:
+ Jrjestelmn "postinimi" on konenimen osuus shkpostiosoitteesta joka
+ listn lhteviin nyyseihin ja shkposteihin (kyttjnimen ja @-merkin
+ jlkeinen osa).
+ .
+ Tt nime kyttvt muutkin ohjelmat kuin Exim; sen tulisi olla yksi
+ tydellinen verkkoaluenimi (FQDN) jota kytetn lhettjn osoitteena.
+ .
+ Jos mrittelet tmn koneen satelliitiksi, tm nimi ei ny shkpostin
+ From:-riveill, koska osoitteiden uudelleenkirjoitus on kytss.
+Description-fr: Nom de courriel du systme:
+ Votre nom de courriel est la partie de l'adresse contenant le nom de
+ machine qui doit tre crite sur les courriers lectroniques ou sur les
+ articles des forums de discussion que vous postez. Il vient la suite du
+ nom d'utilisateur et du caractre @.
+ .
+ D'autres programmes qu'Exim se servent de ce nom; il doit correspondre au
+ domaine unique et compltement qualifi (FQDN) d'o le courrier semblera
+ provenir.
+ .
+ Si vous configurez ce systme comme un systme satellite, ce nom
+ n'apparatra pas dans l'en-tte From: des courriels car une rcriture
+ aura lieu.
+Description-it: Mail name del sistema:
+ Il mail name del sistema la porzione di indirizzo che indica il nome
+ host, ossia quella che appare dopo il nome utente e il segno @; essa
+ presente in tutti i messaggi di news e di posta in uscita.
+ .
+ Questo nome verr usato da altri programmi oltre a Exim; esso rappresenta
+ il nome completo del dominio (FQDN) che apparir come provenienza della
+ posta.
+ .
+ Se si sta configurando questo sistema come satellite, questo nome non
+ comparir nel campo From: dei messaggi, poich viene riscritto.
+Description-ja: ƥ᡼̾:
+ "᡼̾" ϡФ˥塼ӥ᡼Υå (桼̾ @
+ ΤȤդ) ɽ륢ɥ쥹Υۥ̾ʬǤ
+ .
+ ̾ Exim
+ ǤʤۤΥץˤäƤȤޤϡ᡼뤬Ф뤳Ȥˤʤñδɥᥤ̾
+ (FQDN) ˤ٤Ǥ
+ .
+ Υƥ 'ƥ饤'
+ ȤꤷƤΤǤС̾ϥ᡼ From:
+ Ԥˤϸ줺񤭴줿ΤȤޤ
+Description-lt: Pato sistemos vardas:
+ Js "pato vardas" - tai kompiuterio vardas adreso dalyje, matomas
+ ieinaniuose naujien ir pato praneimuose (sekantis po naudotojo vardo
+ ir @ enklo).
+ .
+ vard be Exim, naudoja ir kitos programos; jis turi bti atskiras,
+ pilnas domeno vardas (FQDN), pagal kur matysis i kur patas kils.
+ .
+ Jei Js i sistem konfigruojate kaip 'satelit', is vardas nebus
+ rodomas laiko eilutje Nuo:, nes bus naudojamas perraymas.
+Description-nb: Systemets epost-navn:
+ Epost-navnet ditt er vertsnavn-delen av adressen din som vises p utgende
+ nyhetsgruppe- og epost-meldinger (etter brukernavnet og @-tegnet).
+ .
+ Dette navnet vil ogs brukes av andre programmer enn Exim; det burde vre
+ det fulle domenenavnet (FQDN) som mail skal se ut til komme fra.
+ .
+ Hvis du konfigurerer dette systemet som et `satellitt'-system, vil ikke
+ dette navnet synes p From:-linjene i e-post, ettersom omskriving vil tre
+ i kraft.
+Description-nl: Systeem e-mail-naam:
+ Uw `e-mail-naam' is de computernaam die getoond gebruikt wordt voor het
+ bij uitgaande niews- en e-mailberichten getoonde adres (wat volgt op de
+ gebruikersnaam en het @-teken).
+ .
+ Omdat deze naam ook door andere programma's dan Exim gebruikt wordt dient
+ deze de volledige domeinnaam (FQDN) te zijn waarvan berichten zullen
+ lijken te komen.
+ .
+ Als u dit systeem als satellietsysteem instelt zal deze naam niet in het
+ afzenderadres verschijnen, daar herschrijven dan gebruikt wordt.
+Description-pt: Nome do sistema de mail:
+ O "mail name" (nome do sistema de mail) a parte do nome do sistema
+ (hostname) do endereo que ser exibido em mensagens de e-mail (aps o
+ nome de utilizador e o smbolo @).
+ .
+ Este nome ser usado por outros programas alm do Exim. Por isso, dever
+ ser um nome de domnio totalmente qualificado (FQDN) e nico, a partir do
+ qual o mail aparenta ter originado.
+ .
+ Se estiver a configurar este sistema como 'satlite' este nome no ir
+ aparecer nas linhas From: do mail, uma vez que tcnicas de reescrita so
+ usadas.
+Description-pt_BR: Nome do sistema de mensagens :
+ Seu "mail name" (nome do sistema de mensagens) a poro nome de mquina
+ (hostname) do endereo que ser exibido em mensagens de e-mail (aps o
+ nome de usurio e o smbolo @).
+ .
+ Esse nome ser usado por outros programas alm do Exim. Por isso, dever
+ ser um nome de domnio totalmente qualificado (FQDN) e nico, a partir do
+ qual as mensagens parecero ter originado.
+ .
+ Caso voc esteja configurando este sistema como 'satlite', esse nome no
+ ir aparecer em linhas From: de mensagens, uma vez que tcnicas de
+ reescrita sero usadas.
+Description-ru: :
+ ` ' - ,
+ (
+ @).
+ .
+ , Exim, ;
+ (FQDN), .
+ .
+ `',
+ From: , .
+Description-sv: Systemets e-postnamn:
+ Ditt "e-postnamn" r vrdnamnsdelen av adressen som ska visas p utgende
+ diskussionsgrupps- och e-postmeddelanden (efter anvndarnamnet och
+ @-tecknet).
+ .
+ Detta namn kommer att anvndas av andra program frutom Exim; det br vara
+ det enda, fullstndiga domnnamnet (FQDN) frn vilket e-post ska se ut att
+ hrstamma.
+ .
+ Om du konfigurerar det hr system som ett "satellitsystem" kommer detta
+ namn inte att visas p From:-raderna i e-postmeddelanden eftersom
+ adressomskrivning anvnds.
+Description-zh_CN: ϵͳʼƣ
+ ġʼơָʾڷͳȥŻżַе(û
+ @ źIJ)
+ .
+ Ҳ Exim
+ ʹáӦһżʾĵһ(FQDN)
+ .
+ ϵͳóɡǡģʽƽʾʼķУ͸ʹд(rewriting)һ
+
+Template: exim4/dc_other_hostnames
+Type: string
+Default:
+Description: Other destinations for which mail is accepted:
+ Please enter a list of domains for which this machine should consider
+ itself the final destination, apart from the mail name (${mailname})
+ and "localhost".
+ .
+ By default all domains will be treated the same; if you want different
+ domain names to be treated differently, you will need to edit the config
+ files afterwards.
+ .
+ If there are any more, enter them here, separated by colons. You may
+ leave this blank if there are none.
+Description-cs: Dal msta uren, pro kter akceptujeme potu:
+ Zadejte seznam domn, pro kter skon pota na tomto potai.
+ Nezadvejte vlastn potovn jmno (${mailname}) a "localhost".
+ .
+ Standardn se se vemi domnami zachz stejn. Pokud vyadujete rzn
+ chovn pro rzn domny, budete muset upravit konfiguran soubor.
+ .
+ Pokud jich je vce, oddlte je dvojtekami. Jestlie neexistuj, nemuste
+ zadvat nic.
+Description-da: Andre ml, hvortil post skal accepteres:
+ Angiv en liste over domner, for hvilke denne maskine skal betragte sig
+ selv som endestation, udover postnavnet (${mailname}) og "localhost".
+ .
+ Du udgangspunkt vil alle domner blive behandlet ens: Hvis du nsker at
+ visse domnenavne skal behandles anderledes, m du efterflgende selv
+ redigere opstningsfilen.
+ .
+ Hvis der er flere, kan du angive dem her adskilt med kolon. Du kan lade
+ feltet st toms, hvis der ikke er nogen.
+Description-de: Weitere Rechner, fr die hier Mail angenommen werden soll:
+ Spezifizieren Sie bitte die Liste der Domnen, fr die dieser Rechner
+ neben dem "Mailname" (${mailname}) und localhost das Zielsystem darstellt.
+ .
+ Laut Voreinstellung werden alle angefhrten Domnen gleich behandelt, wenn
+ unterschiedliche Domnenen unterschiedlich behandelt werden sollen, mssen
+ Sie die Konfigurationsdateien editieren.
+ .
+ Wenn ja, fhren Sie sie hier in Form einer durch Doppelpunkte getrennten
+ Liste an. Andernfalls sollten Sie das Feld einfach leer lassen.
+Description-el: :
+
+ ,
+ (${mailname}) "localhost".
+ .
+ (
+ ), ,
+ .
+ .
+ , ,
+ ':'. .
+Description-es: Otros destinos para los que se acepta el correo:
+ Por favor introduzca una lista de dominios para los que esta mquina
+ debera considerarse el destino final, aparte del nombre de correo
+ (${mailname}) y localhost.
+ .
+ Por defecto todos los dominios se tratarn igual. Si quiere diferenciar
+ entre distintos nombres de dominio necesitar editar los archivos de
+ configuracin posteriormente.
+ .
+ Si hay alguno ms, introdzcalos aqu, separados por dos puntos. Puede
+ dejarlo en blanco si no hay ninguno.
+Description-fi: Muut vastaanottajat joiden posti hyvksytn:
+ Listaa verkkoalueet joille tm kone pit itsen lopullisena
+ vastaanottajana, postinimen (${mailname}) ja "localhost":n lisksi.
+ .
+ Oletusarvoisesti kaikkia verkkoalueita ksitelln samalla tavalla;
+ haluttaessa eri verkkoaluenimille erilainen ksittely, on asetustiedostoja
+ muokattava jlkeenpin.
+ .
+ Jos on lis, kirjoita ne thn kaksoispisteell eroteltuina. Voit jtt
+ tyhjksi jos ei ole enemp.
+Description-fr: Autres destinations dont le courriel doit tre accept:
+ Veuillez indiquer une liste des domaines pour lesquels cette machine est
+ la destination finale. N'indiquez pas le nom de courriel (${mailname}) ou
+ localhost.
+ .
+ Par dfaut, tous les domaines seront traits l'identique. Si vous
+ souhaitez traiter un domaine d'une manire diffrente, vous devrez
+ modifier les fichiers de configuration ultrieurement.
+ .
+ S'il en existe d'autres, veuillez les indiquer ici, spars par le
+ caractre deux-points. Vous pouvez laisser ce champ vide s'il n'en
+ n'existe pas.
+Description-it: Altre destinazioni per conto delle quali accettare posta:
+ Inserire un elenco di domini, oltre a ${mailname} e localhost, per i
+ quali questo sistema deve considerare se stesso come destinazione.
+ .
+ Nella configurazione predefinita, tutti i domini vengono trattati allo
+ stesso modo. Se si desidera altrimenti, necessario modificare i file di
+ configurazione in seguito.
+ .
+ Se ce ne sono altri, inserirli qui, separati da due punti (":"). Se non ce
+ ne sono, lasciare questo campo vuoto.
+Description-ja: ᡼뤽¾ΰ:
+ ᡼̾ (${mailname}) "localhost"
+ Υޥ󤬺ǽŪʰȸʤ٤ɥᥤΥꥹȤϤƤ
+ .
+ ǥեȤǤϡ٤ƤΥɥᥤƱΤΤȤưޤۤʤɥᥤ̾ۤʤΤȤưȤˤϡե򤢤ȤԽɬפޤ
+ .
+ ʣΤǤСǶڤäϤƤʤжΤޤޤˤƤޤ
+Description-lt: Kitos paskirties vietos, i kuri patas turi bti priimtas:
+ veskite domen sra, kuriems i maina turi laikyti save galutine
+ paskirties vieta, iskyrus pato vard (${mailname}) ir "localhost".
+ .
+ Pagal nutyljim visi domenai bus apdorojami vienodai; jei Js norite
+ skirtingus domenus apdoroti skirtingai, Jums reiks taisyti konfigracijos
+ failus vliau.
+ .
+ Jei norite nurodyti daugiau, veskite ia atskirdami dvitakiais. Palikite
+ tui, jei nra k nurodyti.
+Description-nb: Andre ml e-post mottas for:
+ Skriv inn en liste med domener som denne maskinen skal regne seg selv som
+ siste ml for, utover epost-navnet (${mailname}) og "localhost".
+ .
+ Standardvalget er at alle domener vil behandles likt; hvis du nsker at
+ forskjellige domener skal behandles forskjellig, m du redigere
+ konfigurasjonsfilene etterp.
+ .
+ Hvis det er flere, skriv dem inn her, adskilt med komma. Du kan la dette
+ feltet st blankt hvis det ikke er noen.
+Description-nl: Andere bestemmingen waarvoor e-mail geaccepteerd wordt:
+ Voor welke domeinen functioneert deze machine als eindbestemming
+ (e-mail-naam (${mailname}) en 'localhost' hoeft u hier niet te vermelden)?
+ .
+ Standaard worden alle domeinen op dezelfde manier afgehandeld; als u
+ verschillende domeinen verschillend wilt behandelen zult u het
+ configuratiebestand zometeen handmatig moeten aanpassen.
+ .
+ Als er meer zijn dient u ze hier op te geven gescheiden door dubbele
+ punten. U kunt dit leeg laten als er geen zijn.
+Description-pt: Outros destinos para os quais o mail deve ser aceite:
+ Por favor introduza uma lista de domnios para os quais esta mquina deve
+ considerar como sendo o destino final, sem contar com o mail name
+ {${mailname}) e "localhost".
+ .
+ Por padro todos os domnios sero tratados de forma idntica. Caso
+ precise que os nomes de domnios sejam tratados de maneira diferentei,
+ ser preciso editar os ficheiros de configurao posteriormente.
+ .
+ Caso existam mais, introduza-os aqui, separados por dois pontos. Pode
+ deixar este valor em branco caso no existam mais.
+Description-pt_BR: Outros destinos para os quais mensagens devem ser aceitas :
+ Por favor, fornea uma lista de domnios para os quais esta mquina deve
+ considerar como sendo ela mesma o destino final, fora o `mail name'
+ {${mailname}) e "localhost".
+ .
+ Por padro, todos os domnios sero tratados de forma idntica. Caso voc
+ precise que nomes de domnios sejam tratados de maneira diferente ser
+ preciso editar os arquivos de configurao posteriormente.
+ .
+ Caso existam mais, informe-os aqui, separados por dois pontos. Voc pode
+ manter esse valor em branco caso no existam mais.
+Description-ru: , :
+ ,
+ , (${mailname}) "localhost".
+ .
+ ; ,
+ -,
+ .
+ .
+ - , , .
+ .
+Description-sv: Andra destinationer fr vilka e-post accepteras:
+ Ange en lista med domner fr vilka denna maskin ska betrakta sig sjlv
+ som den slutgiltiga destinationen, frutom e-postnamnet (${mailname}) och
+ "localhost".
+ .
+ Som standard behandlas alla domner lika; om du vill att skilda domnnamn
+ ska behandlas olika mste du redigera konfigurationsfilerna eftert.
+ .
+ Om det finns ngra fler s ange dem hr, tskilda med kolon. Du kan lmna
+ det hr tomt om det inte finns ngra.
+Description-zh_CN: ɽܵʼĿĵַ
+ ʼ(${mailname})͡localhostıΪԱΪĿĵַб
+ .
+ Ĭ£еᱻͬԴԲͬԴҪԺ༭ļ
+ .
+ и࣬ǣðŷָûУÿա
+
+Template: exim4/dc_relay_domains
+Type: string
+Default:
+Description: Domains to relay mail for:
+ Please enter here the domains for which you accept to relay the mail.
+ .
+ Such domains are domains for which you are prepared to accept mail
+ from anywhere on the Internet. Do not mention local domains here.
+ .
+ The domains you enter here should be separated by colons. Wildcards
+ may be used.
+Description-cs: Domny, pro kter pedvat potu (relay):
+ Zadejte domny, pro kter chcete pedvat potu (relay).
+ .
+ Tmto domnm se uvolujete pedvat potu odkudkoliv z Internetu.
+ Neuvdjte zde lokln domny.
+ .
+ Zadvan domny oddlte dvojtekami, v nzvech mete pout zstupn
+ znaky.
+Description-da: Domner at videresende ("relay") post for:
+ Angiv de domner, for hvilke accepterer at videresende ("relay") post for.
+ .
+ Disse domner er domner, som du er villig til at acceptere post til fra
+ ethvert sted p internettet. Nvn ikke lokale domner her.
+ .
+ De domner, du angiver her, skal adskilles med kolon. Du kan bruge
+ wildcards her.
+Description-de: Domnen, fr die dieser Rechner Mail weiterleitet (Relay):
+ Geben Sie die Domnen an, fr dieser Rechner Mail annimmt und
+ weiterleitet.
+ .
+ Mail von beliebigen anderen Rechnern im Internet adressiert an diese
+ Domnen wird angenommen. Lokalen Domnen sollten hier nicht angefhrt
+ werden..
+ .
+ Die Domnen sollten in Form einer durch Doppelpunkte getrennten Liste
+ angefhrt werden. Sie knnen Platzhalter ("*.foo") verwenden.
+Description-el: :
+
+ (relay) .
+ .
+
+ Internet.
+ .
+ .
+
+ ':'. .
+Description-es: Dominios para los que se reenvia correo:
+ Por favor introduzca aqu los dominios que permite que reenvien correo.
+ .
+ Estos dominios son aquellos para los que usted est dispuesto a admitir
+ correo desde cualquier parte de Internet. No indique aqu dominios
+ locales.
+ .
+ Los dominios que introduzca aqu debera separarlos con dos puntos. Puede
+ usar comodines.
+Description-fi: Verkkoalueet joiden posti vlitetn:
+ Kirjoita ne verkkoalueet joiden posti hyvksytn vlitettvksi.
+ .
+ Niden verkkoalueiden posti hyvksytn vlitettvksi mist tahansa
+ Internetist. l kirjoita paikallisia verkkoalueita thn.
+ .
+ Thn kirjoitettavat verkkoaluenimet olisi eroteltava kaksoispilkulla.
+ Jokerimerkkej voi kytt.
+Description-fr: Domaines relayer:
+ Veuillez indiquer les domaines pour lesquels vous acceptez de relayer le
+ courriel.
+ .
+ Il s'agit de domaines pour lesquels vous acceptez de relayer les
+ courriels, c'est--dire acceptez tout ce qui leur est destin et mis
+ depuis tout site sur l'Internet. N'indiquez pas les domaines locaux ici.
+ .
+ Les domaines indiqus ici doivent tre spars par des caractres
+ deux-points. Vous pouvez utiliser des caractres joker.
+Description-it: Domini per i quali fare il relaying:
+ Inserire l'elenco dei domini per i quali si accetta di fare il relaying
+ della posta.
+ .
+ Tale elenco contiene i domini per conto dei quali si disposti ad
+ accettare posta proveniente da qualsiasi nodo di Internet. I domini locali
+ non vanno indicati qui.
+ .
+ I domini inseriti devono essere separati da due punti (":"). possibile
+ usare caratteri jolly.
+Description-ja: ᡼졼ɥᥤ:
+ ᡼졼뤳Ȥդɥᥤ򤳤ϤƤ
+ .
+ Υɥᥤϡ󥿡ͥåȾΤɤΥ᡼դ褦ˤƤɥᥤǤɥᥤϤ˵ҤʤǤ
+ .
+ ϤɥᥤϥǶڤޤ磻ɥɤѤǤޤ
+Description-lt: Domenai, kuri pat reikia perduoti (relay):
+ veskite ia domenus, kuri pat sutinkate pertransliuoti (relay).
+ .
+ Tai domenai, kuri pat Js pasiruo priimti i bet kur internete. ia
+ nereikia nurodyti lokali domen.
+ .
+ ia vedami domenai turi bti atskirti dvitakiais. Pakaitos simboliai
+ (wildcards) gali bti naudojami.
+Description-nb: Domener det skal videresendes e-post for:
+ Skriv inn domenene du godtar videresende e-post for:
+ .
+ Slike domener er domener du er forberedt til motta e-post for fra hvor
+ som helst p Internett. Ikke skriv inn de lokale domenene her.
+ .
+ Domenene du skriver inn her m adskilles med kolon. Du kan bruke jokertegn
+ her om du nsker.
+Description-nl: Domeinen waarvoor mail door te sturen:
+ Domeinen waarvoor u e-mail wilt doorsturen:
+ .
+ Dit zijn domeinen waarvoor u e-mail wilt accepteren van om het even waar
+ op het Internet. Lokale domeinen dienen hier niet vermeld te worden.
+ .
+ De hier ingevoerde domeinen dienen gescheiden te zijn door dubbele punten.
+ Jokers mogen gebruikt worden.
+Description-pt: Domnios para os quais fazer relay:
+ Por favor introduza os domnios para os quais voc aceitar fazer relay de
+ mail.
+ .
+ Tais domnios so domnios para os quais est preparado para aceitar mail
+ originado de qualquer local na Internet. No mencione domnios locais
+ aqui.
+ .
+ Os domnios que aqui introduzir devero estar separados por dois pontos.
+ Caracteres especiais podem ser usados.
+Description-pt_BR: Domnios para os quais fazer relay :
+ Por favor informe os domnios para os quais voc aceitar fazer relay de
+ mensagens.
+ .
+ Tais domnios so domnios para os quais voc est preparado para aceitar
+ mensagens originadas de qualquer local na Internet. No mencione domnios
+ locais aqui.
+ .
+ Os domnios que voc informar aqui devero estar separados por dois
+ pontos. Caracteres curingas podem ser usados.
+Description-ru: , :
+ ,
+ .
+ .
+ , .
+ .
+ .
+ .
+ .
+Description-sv: Domner fr vilka e-post ska vidarebefordras:
+ Ange domnerna som du accepterar att vidarebefordra e-post fr.
+ .
+ Sdana domner r domner t vilka du r beredd att acceptera e-post frn
+ var som helst p internet. Ange inte lokala domner hr.
+ .
+ Domnerna du anger ska avgrnsas med kolon. Jokertecken kan anvndas.
+Description-zh_CN: ת(relay)ʼ
+ ת(relay)ʼ
+ .
+ Щָκεطʼﲻ漰
+
+ .
+ Ӧðŷָʹͨ
+
+Template: exim4/dc_relay_nets
+Type: string
+Default:
+Description: Machines to relay mail for:
+ Please enter here the networks of local machines for which you accept to
+ relay the mail.
+ .
+ Obviously, any machines that use us as a smarthost have to be excluded
+ from the relaying controls, as using us to relay mail for them is the
+ whole point.
+ .
+ If there are any, enter them here, separated by colons. You should use
+ the standard address/length format (e.g. 194.222.242.0/24)
+ .
+ You need to double the colons in IPv6 addresses (e.g.
+ 5f03::1200::836f::::/48)
+Description-cs: Potae, kterm pedvat potu (relay):
+ Zadejte zde st, kterm chcete pedvat potu (relay).
+ .
+ Evidentn je dobr zde uvst potae, kterm sloume jako smarthost.
+ .
+ Pokud takov st existuj, zadejte je zde v obvyklm formtu adresa/dlka
+ (tj. 194.222.242.0/24). Vce zznam mete oddlit dvojtekami.
+ .
+ U IPv6 adres muste zdvojit dvojteky (tj. 5f03::1200::836f::::/48)
+Description-da: Maskiner at videresende ("relay") post for:
+ Angiv her de netvrk af lokale maskiner, som du nsker at at videresende
+ ("relay") post for.
+ .
+ Selvflgelig skal alle maskiner, der benytter os som postserver
+ (smarthost) ekskluderes fra videresendelses-styringen, da det jo er hele
+ iden at videresende post for dem.
+ .
+ Hvis der det, s angiv dem her adskilt med kolon'er. Du br bruge det
+ almindelige adresse/lngde-format (f.eks. 194.222.242.0/24)
+ .
+ Du skal bruge dobbelt-kolon i IPv6-adressesr (f.eks.
+ 5f03::1200::836f::::/48)
+Description-de: Rechner, fr die ausgehende Mail weitergeleitet wird (Relay):
+ Fhren Sie die Netzwerke lokaler Rechner, fr die dieser Rechner Mail
+ weiterleiten soll, hier an.
+ .
+ Natrlich mssen alle Rechner, fr die dieser Mail Relay-Server
+ (Smarthost) sein soll, von Anti-Relay-Regeln ausgenommen werden.
+ .
+ Wenn ja, fhren sie diese hier, voneinander durch Doppelpunkte getrennt,
+ auf. Sie sollten das Standard Adresse/Maske format (z.B. 194.222.242.0/24)
+ verwenden.
+ .
+ Sie mssen die Doppelpunkte innerhalb von IPv6 Adressen verdoppeln, z.B.
+ 5f03::1200::836f::::/48.
+Description-el: :
+ IP ( )
+ .
+ .
+ ,
+ smarthost,
+ .
+ .
+ , ,
+ ':'.
+ / (.. 194.222.242.0/24).
+ .
+ IPv6
+ (.. 5f03::1200::836f::::/48).
+Description-es: Servidores para los que reenviar correo:
+ Por favor introduzca aqu las redes de servidores locales que permite que
+ reenvien correo.
+ .
+ Obviamente, cualquier servidor que nos utilice como smarthost ha de ser
+ excludo de los controles de reenvo, ya que la funcin primaria de
+ esteservidor de correo es permitirles que estos lo reenvien desde aqu.
+ .
+ Si hay algunos, introdzcalos aqu separados por dos puntos. Debera usar
+ el formato estndar direccin/longitud (por ejemplo 194.222.242.0/24)
+ .
+ Necesita duplicar los dos puntos en direcciones IPv6 (por ejemplo
+ 5f03::1200::836f::::/48)
+Description-fi: Koneet joiden postia vlitetn:
+ Kirjoita thn ne paikallisten koneiden aliverkot joista tuleva posti
+ hyvksytn vlitettvksi.
+ .
+ Tietenkin on tt konetta smarthostina kyttvt koneet ohitettava
+ postinvlityksen ohjauksista, koska tmn koneen on nimenomaan tarkoitus
+ vlitt niiden postia.
+ .
+ Jos nit on, kirjoita ne thn kaksoispistein eroteltuina. Olisi
+ kytettv tavanomaista osoite/pituus-muotoa (esim. 194.222.242.0/24).
+ .
+ IPv6-osoitteissa on kaksoispisteet kahdennettava (esim.
+ 5f03::1200::836f::::/48)
+Description-fr: Machines relayer:
+ Veuillez indiquer ici les rseaux de machines locales pour lesquels vous
+ acceptez de relayer le courriel.
+ .
+ Bien entendu, toutes les machines qui utiliseront ce systme comme relais
+ doivent tre exclues du contrle de relais puisque le rle de ce serveur
+ est justement de relayer le courriel qu'elles mettent.
+ .
+ Si vous souhaitez en mentionner, indiquez-les ici, spars par des
+ caractres deux-points. Vous devez utiliser le format normalis
+ adresse/masque (p. ex. 194.222.242.0/24).
+ .
+ Les caractres deux-points des adresses IPv6 doivent tre doubls (p.
+ ex. 5f03::1200::836f::::/48).
+Description-it: Sistemi per i quali fare il relaying:
+ Inserire le reti di computer locali per i quali si accetta di fare il
+ relaying della posta.
+ .
+ Ovviamente, ogni macchina che usa questo sistema come smarthost deve
+ essere esclusa dai controlli sul relaying, dal momento che il solo scopo
+ per usare questo host ottenere il relaying della posta.
+ .
+ Inserire eventuali indirizzi, separati da due punti (":"), usando il
+ formato standard indirizzo/lunghezza (ad esempio 194.222.242.0/24).
+ .
+ necessario raddoppiare i due punti (":") negli indirizzi IPv6 (ad
+ esempio 5f03::1200::836f::::/48)
+Description-ja: ᡼졼ޥ:
+ ᡼졼뤳ȤޥΥͥåȥ򤳤ϤƤ
+ .
+ ʤ顢Υޥ򥹥ޡȥۥȤȤƻȤޥϤ٤ơ졼椫ɬפޤ
+ (ΥޥȤäƥ᡼إ졼뤳ȤˤʤäƤޤޤ)
+ .
+ ʣȤˤϡǶڤäϤޤɸŪʥɥ쥹/ĹΥեޥåȤѤ٤Ǥ
+ (Ȥ 194.222.242.0/24)
+ .
+ IPv6 ɥ쥹ǤϡŤͤɬפޤ (Ȥ
+ 5f03::1200::836f::::/48)
+Description-lt: Mainos, kuri pat reikia perduoti (relay):
+ veskite ia lokali main tinklus, kuri pat sutinkate pertransliuoti
+ (relay).
+ .
+ Akivaizdu, kad mainos naudojanios mus kaip 'smarthost', neturi bti
+ trauktos retransliavimo kontrol, nes operacijos visuma jau apima j
+ pato retransliavim.
+ .
+ Jei yra k vesti, veskite jas atskirdami dvitakiais. Js turite naudoti
+ standartin format adresas/ilgis (pvz. 194.222.242.0/24)
+ .
+ IPv6 adresuose dvitakius reikia dvigubinti (pvz. 5f03::1200::836f::::/48)
+Description-nb: Maskiner det skal videresendes e-post for:
+ Skriv inn nettverkene til de lokale maskinene du nsker videresende
+ e-post for.
+ .
+ penbart m alle maskiner som skal bruke oss som smartvert unntas fra
+ videresendingsbegrensningene, ettersom hele poenget er at de skal bruke
+ oss til videresende e-post.
+ .
+ Hvis det er noen, skriv dem inn her, adskilt av kolon. Du burde bruke det
+ vanlige addresse/lengde-formatet (f.eks. 194.222.242.0/24).
+ .
+ Du er ndt til doble evt. kolon i IPv6-adresser (f.eks.
+ 5f03::1200::836f::::/48).
+Description-nl: Machines waarvoor email te accepteren:
+ Voor welke lokale netwerken wilt u e-mail accepteren?
+ .
+ Alle machines die dit systeem als smarthost gebruiken dienen van de
+ doorstuur-controle uitgesloten te worden, aangezien het doorsturen van
+ e-mail voor hen net de bedoeling is.
+ .
+ Als er zo zijn dient u ze hier op te geven, gescheiden door dubbele
+ punten; hierbij dient u het standaard adres/lengte formaat te gebruiken
+ (bv. 194.222.242.0/24)
+ .
+ Bij IPv6-adressen dient u voor elke dubbele punt twee dubbele punten in te
+ voeren (bv. 5f03::1200::836f::::/48)
+Description-pt: Mquinas para as quais fazer relay:
+ Por favor introduzir aqui as redes de mquinas locais para as quais aceita
+ fazer relay de mensagens.
+ .
+ Obviamente, quaisquer mquinas que nos utilizem como um smarthost precisam
+ de ser excludas dos controlos de relaying, uma vez que usar-nos para
+ fazer relay de mail a idia de um smarthost.
+ .
+ Caso existam, introduza-as aqui, separadas por dois pontos. Dever usar o
+ formato padro endereo/mscara (exemplo, 194.222.242.0/24)
+ .
+ Precisa de duplicar a quantidade de dois pontos em endereos IPv6 (por
+ exemplo, 5f03::1200::836f::::/48)
+Description-pt_BR: Mquinas para as quais fazer relay :
+ Por favor informe aqui as redes redes de mquinas locais para as quais
+ voc aceita fazer relay de mensagens.
+ .
+ Obviamente, quaisquer mquinas que nos utilize como um smarthost precisa
+ ser excluda dos controles de relaying, uma vez que nos usar para relay de
+ mensagens a idia de um smarthost.
+ .
+ Caso existam, informe-as aqui, separadas por dois pontos. Voc dever usar
+ o formato padro endereo/tamanho (exemplo, 194.222.242.0/24)
+ .
+ Voc precisa duplicar a quantidade de dois pontos em endereos IPv6 (por
+ exemplo, 5f03::1200::836f::::/48)
+Description-ru: , :
+ ,
+ .
+ .
+ , , , ,
+ , -
+ .
+ .
+ , , .
+ / (, 194.222.242.0/24)
+ .
+ IPv6 (,
+ 5f03::1200::836f::::/48)
+Description-sv: Maskiner fr vilka e-post ska vidarebefordras:
+ Ange ntverken eller lokala maskinerna fr vilka du accepterar att
+ vidarebefordra e-post.
+ .
+ Naturligtvis ska alla maskiner som anvnder oss som smarthost undantas
+ frn vidarebefordringskontrollen eftersom anvndningen av oss fr att
+ vidarebefordra e-post t dem r hela pongen.
+ .
+ Om det finns ngra sdana ska du ange dem hr, tskilda med kolon. Du ska
+ anvnda standardformatet adress/lngd (t ex 194.222.242.0/24)
+ .
+ Du mste dubblera kolona i IPv6-adresser (t ex 5f03::1200::836f::::/48)
+Description-zh_CN: ΪЩʼת
+ ڴʹñʼתı
+ .
+ ԣκνΪ smarthost
+ ӦýתƣΪʹñΪתżǵҪĿġ
+ .
+ Уַ֮ðŷָӦʹñ׼ ַ/
+ ʽ(磺194.222.242.0/24)
+ .
+ Ҫ IPv6 ַʹ˫ð(磺5f03::1200::836f::::/48)
+
+Template: exim4/dc_readhost
+Type: string
+Description: Domain name for local users:
+ Since this is going to be a satellite system, you must specify the domain
+ name to use for mail from local users; typically this is the machine on
+ which you normally receive your mail.
+ .
+ Where will your users read their mail?
+Description-cs: Domnov jmno pro lokln uivatele:
+ Protoe toto bude satelitn systm, muste zadat domnov jmno, kter se
+ m pout pro potu od loklnch uivatel. Typicky to bv pota na
+ kterm pijmte svou potu.
+ .
+ Kde budou uivatel st svou potu?
+Description-da: Domnenavn for lokale brugere:
+ Da dette skal vre et sattelitsystem, skal du angive hvilket domnenavn,
+ jeg skal bruge for post fra lokale brugere. Det er ofte den maskine,
+ hvorp du normalt modtager din post.
+ .
+ Hvor vil dine brugere lse deres post?
+Description-de: Domne fr die lokalen Benutzer:
+ Fr ein Satelliten-System ist es ntig, die Domne zu kennen, die fr
+ Mails von lokalen Benutzern verwendet werden soll. Typischerweise ist das
+ der Name des Rechners auf dem die lokalen Benutzer ihre Mail normalerweise
+ empfangen.
+ .
+ Wo lesen die Benutzer ihre Mail?
+Description-el: :
+ ,
+ .
+ ,
+ .
+ .
+ ;
+Description-es: Nombre de dominio para usuarios locales:
+ Ya que va a configurar el sistema como satlite, debe especificar el
+ nombre de dominio a usar para el correo de los usuarios locales.
+ Habitualmente es el nombre de la mquina en la que normalmente recibe su
+ correo.
+ .
+ Dnde leern el correo sus usuarios?
+Description-fi: Paikallisten kyttjien verkkoaluenimi:
+ Koska tst koneesta tulee satelliitti, on mritettv shkpostin
+ kyttm verkkoaluenimi paikallisille kyttjille; tyypillisesti tm on
+ se kone jossa normaalisti vastaanotat shkpostit.
+ .
+ Miss kyttjt lukevat shkpostinsa?
+Description-fr: Nom de domaine pour les utilisateurs locaux:
+ Ce systme tant un satellite, il est ncessaire d'indiquer le nom de
+ domaine utiliser pour les courriels des utilisateurs locaux. Il s'agit
+ habituellement du nom de la machine qui reoit normalement leurs
+ courriels.
+ .
+ O les utilisateurs liront-ils leurs courriels?
+Description-it: Nome di dominio per gli utenti locali:
+ Dato che questo un sistema satellite, bisogna specificare il nome di
+ dominio da usare per la posta proveniente dagli utenti locali; tipicamente
+ si tratta del sistema sul quale normalmente gli utenti ricevono la posta.
+ .
+ Su quale sistema riceveranno la posta gli utenti locali?
+Description-ja: 桼Υɥᥤ̾:
+ ƥ饤ȥƥˤ褦ȤƤΤǡ桼Υ᡼˻Ȥɥᥤ̾ꤹɬפޤŵŪʤΤϡ̾濫ʤΥ᡼ޥǤ
+ .
+ 桼᡼ɤϤɤǤ?
+Description-lt: Domeno vardas vietiniams naudotojams:
+ Kadangi Js ruoiats bti 'satelitine' sistema, Js turite nurodyti kok
+ domeno vard naudoti lokali naudotoj patui; tipiniu atveju tai yra
+ maina, kurioje Js prastai priimate savo pat.
+ .
+ Kur Js naudotojai skaitys savo pat?
+Description-nb: Domenenavn for lokale brukere:
+ Ettersom dette skal vre et satellitt-system, m du skrive inn
+ domenenavnet som skal brukes for e-post fra lokale brukere; som oftest er
+ dette maskinen du vanligvis mottar e-post p.
+ .
+ Hvor vil brukerne lese e-posten sin?
+Description-nl: Domeinnaam voor lokale gebruikers:
+ Aangezien dit een satellietsysteem wordt dient u een domeinnaam op te
+ geven die gebruikt zal worden voor e-mail van lokale gebruikers; meestal
+ is dit de machine waarop u normaal uw e-mail ontvangt.
+ .
+ Waar zullen de gebruikers hun e-mail lezen?
+Description-pt: Nome de domnio para utilizadores locais:
+ Uma vez que que este ser um sistema satlite, deve especificar o nome de
+ domnio a ser usado nos mails enviados por utilizadores locais;
+ tipicamente, este nome o nome da mquina na qual recebe normalmente suas
+ mensagens.
+ .
+ Onde iro os seus utilizadores ler o mail?
+Description-pt_BR: Nome de domnio para usurios locais :
+ Uma vez que que este ser um sistema satlite, voc deve especificar o
+ dome de domnio a ser usado em mensagens enviadas por usurios locais.
+ Tipicamente, este nome o nome da mquina na qual voc normalmente recebe
+ suas mensagens.
+ .
+ Onde seus usurios iro ler suas mensagens ?
+Description-ru:
+ -, ,
+ ;
+ , .
+ .
+ ?
+Description-sv: Domnnamn fr lokala anvndare:
+ Eftersom detta kommer att vara ett sattelitsystem mste du ange
+ domnnamnet som ska anvndas fr e-post frn lokala anvndare; detta r
+ vanligtvis den maskin som du tar emot din e-post p.
+ .
+ Var kommer dina anvndare att lsa sin e-post?
+Description-zh_CN: û
+ ΪΪһ̨ǡϵͳָûʼͨӦȡʼ̨
+ .
+ ûӺδȡǵʼ
+
+Template: exim4/dc_smarthost
+Type: string
+Description: Machine handling outgoing mail for this host (smarthost):
+ Enter the hostname of the machine to which outgoing mail is sent.
+ .
+ Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about
+ setting up SMTP authentication.
+Description-cs: Pota zpracovvajc potu odeslanou z tohoto potae (smarthost):
+ Zadejte jmno potae, na kter se posl odchoz pota.
+ .
+ Poznmky o nastaven SMTP autentizace naleznete v
+ /usr/share/doc/exim4-base/README.SMTP-AUTH.
+Description-da: Maskine, der hndterer udgende post for denne maskine (smarthost):
+ Angiv vrtsnavnet p den maskine, udgende post skal sendes til.
+ .
+ Se filen /usr/share/doc/exim4-base/README.SMTP-AUTH for bemrkninger om
+ hvordan du stter SMTP up.
+Description-de: Rechner, der die Weiterleitung ausgehender Mail vornimmt (Smarthost):
+ Geben Sie den Namen des Rechners an, an den ausgehende Mail gesendet
+ werden soll.
+ .
+ In /usr/share/doc/exim4-base/README.SMTP-AUTH finden Sie eine kurze
+ Anleitung zum Einrichten von SMTP Authentifizierung.
+Description-el: (smarthost):
+
+ .
+ .
+
+ SMTP,
+ /usr/share/doc/exim4-base/README.SMTP-AUTH.
+Description-es: Mquina que gestiona el correo saliente en este servidor (smarthost):
+ Introduzca el nombre del servidor al que se enva el correo saliente.
+ .
+ Consulte algunas notas sobre la configuracin de la autenticacin SMTP en
+ /usr/share/doc/exim4-base/README.SMTP-AUTH.
+Description-fi: Kone joka ksittelee tmn koneen lhtevn postin (smarthost):
+ Kirjoita sen koneen konenimi johon lhtev shkposti lhetetn.
+ .
+ Katso tiedostosta /usr/share/doc/exim4-base/README.SMTP-AUTH ohjeita
+ SMTP-todennuksen asetuksista.
+Description-fr: Relais de courriel (smarthost) pour cet hte:
+ Veuillez indiquer le nom d'hte de la machine qui sera envoy le
+ courriel sortant.
+ .
+ Veuillez consulter /usr/share/doc/exim4-base/README.SMTP-AUTH pour plus
+ d'informations sur l'authentification SMTP.
+Description-it: Sistema che gestisce la posta in uscita per questo host (smarthost):
+ Inserire il nome host del sistema a cui viene inviata la posta in uscita.
+ .
+ Fare riferimento a /usr/share/doc/exim4-base/README.SMTP-AUTH per
+ indicazioni su come impostare l'autenticazione SMTP.
+Description-ja: ΥۥȤФ줿᡼ޥ (ޡȥۥ):
+ Х᡼뤬ޥΥۥ̾ϤƤ
+ .
+ SMTP ǧڤΥåȥåפˤĤƵҤƤ
+ /usr/share/doc/exim4-base/README.SMTP-AUTH 򻲾ȤƤ
+Description-lt: Maina apdorojanti io kompiuterio pat (smarthost):
+ veskite kompiuterio vard mainos, kuriai siuniamas ieinantis patas.
+ .
+ irekite /usr/share/doc/exim4-base/README.SMTP-AUTH apie tai, kaip
+ atlikti SMTP autentifikacijos nustatymus.
+Description-nb: Maskin som hndterer utgende e-post for denne verten (smartvert):
+ Skriv inn vertsnavnet p maskinen som utgende e-post sendes til:
+ .
+ Se /usr/share/doc/exim4-base/README.SMTP-AUTH for informasjon om hvordan
+ man setter opp SMTP-autentisering.
+Description-nl: Machine die de uitgaande mail voor dit systeem afhandeld (smarthost):
+ Voer de computernaam in van het systeem waarnaar de uitgaande e-mail
+ verstuurd zal worden.
+ .
+ Zie /usr/share/doc/exim4-base/README.SMTP-AUTH voor opmerkingen in verband
+ met het instellen van SMTP-authenticatie.
+Description-pt: Mquina que gere a entrega final do mail para este host (smarthost):
+ Introduza o hostname da mquina para a qual o mail enviado ser enviado.
+ .
+ Consulte o ficheiro /usr/share/doc/exim4-base/README.SMTP-AUTH para notas
+ acerca de autenticao SMTP.
+Description-pt_BR: Mquina que gerencia a entrega final de mensagens para este host (smarthost) :
+ Informe o hostname da mquina para a qual as mensagens enviadas sero
+ repassadas.
+ .
+ Consulte o arquivo /usr/share/doc/exim4-base/README.SMTP-AUTH para ter
+ acesso a documentao para configurar autenticao SMTP.
+Description-ru: , ():
+ , .
+ .
+ , SMTP,
+ /usr/share/doc/exim4-base/README.SMTP-AUTH.
+Description-sv: Maskin som hanterar utgende e-post fr denna vrd (smarthost):
+ Ange vrdnamnet p den maskin som utgende e-post skickas till.
+ .
+ Referera till /usr/share/doc/exim4-base/README.SMTP-AUTH fr anteckningar
+ om hur SMTP-autentisering konfigureras.
+Description-zh_CN: ӱijʼĻ(smarthost)
+ ʼ͵ֵ
+ .
+ й SMTP ֤ע
+ /usr/share/doc/exim4-base/README.SMTP-AUTH
+
+Template: exim4/dc_postmaster
+Type: string
+Description: Root and postmaster mail recipient:
+ Mail for the "postmaster" and "root" accounts is usually redirected to one
+ or more user accounts of the actual system administrators. The default
+ is to set things up so that mail for "postmaster" and for various system
+ accounts is redirected to "root", and mail for "root" is redirected to a
+ real user. This can be changed by editing /etc/aliases.
+ .
+ Note that postmaster-mail should usually be read on the system to which it is
+ directed, rather than being forwarded elsewhere, so (at least one of)
+ the users you choose should not redirect their mail off this machine.
+ .
+ System administrator mail goes to which user accounts? Enter one
+ or more usernames separated by spaces or commas. Enter "none" if you
+ do not want to redirect the mail. - NB this is strongly discouraged. Exim
+ cannot run deliveries as root and will save the mail to /var/mail/mail Also,
+ note that usernames should be lowercase!
+Description-cs: Pjemce poty pro uivatele root a postmaster:
+ Pota pro uivatele "root" a "postmaster" se obvykle pesmrovv na jeden
+ nebo vce uivatelskch t patcch administrtorm systmu. Standardn
+ nastaven pracuje tak, e pota pro postmastera a dal systmov ty je
+ pesmrovna rootovi a pota pro roota je pesmrovna existujcmu
+ uivateli. Toto chovn lze zmnit v souboru /etc/aliases.
+ .
+ Pota pro postmastera by se mla vtinou st na systmu, ke ktermu
+ pat. To znamen, e alespo jeden uivatel, kter dostv tuto potu, by
+ ji neml pesmrovvat pry z tohoto systmu.
+ .
+ Na kter ty se m pesmrovat pota pro sprvce? Zadejte jedno nebo vce
+ uivatelskch jmen oddlench mezerami nebo rkami. Jestlie nechcete
+ pesmrovat potu, zadejte "none". To se vak drazn nedoporuuje. Exim
+ pak tuto potu ulo do /var/mail/mail. Nezapomete, e uivatelsk jmna
+ se p malmi psmeny.
+Description-da: Root og postmaster post-modtager:
+ Post til kontiene "postmaster" og "root" bliver normalt omdirigeret til
+ en eller flere brugerkonti, som tilhrer de virkelige
+ systemadministratorer. Som udgangspunkt vil jeg stte tingene op sdan at
+ post til "postmaster" og diverse systemkonti bliver omadresseret til
+ "root", og post til "root" bliver omadresseret til en virkelig bruger.
+ Dette kan rettes ved at ndre i /etc/aliases.
+ .
+ Bemrk at postmaster-post normalt skal lses p det system, det er
+ omdirigeret til, fremfor at videresende den til andre steder, s (mindst
+ en af) de brugere, du vlger, br ikke omdirigere deres post vk fra denne
+ maskine.
+ .
+ Hvilke brugerkonti skal systemadministratorens post sendes til? Angiv et
+ eller flere brugernavne adskilt med mellemrum eller komma. Skriv "none",
+ hvis du vil beholde posten i root's postboks. Bemrk at det sidste
+ frardes kraftigt. Husk ogs at brugernavne skal skrives med sm
+ bogstaver.
+Description-de: Empfnger fr Mail fr root und postmaster:
+ Mail fr "postmaster" und "root" wird normalerweise zu einem oder mehreren
+ User-Accounts der Systemadministratoren umgeleitet. Laut Voreinstelung
+ wird Mail fr "postmaster" und andere System-Accounts zuerst zu "root"
+ umgeleitet, und Mail fr "root" wird dann zu einem echtem Benutzer
+ umgeleitet. Das kann durch Editieren von /etc/aliases gendert werden.
+ .
+ Postmaster-Mail sollte normalerweise direkt auf dem Rechner, an die sie
+ adressiert ist, gelesen werden und nicht auf einen anderen Rechner
+ weitergeleitet werden, daher sollte zumindest einer der angegeben Benutzer
+ sein Mail nicht auf einen anderen Rechner umleiten.
+ .
+ An welchen Benutzer-Account soll Mail fr den Systemadministrator
+ zugestellt werden? Geben Sie einen oder mehrere durch Komma oder
+ Leerzeichen getrennte Benutzernamen an. Geben Sie "none" an, wenn Sie die
+ Mail nicht umleiten wollen. - Davon ist aber abzuraten, exim kann nicht
+ mit "root"-Rechten zustellen und wird daher die Mail in /var/mail/mail
+ ablegen. Benutzernamen sollten kleingeschrieben eingegeben werden.
+Description-el: root postmaster:
+ "postmaster" "root"
+
+ . ,
+ "postmaster" "root",
+ "root"
+ . /etc/aliases.
+ .
+ postmaster
+ ,
+ ,
+ .
+ .
+
+ ; ,
+ . "none"
+ , . Exim
+ root /var/mail/mail.
+ ,
+ .
+Description-es: Destinatario del correo de root y postmaster:
+ El correo de las cuentas de postmaster (administrador de correo) y
+ root (administrador) habitualmente se redirige a una o ms cuentas de
+ usuario de los usuarios que son realmente administradores del sistema. El
+ valor por omisin es que el correo para postmaster y el de varias
+ cuentas del sistema se reenva a root, y el correo de root se reenva
+ a un usuario real. Esto se puede cambiar editando /etc/aliases.
+ .
+ Advierta que el correo del administrador normalmente debera leerse en el
+ sistema al que va dirijido, antes que ser enviado a otra parte, as (al
+ menos uno de) los usuarios que escoja no deberan reenviar su correo fuera
+ de sta mquina.
+ .
+ A qu cuentas de usuario ir el correo del administrador del sistema?
+ Introduzca uno o ms nombres de usuario separados por espacios o comas.
+ Escriba none si no desea redirigir el correo. No se recomienda jams
+ hacer sto. Exim no puede efectuar entregas de correo como root y guardar
+ el correo en /var/mail/mail. Asimismo, tenga en cuenta que los nombres
+ de usuario estn en minscula!
+Description-fi: Pkyttjn ja postmasterin shkpostien vastaanottaja:
+ Tunnuksille "postmaster" ja "root" tuleva shkposti ohjataan tavallisesti
+ yhteen tai useampaan varsinaisten yllpitjien shkpostilaatikoista.
+ Oletusarvoisesti asetukset tehdn siten ett "postmaster" ja erinisille
+ jrjestelmn tunnuksille tuleva posti ohjataan tunnukselle "root" ja
+ tunnuksen "root" posti ohjataan oikean kyttjn shkpostilaatikkoon.
+ Tt voidaan muuttaa muokkaamalla tiedostoa /etc/aliases.
+ .
+ Huomaa ett tunnuksen postmaster shkposti olisi yleens luettava siin
+ jrjestelmss johon se on lhetetty, eik vlitettv sit muualle.
+ Niinp valitsemiesi kyttjien (tai ainakin yhden heist) ei pitisi
+ ohjata postiaan tmn koneen ulkopuolelle.
+ .
+ Keiden kyttjien postilaatikkoon menee jrjestelmn yllpitjn
+ shkposti? Kirjoita yksi tai useampia kyttjtunnuksia vlilynnein tai
+ pilkuin eroteltuina. Kirjoita "none" jos et halua postin
+ uudelleenohjausta. - HUOM. Tt kehoitetaan ankarasti vlttmn. Exim ei
+ voi toimittaa postia pkyttjn ja tallettaa postit
+ /var/mail/mail-tiedostoon. Huomaa mys kyttjtunnukset kirjoitettavan
+ pienill kirjaimilla.
+Description-fr: Destinataire des courriels de root et postmaster:
+ Les courriels pour les comptes postmaster et root sont
+ gnralement redirigs vers un ou plusieurs comptes d'utilisateurs, ceux
+ des administrateurs systme actuels. Par dfaut, les courriels de
+ postmaster et de plusieurs comptes systme seront redirigs vers
+ root et ceux de root vers un utilisateur sans privilges. Ce
+ rglage peut tre chang en modifiant /etc/aliases.
+ .
+ Veuillez noter que les courriels de postmaster devraient gnralement
+ tre lus sur le systme local, plutt que redirigs vers un autre systme.
+ En consquence, les utilisateurs que vous indiquez ne devraient pas
+ rediriger leurs courriels vers une autre machine (au moins l'un d'entre
+ eux).
+ .
+ Vers quel(s) compte(s) faut-il rediriger les courriels de l'administrateur
+ systme? Veuillez indiquer un ou plusieurs identifiants, spars par des
+ espaces ou des virgules. Indiquez None si vous ne souhaitez pas
+ rediriger les courriels (cela est fortement dconseill: exim ne peut pas
+ dlivrer les courriels avec les privilges du super-utilisateur et les
+ sauvera alors dans /var/mail/mail). Les identifiants indiqus doivent tre
+ entirement en minuscules.
+Description-it: Destinatari della posta di root e postmaster:
+ La posta per gli account postmaster e root viene solitamente inoltrata
+ verso uno o pi account utente appartenenti ai veri amministratori di
+ sistema. L'impostazione predefinita, che pu essere cambiata modificando
+ /etc/aliases, prevede che la posta di postmaster e di altri account di
+ sistema sia spedita a root e da l mandata a un utente reale.
+ .
+ I messaggi per postmaster dovrebbero essere letti sul sistema a cui sono
+ destinati e non inoltrati altrove; pertanto, almeno uno degli utenti
+ scelti dovrebbe ricevere la propria posta su questo sistema.
+ .
+ A quali utenti va mandata la posta per l'amministratore di sistema?
+ Inserire uno o pi nomi utente separati da virgole o spazi. Inserire
+ none se non si desidera inoltrare la posta. N.B.: una simile scelta
+ fortemente sconsigliata. Exim non pu effettuare consegne come root e
+ salverebbe la posta in /var/mail/mail. Ricordarsi inoltre di usare le
+ lettere minuscole per i nomi utente.
+Description-ja: root postmaster Υ᡼:
+ "postmaster" "root"
+ ȤؤΥ᡼̾ºݤΥƥԤǤ 1
+ ͰʾΥ桼ȤžޤǥեȤǤϡ"postmaster"
+ ӤĤΥƥॢȤؤΥ᡼ "root"
+ ž褦åȥåפƤꡢ"root"
+ ؤΥ᡼ϼºݤΥ桼žޤ /etc/aliases
+ Խ뤳ȤѹǤޤ
+ .
+ postmaster
+ ؤΥ᡼̾ۤξž⥷ƥľɤޤΤǤ٤ȤդƤΤᡢ򤹤桼
+ (ʤȤ⤽Τ 1 )
+ ϡΥޥγؤžˤʤۤ褤Ǥ礦
+ .
+ ƥԤΥ᡼ɤΥ桼Ȥޤ?
+ ڡޤϥޤǶڤä 1
+ ͰʾΥ桼̾ϤƤ⤷᡼ž˾ޤʤΤǤС"none"
+ ϤƤդƤ! ϶ȿФޤExim root
+ Ȥ¹Ԥ᡼ /var/mail/mail
+ ¸ޤޤ桼̾ϾʸǤ٤Ǥ!
+Description-lt: Pato, adresuoto root ir postmaster, gavjas:
+ Paskir "postmaster" ir "root" patas paprastai nukreipiamas vienai ar
+ daugiau naudotoj paskir (accaunts), kurios yra tikrj sistemos
+ administratori paskyros. Pagal nutyljim yra nustatoma taip, kad patas
+ skirtas "postmaster" ir vairioms sisteminms paskyroms yra nukreipiamas
+ "root" paskyr, o patas skirtas "root" nukreipiamas realiam naudotojui.
+ Tai gali bti keiiama, taisant fail /etc/aliases.
+ .
+ Atkreipkite dmes tai, kad postmaster'io patas turi bti skaitomas
+ sistemoje, kuriai jis yra nukreiptas, o ne persistas kurnors taip, kad
+ naudotojai, kuriuos Jus pasirinkote, neturt io pato nukreipti kitoms
+ mainoms.
+ .
+ Kuriam naudotojui nukreipti sistemos administratoriaus pat? veskite
+ vien arba daugiau naudotoj vard, atskirdami tarpais arba kableliais.
+ veskite "none" jei Js nenorite nukreipti pato. - PASTABA: tai grietai
+ nerekomenduotina. Exim negali pristatyti pato root naudotojui ir saugos
+ j /var/mail/mail kataloge. Taip atkreipkite dmes, kad naudotoj vardai
+ turi bti maosiomis raidmis!
+Description-nb: Mottaker for root- og postmaster-epost:
+ E-post for "postmaster"- og "root"-kontoene videresendes vanligvis til en
+ eller flere brukerkontoer som tilhrer de reelle systemadministratorene.
+ Standardvalget er sette opp systemene slik at e-post til "postmaster" og
+ en del andre systemkontoer videresendes til "root", og deretter
+ videresende "root"s e-post til en ekte bruker. Dette kan endres ved
+ editere /etc/aliases.
+ .
+ Merk at postmaster-epost vanligvis burde leses p systemet den er rettet
+ til, i stedet for videresendes et annet sted, s (minst n av) brukerne
+ du velger burde ikke videresende e-posten sin bort fra denne maskinen.
+ .
+ Hvilke kontoer gr systemadministrator-epost til? Skriv inn ett eller
+ flere brukernavn adskilt av mellomrom eller komma. Skriv "none" dersom du
+ ikke nsker videresende e-posten. - NB! Dette frardes p det sterkeste.
+ Exim kan ikke levere e-post som root og vil lagre e-posten til
+ /var/mail/mail. Merk ogs at brukernavn m vre i sm bokstaver!
+Description-nl: Ontvanger van root en postmaster e-mail:
+ E-mail voor de "postmaster" en "root" gebruikers wordt meestal omgeleid
+ naar de gebruikersaccount(s) van de eigenlijke systeembeheerder(s).
+ Standaard is het zo ingesteld dat de e-mail voor "postmaster" en andere
+ systeem-accounts omgeleid wordt naar "root", en dat de mail voor "root"
+ omgeleid wordt naar de gewone gebruikersaccount van de systeembeheerder.
+ Dit kan veranderd worden door /etc/aliases aan te passen.
+ .
+ Merk op dat de postmaster-e-mail normaal gelezen dient te worden op het
+ systeem naarwaar ze wordt omgeleid, en niet naar elders doorgestuurd; om
+ die reden dient (op z'n minst) n van uw gebruikers ervoor te kiezen om
+ z'n e-mail niet om te leiden naar een ander systeem.
+ .
+ Naar welke gebruikers dient de e-mail voor de systeembeheerder
+ doorgestuurd te worden? Gelieve n of meer gebruikersnamen in te voeren
+ gescheiden door komma's. Voer "none" in indien u deze e-mail niet wilt
+ omleiden (OPGELET: dit wordt sterk afgeraden). Exim kan geen berichten
+ afleveren als root en zal de berichten opslaan in /var/mail/mail. Merk ook
+ op dat de gebruikersnamen opgegeven dienen te worden met kleine letters!
+Description-pt: Destinatrio do mail para root e postmaster:
+ O mail para as contas "postmaster" e para o "root" so normalmente
+ redirecionado para uma ou mais contas de utilizador dos administradores do
+ sistema actuais. O padro configurar os redirecionamentos para que o
+ mail para a conta "postmaster" e para as vrias contas de sistema seja
+ redirecionado para a conta "root" e o mail para a conta "root" seja
+ redirecionado para um utilizador real, Isto pode ser mudado atravs da
+ edio do arquivo /etc/aliases.
+ .
+ Note que o mail para o postmaster deve normalmente ser lido no sistema
+ para o qual o mesmo direcionado em vez de serem encaminhadas para
+ qualquer outro sitio, portanto as suas escolha (pelo menos uma delas) no
+ dever causar o redirecionamento do mail para fora desta mquina.
+ .
+ O mail para o administrador do sistema ser entregue para quais contas de
+ utilizador? Introduza um ou mais nomes de utilizadores separados por
+ espaos ou vrgulas. Introduza "none" caso no pretenda redirecionar o
+ mail - no de todo recomendado. O Exim no pode executar entregas como
+ root e ir gravar as mensagens em /var/mail/mail. De notar tambm que os
+ nomes de utilizadores devem ser escritos em letras minsculas!
+Description-pt_BR: Destinatrio das mensagens para root e postmaster :
+ As mensagens para as contas "postmaster" e para o "root" so normalmente
+ redirecionadas para uma ou mais contas de usurio dos administradores de
+ sistema atuais. O padro configurar os redirecionamentos para que as
+ mensagens para a conta "postmaster" e para vrios contas do sistema sejam
+ redirecionadas para a conta "root" e as mensagens para a conta "root" seja
+ redirecionada para um usurio real, Isto pode ser mudado atravs da edio
+ do arquivo /etc/aliases.
+ .
+ Note que as mensagens para o postmaster devem normalmente serem lidas no
+ sistema para o qual as mesmas so direcionadas ao invs de serem
+ encaminhadas para qualquer outro lugar, portanto, suas escolha (ao menos
+ uma delas) no dever causar o redirecionamento das mensagens para fora
+ desta mquina.
+ .
+ As mensagens para o administrador do sistema sero entregues para quais
+ contas de usurio ? Informe um ou mais nomes de usurios separados por
+ espaos ou vrgulas. Informe "none" caso voc no queira redirecionar as
+ mensagens - isso fortemente desencorajado. O Exim no pode executar
+ entregas como root e ir gravar as mensagens em /var/mail/mail. Note
+ tambm que os nomes de usurios devem estar em letras minsculas !
+Description-ru: , root postmaster:
+ "postmaster" "root"
+
+ . , "postmaster"
+ "root",
+ "root" .
+ , /etc/aliases.
+ .
+ ,
+ , , -,
+ m , ,
+ .
+ .
+ ?
+ , .
+ "none", . - :
+ . Exim root
+ /var/mail/mail. ,
+ !
+Description-sv: Mottagare fr e-post till root och postmaster:
+ E-post till "postmaster"- och "root"-kontona vidarebefordras vanligtvis
+ till ett eller flera anvndarkonton tillhrande de riktiga
+ systemadministratrerna. Som standard r konfigurationen sdan att e-post
+ till "postmaster" och till diverse systemkonton vidarebefordras till
+ "root" och e-post till "root" vidarebefordras till en riktig anvndare.
+ Detta kan ndras genom att redigera /etc/aliases.
+ .
+ Notera att e-post till postmaster vanligtvis br lsas p systemet till
+ vilket den var riktad, istllet fr att vidarebefordras ngon annanstans,
+ s (tminstone en av) anvndarna som du vljer br inte vidarebefordra sin
+ e-post frn denna maskin.
+ .
+ Systemadministratrernas e-post gr till vilka anvndarkonton? Ange ett
+ eller flera anvndarnamn tskilda med blanksteg eller komman. Ange "none"
+ om du inte vill vidarebefordra e-posten. Notera att detta avrds starkt
+ ifrn. Exim kan inte utfra leveranser som root och kommer att spara
+ e-posten i /var/mail/mail. Notera ocks att anvndarnamnen ska vara
+ gemena.
+Description-zh_CN: root postmaster ʼĽߣ
+ postmaster͡rootʻʼͨתһ߶ϵͳԱʻĬϵǰѷpostmasterϵͳʺŵżתrootrootżתһʵûҲͨ༭
+ /etc/aliases ıá
+ .
+ ע⣬ʼԱʼ(postmaster-mail)ӦĿ϶ȡת𴦣ѡû(֮һ)Ӧðǵʼض
+ .
+ ϵͳԱʼ͸ĸûʺţһÿո򶺺ŷָûϣضʼ롰none-
+ ע⣺ǿҽ鲻ҪExim ޷ root
+ ݽͶݣһὫЩʼ浽 /var/mail/mail
+ С⻹Ҫע⣬ûӦСдġ
+
+Template: exim4/dc_noalias_regenerate
+Type: boolean
+Default: false
+Description: Overwrite existing /etc/aliases?
+ You already have an /etc/aliases file, but it does not redirect mail for
+ root to a user account, which is strongly recommended. If you accept
+ overwriting it, the old file will be kept and renamed to aliases.O.
+Description-cs: Pepsat stvajc /etc/aliases?
+ Sice ji mte soubor /etc/aliases, ale ten nepesmrovv rootovu potu na
+ et bnho uivatele (co se velmi doporuuje). Pokud povolte jeho
+ pepsn, bude pvodn soubor uloen pod jmnem aliases.0.
+Description-da: Skal den eksisterende /etc/aliases overskrives?
+ Du har allerede en '/etc/aliases'-fil, men den omdirigerer ikke post til
+ root til en brugerkonto, hvilket anbefales kraftigt. Hvis du accepterer at
+ overskrive den, vil den gamle fil blive gemt under navnet aliases.O.
+Description-de: Bestehende Datei /etc/aliases berschreiben?
+ Sie haben bereits eine Datei /etc/aliases, diese leitet aber Mail fr root
+ nicht an einen normalen Benutzeraccount um, was sehr zu empfehlen wre.
+ Wenn Sie zustimmen, die Datei zu berschreiben, wird die alte Version
+ unter dem Namen aliases.O gespeichert.
+Description-el: /etc/aliases;
+ /etc/aliases,
+ root , .
+ ,
+ aliases.O.
+Description-es: Sobreescribir el archivo /etc/aliases existente?
+ Ya tiene un archivo /etc/aliases, pero ste no redirige el correo de
+ root a una cuenta de usuario, lo cual se le recomienda encarecidamente. Si
+ acepta sobreescribirlo, el archivo antiguo se conservar renombrndolo a
+ aliases.O.
+Description-fi: Tahdotko tuhota vanhan /etc/aliases-tiedoston?
+ Tiedosto /etc/aliases on jo olemassa, mutta se ei ohjaa pkyttjn
+ postia tavallisen kyttjn shkpostilaatikkoon. Tt ohjausta
+ suositellaan vakavasti. Jos hyvksyt tiedoston pllekirjoituksen, vanha
+ tiedosto silytetn ja nimetn aliases.O.
+Description-fr: Faut-il rcrire /etc/aliases?
+ Un fichier /etc/aliases existe dj, mais ne redirige pas les courriels du
+ super-utilisateur (root) vers un compte d'utilisateur comme il est
+ recommand. Si vous choisissez de le rcrire, l'ancien fichier sera
+ conserv sous le nom aliases.O.
+Description-it: Sovrascrivere /etc/aliases?
+ Il file /etc/aliases esiste gi, ma manca l'inoltro della posta per root
+ verso l'account di un utente (opzione fortemente raccomandata). Se si
+ accetta di sovrascriverlo, il vecchio file verr mantenuto col nome di
+ aliases.O.
+Description-ja: ¸ /etc/aliases 񤭤ޤ?
+ Ǥ /etc/aliases ե뤬ޤ root
+ ؤΥ᡼桼Ȥž (϶侩ޤ)
+ Ƥޤ󡣾񤭤ĤƤ⡢Ťե alias.O
+ ̾ѹ¸ޤ
+Description-lt: Ar perrayti egzistuojant fail /etc/aliases?
+ Js jau turite fail /etc/aliases, bet jis nenukreipia root pato
+ normalaus naudotojo paskyr, nors tai grietai rekomenduojama. Jei Js
+ sutiksite j perrayti, senas failas bus isaugotas ir pervadintas
+ aliases.0.
+Description-nb: Overskriv eksisterende /etc/aliases?
+ Du har allerede en /etc/aliases-fil, men den videresender ikke e-post for
+ root til en brukerkonto, hvilket anbefales p det sterkeste. Hvis du
+ godtar overskrive den, vil den gamle filen bevares og omdpes til
+ aliases.O.
+Description-nl: Bestaande bestand /etc/aliases overschrijven?
+ Hoewel u reeds een /etc/aliases bestand heeft, stuurt deze de mail van
+ root niet door naar een gebruikersaccount (wat sterk aangeraden wordt).
+ Wilt u dat het bestaande bestand vervangen wordt (de oude versie wordt
+ bewaard als aliases.O)?
+Description-pt: Sobreescrever o ficheiro /etc/aliases existente?
+ J possui um ficheiro /etc/aliases, que no redireciona o mail para o root
+ para uma conta de utilizador, o que fortemente recomendado. Se aceitar
+ sobreescrev-lo, o ficheiro antigo ser mantido e renomeado para
+ aliases.0.
+Description-pt_BR: Sobreescrever arquivo /etc/aliases existente ?
+ Voc j possui um arquivo /etc/aliases, mas o mesmo no redireciona as
+ mensagens para o root para uma conta de usurio, o que fortemente
+ recomendado. Caso voc aceite sobreescrev-lo, o arquivo antigo ser
+ mantido e renomeado para aliases.0.
+Description-ru: /etc/aliases?
+ /etc/aliases, root
+ , .
+ ,
+ aliases.O.
+Description-sv: Skriv ver befintlig /etc/aliases?
+ Du har redan en /etc/aliases-fil, men den vidarebefordrar inte e-post
+ avsedd fr root till ett anvndarkonto, vilket r starkt rekommenderat. Om
+ du godknner att den skrivs ver kommer den gamla filen att sparas och
+ dpas om till aliases.0.
+Description-zh_CN: /etc/aliases Ѿڣ
+ ϵͳѾһ /etc/aliases ļòὫĸ root
+ żתһͨû(ǿƼĴ趨)ͬ⸲ԭļΪ
+ aliases.O
+
+Template: exim4/dc_local_interfaces
+Type: string
+Default: notset
+Description: IP-addresses to listen on for incoming SMTP connections:
+ Enter a colon-separated list of IP-addresses to listen on. You need to
+ double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::).
+ .
+ If you leave this value empty, Exim will listen for connections on the SMTP
+ port of all available network interfaces.
+ .
+ If this computer does not receive e-mail directly per SMTP from OTHER
+ hosts, but only from local services like fetchmail or your e-mail program
+ (MUA) talking to localhost you should prohibit external connections to
+ Exim by setting this option to 127.0.0.1 and therefore disabling listening
+ on public network interfaces.
+Description-cs: IP adresy, na kterch se maj oekvat pchoz SMTP spojen:
+ Zadejte dvojtekami oddlen seznam IP adres, na kterch se m naslouchat.
+ U IPv6 adres je poteba dvojteky zdvojit (tj. 5f03::1200::836f::::).
+ .
+ Pokud nechte toto pole przdn, Exim bude ekat na spojen na vech
+ dostupnch sovch zazench.
+ .
+ Pokud tento pota nedostv potu z jinch pota pes SMTP, ale pouze
+ skrze lokln programy jako fetchmail nebo emailov klient, mete tuto
+ volbu nastavit na hodnotu 127.0.0.1, m zakete Eximu naslouchat na
+ veejnch sovch rozhranch.
+Description-da: IP-adresser, der skal lyttes p for indkommende SMTP-forbindelser:
+ Angiv en kolon-separeret liste med IP-adresser, der skal lyttes p. Du
+ skal bruge dobbelte koloner i IPv6-adresser (f.eks. 5f03::1200::836f::::).
+ .
+ Hvis du lader denne vrdi vre tom, vil Exim lytte efter forbindelser p
+ SMTP-porten p alle tilgngelige netkort.
+ .
+ Hvis denne computer ikke modtager e-post direkte via SMTP fra ANDRE
+ maskiner, men kun fra lokale services som fetchmail, eller dit e-post
+ program (MUA) snakker til localhost, br du forbyde eksterne forbindelser
+ til Exim ved at stte denne indstilling til 127.0.0.1, hvorved du
+ deaktiverer lytning p offentligt tilgngelige netforbindelser.
+Description-de: IP-Adressen, auf welchen Exim eingehende SMTP-Verbindungen beantwortet:
+ Geben Sie eine durch Doppelpunkte getrennte Liste von IP-Adressen an, auf
+ denen Exim lauschen soll. Sie mssen die Doppelpunkte innerhalb von IPv6
+ Adressen verdoppeln, z.B. 5f03::1200::836f::::
+ .
+ Wenn Sie keine Adressen angeben und die Liste leer lassen, wird Exim auf
+ allen verfgbaren Netzwerkinterfaces eingehende SMTP-Verbindungen
+ beantworten.
+ .
+ Wenn dieser Computer nicht direkt Mail per SMTP Mail von anderen Rechnern
+ empfngt sondern nur von lokalen Programmen wie fetchmail oder Ihrem
+ E-Mail-Programm, die sich mit "localhost" verbinden, sollten Sie das
+ Verbinden externer Rechner zu Exim unterbinden, indem Sie diese Option auf
+ 127.0.0.1 setzen und dadurch verhindern, dass Exim berhaupt auf den
+ externen Netzwerkinterfaces lauscht.
+Description-el: IP SMTP:
+ IP SMTP,
+ ':'.
+ '::' IPv6 (..
+ 5f03::1200::836f::::).
+ .
+ , Exim
+ (interfaces) SMTP.
+ .
+ SMTP
+ , fetchmail
+ - (MUA) localhost,
+ Exim
+ 127.0.0.1,
+ .
+Description-es: Direcciones IP en las que recibir conexiones SMTP entrantes:
+ Introduzca en una lista separada por dos puntos las direcciones IP a
+ escuchar. Necesita duplicar los dos puntos en direcciones IPv6 (por
+ ejemplo 5f03::1200::836f::::).
+ .
+ Si deja este valor en blanco, Exim podr recibir conexiones SMTP desde
+ cualquier interfaz de red disponible.
+ .
+ Si este ordenador no recibe directamente correo por SMTP de otros
+ servidores, sino nicamente de servicios locales como fetchmail o su
+ cliente de correo (MUA) enva al servidor local debera prohibir a Exim
+ conexiones externas ajustando esta opcin al valor '127.0.0.1'.De esta
+ forma desactivar la escucha en las interfaces conectadas a redes
+ pblicas.
+Description-fi: IP-osoitteet joilla kuunnellaan sisntulevia SMTP-yhteyksi:
+ Kirjoita kaksoispisten eroteltu lista IP-osoitteita joita kuunnellaan.
+ IPv6 osoitteissa on kaksoispisteet kahdennettava (esim.
+ 5f03::1200::836f::::).
+ .
+ Jos jtt tmn tyhjksi, Exim kuuntelee yhteyksi SMTP-porttiin kaikilla
+ verkkorajapinnoilla.
+ .
+ Jos tm kone ei vastaanota shkpostia suoraan SMTP:ll MUILTA koneilta,
+ ainoastaan paikallisilta palveluilta kuten fetchmail tai
+ shkpostiohjelmalta (MUA) joka keskustelee localhostin kanssa, olisi
+ Eximilt kiellettv ulkoiset yhteydet asettamalla tm valitsin arvoon
+ 127.0.0.1 ja siten estmll kuuntelu ulkomaailmalle avoimilla
+ verkkorajapinnoilla.
+Description-fr: Liste d'adresses IP o Exim sera en attente de connexions SMTP entrantes:
+ Veuillez indiquer une liste d'adresses IP spares par le caractre
+ deux-points pour lesquelles Exim sera en attente de connexions
+ entrantes. Les caractres deux-points des adresses IPv6 doivent tre
+ doubls (p. ex. 5f03::1200::836f::::).
+ .
+ Si vous laissez cette entre vide, Exim sera l'coute sur le port SMTP
+ de toutes les interfaces rseau disponibles.
+ .
+ Si cette machine ne reoit pas directement de courrier par SMTP depuis
+ d'AUTRES htes, mais seulement via des services locaux comme le programme
+ fetchmail ou votre agent utilisateur de courriel (MUA: Mail User
+ Agent) qui envoient localhost, vous devriez interdire les
+ connexions externes en indiquant 127.0.0.1 ici, ce qui dsactive les
+ connexions entrantes sur les interfaces rseau publiques.
+Description-it: Indirizzi IP sui quali attendere connessioni SMTP in ingresso:
+ Inserire un elenco di indirizzi IP sui quali porsi in ascolto.
+ necessario raddoppiare i due punti (":") negli indirizzi IPv6 (ad esempio
+ 5f03::1200::836f::::).
+ .
+ Se non viene specificato alcun valore, Exim si pone in ascolto sulla porta
+ SMTP di tutte le interfacce di rete disponibili.
+ .
+ Se questo computer non riceve e-mail direttamente tramite SMTP da ALTRI
+ host, ma solo da servizi locali, come fetchmail o un client di posta (MUA)
+ che si interfaccia con localhost, preferibile proibire connessioni
+ dall'esterno verso Exim impostando questa opzione a "127.0.0.1",
+ disabilitando quindi l'ascolto su interfacce di rete pubbliche.
+Description-ja: ¦ SMTP ³ꥹ󤹤 IP ɥ쥹:
+ ꥹ󤹤 IP ɥ쥹ΥꥹȤ򥳥ǶڤäϤƤIPv6
+ ɥ쥹ǤϥŤˤɬפޤ (Ȥ
+ 5f03::1200::836f::::)
+ .
+ ͤˤȡExim
+ Ϥ٤ƤѲǽʥͥåȥ󥿡ե SMTP
+ ݡȤ³ꥹ󤷤ޤ
+ .
+ Υԥ塼ۤΥۥȤ SMTP
+ Żҥ᡼ľܼ餺ۥȤȤꤹ fetchmail
+ 䤢ʤŻҥ᡼ץ (MUA)
+ Τ褦ʥ륵ӥΤ߼ΤǤСͤ 127.0.0.1
+ ꤷ˥ѥ֥åʥͥåȥ󥿡եΥꥹ˥󥰤̵ˤ뤳Ȥ
+ Exim ؤγ³ػߤ٤Ǥ
+Description-lt: IP adresai einanio SMTP ryio klausymuisi:
+ veskite dvitakiais atskirtus IP adresus, kuriais reikia laukti einanio
+ susijungimo. Js turite padvigubinti dvitakius IPv6 adresuose (pvz.
+ 5f03::1200::836f::::).
+ .
+ Jei Js paliksite lauk tui, Exim klausysis ryio vis prieinam
+ tinklo ssaj SMTP jungtyse (port).
+ .
+ Jei is kompiuteris nepriima elektroninio pato tiesiogiai SMTP protokolu
+ i KIT kompiuteri, o priima tik i lokali servis, toki kaip fetchmail
+ ar Js pato programos (MUA), bendraujant per localhost, Js turtumte
+ drausti iorin prisijungim, nustatydami ia reikm 127.0.0.1, tokiu
+ bdu udrausdami vie tinklo ssaj klausymsi.
+Description-nb: IP-adresser det skal lyttes p etter innkommende SMTP-tilkoblinger:
+ Skriv inn en kolon-separarert liste av IP-adresser det skal lyttes p. Du
+ er ndt til doble evt. kolon i IPv6-adresser (f.eks.
+ 5f03::1200::836f::::).
+ .
+ Hvis du lar denne verdien st tom, vil Exim lytte etter tilkoblinger p
+ SMTP-porten p alle tilgjengelige nettverksgrensesnitt.
+ .
+ Hvis denne maskinen ikke mottar e-post direkte via SMTP fra ANDRE
+ maskiner, bare fra lokale tjenester som fetchmail eller e-post-programmet
+ ditt (MUA-en din) som snakker mot localhost, burde du forby eksterne
+ tilkoblinger til Exim ved sette dette valget til 127.0.0.1 og derfor
+ skru av lytting p offentlige nettverksgrensesnitt.
+Description-nl: IP-adressen waarop geluisterd moet worden naar inkomende SMTP-verbindingen:
+ Voer een door dubbele punten gescheiden lijst van IP-adressen in. In IPv6
+ adressen dient u de dubbele punten te verdubbelen (vb.
+ 5f03::1200::836f::::).
+ .
+ Als u deze waarde leeg laat zal Exim op de SMTP-poort van alle beschikbare
+ netwerkapparaten naar verbindingen luisteren.
+ .
+ Indien dit systeem geen e-mail rechtstreeks via SMTP van ANDERE systemen
+ ontvangt, maar enkel van lokale diensten zoals fetchmail of uw e-mail
+ programma (MUA) pratend met localhost, kunt u best externe verbindingen
+ met Exim voorkomen door deze optie in te stellen op 127.0.0.1 (waardoor er
+ niet meer geluisterd wordt op publieke netwerk-interfaces.
+Description-pt: Lista de endereos IP nos quais escutar por ligaes SMTP:
+ Introduza uma lista separada por dois pontos contendo endereos IP nos
+ quais pretende esperar por ligaes SMTP. Precisa de duplicar a quantidade
+ de dois pontos caso use endereos IPv6 (por exemplo,
+ 5f03::1200::836f::::).
+ .
+ Se mantiver este valor vazio, o Exim ir esperar por ligaes na porta
+ SMTP de todas as interfaces de rede disponveis.
+ .
+ Se este computador no receber mail directamente via SMTP de OUTROS hosts
+ e recebe mail de servios locais como o fetchmail ou do seu programa de
+ mail (MUA) que comunicam com o localhost, dever proibir ligaes
+ originadas externamente com destino ao Exim configurando esta opo para
+ 127.0.0.1 e portanto desactivando a escuta em interfaces de rede pblicas.
+Description-pt_BR: Lista de endereos IP nos quais escutar por conexes SMTP :
+ Informe uma lista separada por dois pontos contendo endereos IP nos quais
+ a escuta por conexes SMTP deve estar habilitada. Voc precisa duplicar a
+ quantidade de dois pontos caso use endereos IPv6 (por exemplo,
+ 5f03::1200::836f::::).
+ .
+ Caso voc matenha este valor em branco, o Exim ir escutar por conexes na
+ porta SMTP de todas as interfaces de rede disponveis.
+ .
+ Caso este computador no receba mensagens diretamente via SMTP de OUTROS
+ hosts e somente receba mensagens de servios locais como o fetchmail ou de
+ seu programa de mensagens (MUA) conversando com o localhost voc
+ prvavelmente dever proibir conexes originadas externamente com destino
+ ao Exim configurando esta opo para 127.0.0.1 e portanto desabilitando a
+ escuta em interfaces de rede pblicas.
+Description-ru: IP- SMTP?
+ IP-, ,
+ . IPv6
+ (, 5f03::1200::836f::::).
+ .
+ , Exim
+ SMTP- .
+ .
+ SMTP ,
+ , fetchmail,
+ (MUA), localhost,
+ , 127.0.0.1,
+ .
+Description-sv: IP-adresser att lyssna p efter inkommande SMTP-anslutningar:
+ Ange en komma-avskild lista med IP-adresser som ska lyssnas p. Du mste
+ dubblera kolona i IPv6-adresser (t ex 5f03::1200::836f::::).
+ .
+ Om du lmnar det hr vrdet tomt kommer Exim att lyssna efter anslutningar
+ p SMTP-porten p alla ntverksanslutningar.
+ .
+ Om denna dator inte tar emot e-post direkt med SMTP frn ANDRA vrdar,
+ utan endast frn lokala tjnster som fetchmail eller ditt e-postprogram
+ (MUA) som talar till "localhost" br du frbjuda externa anslutningar till
+ Exim genom att ange 127.0.0.1 hr och drigenom stnga av lyssning p
+ publika ntverksanslutningar.
+Description-zh_CN: Ҫվ SMTP ӵ IP ַ
+ ðŷָļ IP ַбҪ IPv6
+ ַʹ˫ð(磺5f03::1200::836f::::)
+ .
+ ﱣհףExim пýӿڼ SMTP վӡ
+ .
+ ֱ̨ͨ SMTP ʼͨ fetchmail
+ ʼͻ(MUA) localhost
+ ıطȡʼӦýѡ趨Ϊ 127.0.0.1 ֹⲿ絽
+ Exim Ӳȡڹӿϵļ
+
+Template: exim4/dc_minimaldns
+Type: boolean
+Default: false
+Description: Keep number of DNS-queries minimal (Dial-on-Demand)?
+ In normal mode of operation Exim makes DNS-lookups at startup, when
+ receiving or delivering message, etc. for logging purposes and to keep the
+ number of hard-coded values in the configuration file small.
+ .
+ If this were a host without permanent DNS-nameserver-access using
+ Dial-on-Demand this might have the unwanted consequence that starting up
+ exim or running the queue (even with no messages waiting) might trigger a
+ costly dial-up-event.
+ .
+ Enable this feature if you are using Dial-on-Demand; otherwise, disable it.
+Description-cs: Minimalizovat poet DNS dotaz (Vyten-na-vydn)?
+ Aby Exim poskytoval pesn zznamy o sv innosti a minimalizoval poet
+ neprunch hodnot v konfiguranm souboru, klade pomrn asto rzn DNS
+ dotazy (pi startu, pijmn nebo odesln poty, atd).
+ .
+ Kdyby tento pota neml trval pstup k jmennm serverm a pouval
+ vyten pipojen na vydn, mohlo by to mt nechtn nsledky, protoe
+ start eximu nebo kontrola fronty (i kdyby v n nebyly dn zprvy) by
+ spustily drah pipojen.
+ .
+ Tuto vlastnost zapnte pouze pokud pouvte vyten na vydn.
+Description-da: Skal antallet af DNS-foresprgsler minimeres (opkaldsforbindelse)?
+ I normal drifttilstand, foretager Exim DNS-opslag under opstarten, nr den
+ modtager eller afleverer beskeder o.lign. for at fre log og holde
+ antallet af faste indstillinger i opstningsfilen nede.
+ .
+ Hvis dette er en maskine uden permanent adgang til en DNS-navneserver, og
+ benytter en opkaldsforbindelse, kan det have den unskede konsekvens at
+ exim krver et kostbart opkald under opstart eller ved behandling af ken
+ (selv hvis der ikke er nogen ventende beskeder).
+ .
+ Aktivr denne funktion hvis du bruger en opkaldsforbindelse, ellers ikke.
+Description-de: DNS-Anfragen minimieren (Dial-on-Demand)?
+ Normalerweise fhrt exim diverse DNS Abfragen durch; beim Start, beim
+ Empfangen oder Zustellen von Nachrichten, fr die Logdatei und um die
+ Konfiguration klein zu halte.
+ .
+ Wenn dieser Rechner keinen permanten Zugang zu DNS-Servern hat, und sich
+ bei versuchtem Zugriff auf das Netz auf das Netz automatisch einwhlt
+ (Dial-on-Demand), kann also das Starten von Exim oder Abarbeiten der
+ Wateschlange (sogar, wenn diese leer ist) eine Kosten verursachende
+ Einwahl verursachen.
+ .
+ Aktivieren Sie die Option, wenn Sie Dial-on-Demand verwenden,
+ desaktivieren Sie sie andernfalls.
+Description-el: DNS ( ' );
+ Exim DNS
+ , , .
+ hard-coded
+ .
+ .
+ DNS,
+ ' (dial-on-demand),
+
+ Exim ( ).
+ .
+ '
+ , .
+Description-es: Mantener el nmero mnimo de peticiones de DNS (marcacin bajo demanda)?
+ En el modo normal de operacin, Exim hace consultas de DNS al iniciar,
+ cuando recibe o entrega mensajes, etc. con propsitos de registro y para
+ mantener pequeo el nmero de valores grabados en el archivo de
+ configuracin.
+ .
+ Si este ordenador es un servidor sin acceso permanente a servidores de
+ nombres DNS, usando marcacin bajo demanda esto podra tener la indeseable
+ consecuencia de que se intente realizar una evento de conexin (que genere
+ una llamada costosa) al iniciar exim o ejecutar la cola del correo
+ (incluso aunque no haya mensajes en espera).
+ .
+ Active esta funcin si esta usando marcacin bajo demanda; en caso
+ contrario, desactvela.
+Description-fi: Tee mahdollisimman vhn DNS-kyselyit (tarvittaessa avattava soittoyhteys)?
+ Tavallisessa toimintatilassa Exim tekee DNS-kyselyit kynnistyessn,
+ vastaanottaessaan tai toimittaessaan viestej, jne. Tietoja kytetn
+ lokin kirjoittamiseen ja vlttmn asetustiedostoihin kirjoitettuja
+ IP-numeroita.
+ .
+ Tm kone voisi olla ilman pysyv yhteytt DNS-nimipalveluun kun
+ kytetn tarvittaessa avattavaa soittoyhteytt. Tll saattaisi olla
+ ei-toivuttu seuraus eximi kynnistettess tai postijonoa ksiteltess
+ (vaikka siin ei olisikaan yhtn viesti) kun se aiheuttaisi kalliin
+ soittoyhteyden avaamisen.
+ .
+ Kyt tt ominaisuutta jos soittoyhteys avataan tarvittaessa. Muussa
+ tapauksessa ota se pois plt.
+Description-fr: Faut-il minimiser les requtes DNS (connexions la demande)?
+ En fonctionnement normal, Exim effectue ses requtes DNS au dmarrage,
+ lors de la rception ou de la distribution de messages, etc. Cela est
+ destin la journalisation et permet de minimiser le nombre de valeurs
+ codes en dur dans le fichier de configuration.
+ .
+ Si cet hte n'a pas de connexion permanente vers un serveur de noms et
+ utilise des connexions la demande, cela peut avoir comme consquence que
+ le lancement d'exim ou le traitement de la file d'attente (mme sans
+ messages en attente) peut gnrer de coteuses connexions.
+ .
+ Cette fonctionnalit ne devrait tre active que pour les htes utilisant
+ une connexion la demande.
+Description-it: Mantenere al minimo il numero di richieste DNS (Dial-on-Demand)?
+ Nella modalit predefinita, Exim esegue delle richieste DNS all'avvio,
+ quando riceve e consegna un messaggio e in altre occasioni, allo scopo di
+ redigere dei log accurati e di ridurre al minimo il numero di valori fissi
+ scritti nel file di configurazione.
+ .
+ Nel caso di un host senza accesso permanente a un server DNS e con il
+ Dial-on-Demand abilitato, possibile che si abbia come conseguenza
+ indesiderata l'attivazione della connessione dial-up in seguito all'avvio
+ di exim o al controllo della coda (anche se non ci sono messaggi da
+ inviare).
+ .
+ Abilitare questa opzione se si usa il Dial-on-Demand, altrimenti lasciarla
+ disabilitata.
+Description-ja: DNS οǾ¤αޤ (륪ǥޥ)?
+ ̾ư⡼ɤǤϡExim DNS
+ ååפưåʤɤκݡӤϿ뤿˹Ԥե˥ϡɥɤ줿ͤοǾͤݻޤ
+ .
+ 륪ǥޥɤȤ褦ʱ³Ū DNS
+ ͡ॵФؤΥʤΥۥȤξ硢exim εư䥭塼μ¹Ի
+ (ԵΥåʤȤǤ) (⤯Ĥ)
+ 륢åץ٥ȤȤ˾ޤʤ̤ȤʤǤ礦
+ .
+ 륪ǥޥɤȤΤǤСεǽͭˤޤǤʤС̵ˤޤ
+Description-lt: Ar daryti minimal DNS uklaus kiek (prisiskambinimas pagal pareikalavim)?
+ Normaliu darbo reimu Exim daro DNS uklausas (klimo metu, priimant ar
+ isiuniant praneimus, ir t.t.) raymo log fail tikslais ir tam, kad
+ bt maas reikmi kiekis saugomas konfigracijos faile.
+ .
+ Jei is kompiuteris neturi pastovaus prijimo prie DNS serverio ir naudoja
+ prisiskambinimas pagal pareikalavim, tai gali iaukti nepageidaujam
+ elges, t.y. Exim klimo metu arba apdorojant eiles (net jei jose nra
+ laukiani praneim) gali bti inicijuojamas brangus prisiskambinimas.
+ .
+ Leiskite i savyb tik jei Js naudojate prisiskambinim pagal
+ pareikalavim; kitu atveju udrauskite j.
+Description-nb: Minimer antall DNS-foresprsler (oppringning-etter-behov)?
+ Vanligvis vil Exim gjre DNS-oppslag ved oppstart, ved sending og mottak
+ av e-post, osv. for loggbruk osv. og for begrense behovet for
+ hardkordede verdier i konfigurasjonsfilen.
+ .
+ Hvis dette er en maskin uten permanent tilgang til DNS-navnetjenere med
+ oppringning etter behov, kan dette ha den unskede konsekvensen at det
+ starte opp Exim behandle ken (selv uten noen ventende meldinger) kan
+ aktivere en dyr oppringing.
+ .
+ Skru p denne funksjonen dersom du bruker oppringing-etter-behov; hvis
+ ikke, skru den av.
+Description-nl: Aantal DNS-vragen minimaliseren (inbellen-op-aanvraag)?
+ In de normale operatiemodus zal Exim DNS-opzoekingen doen bij het
+ opstarten, bij het ontvangen of versturen van een bericht, enz.; dit
+ omwille van logboekdoeleinden en om het aantal in het configuratiebestand
+ vastgezette waarden klein te houden.
+ .
+ Indien dit systeem niet altijd toegang heeft tot naamservers (DNS) kan het
+ gebruik van inbellen-op-aanvraag het ongewenste gevolg hebben dat er bij
+ het opstarten van exim, of bij het afhandelen van de wachtrij (zelfs
+ wanneer deze geen berichten bevat) ingebeld wordt.
+ .
+ Indien u inbellen-op-aanvraag gebruikt kunt u deze optie best aanvaarden,
+ anders kunt u best weigeren.
+Description-pt: Manter o nmero de pesquisas DNS mnimas (Dial-on-Demand)?
+ No modo normal de operao o Exim executa pesquisas DNS na inicializao,
+ quando recebe ou entrega mails, para propsitos de logging e para manter
+ baixo o nmero de valores codificados manualmente no ficheiro de
+ confiurao.
+ .
+ Se este fosse um host sem acesso a um servidor de nomes DNS permanente,
+ que usasse Dial-on-Demand, isto poderia ter a consequncia indesejada de
+ activar um evento de pedido que envolvesse custos telefnicos sempre que o
+ Exim fosse iniciado ou a fila de mails fosse executada (mesmo sem nenhum
+ mail em espera).
+ .
+ Active esta funcionalidade caso esteja a usar Dial-on-Demand; Caso
+ contrrio, desactive-a.
+Description-pt_BR: Manter o nmero de pesquisas DNS mnimas (Discar-sob-Demanda) ?
+ No modo normal de operao o Exim executa pesquisas DNS na inicializao,
+ quando recebe ou entrega mensagens, para propsitos de logging e para
+ manter baixo o nmero de valores codificados manualmente no arquivo de
+ confiurao.
+ .
+ Caso este fosse um host sem acesso a um servidor de nomes DNS permanente ,
+ que usasse Discagem-sob-Demanda, isso poderia ter a consequncia
+ indesejada de ativar um evento de discagem que envolvesse custos
+ telefnicos sempre que o Exim fosse iniciado ou a fila de mensagens fosse
+ executada (mesmo sem nenhuma mensagem em espera).
+ .
+ Habilite este recurso caso voc esteja usando Discagem-sob_Demanda. Caso
+ no esteja, desabilite-o.
+Description-ru: DNS ( )?
+ Exim DNS- ( ,
+ ..)
+ , .
+ .
+ DNS-
+ --, ,
+ .. exim ( )
+ .
+ .
+ --, ;
+ - .
+Description-sv: Hll antal DNS-frfrgningar till ett minimum (ring-vid-behov)?
+ I normalt driftlge gr Exim DNS-uppslagningar vid uppstart, vid
+ mottagande och leverans av meddelanden etcetera. Detta grs i
+ loggningssyfte samt fr att hlla nere antalet hrdkodade vrden i
+ konfigurationsfilen.
+ .
+ Om detta vore en vrd utan permanent DNS-namnservertkomst som anvnde
+ ring-vid-behov (Dial-on-Demand) s kunde detta f den onskade fljden att
+ en start av exim eller att kn jobbas igenom (ven nr inga meddelanden
+ vntar) kunde orsaka en kostsam uppringning.
+ .
+ Aktivera denna funktion om du anvnder ring-vid-behov (Dial-on-demand).
+ Annars ska den avaktiveras.
+Description-zh_CN: С DNS ѯ(κ Dial-on-Demand)
+ ͨģʽIJУڼ¼־ͱļӲΪһСֵĿģExim
+ ڽջͶżȶʼʱ DNS ѯ
+ .
+ һ̨ʹð貦ŵIJ÷ DNS
+ ܻᵼDzҪĽ exim
+ ִżʱ(ǶûżȴͶ)ܴһġڽӵʱš
+ .
+ ʹðκ(Dial-on-Demand)뿪ѡ֮
+
+Template: exim4/exim4-config-title
+Type: title
+Description: Configuring Exim v4 (exim4-config)
+Description-cs: Nastaven Eximu v4 (exim-config)
+Description-da: Stter Exim v4 op (exim4-config)
+Description-de: Konfiguriere Exim v4 (exim4-config)
+Description-el: Exim v4 (exim4-config)
+Description-es: Configuracin de Exim versin 4 (exim4-config)
+Description-fi: Tehdn Exim v4:n asetuksia (exim4-config)
+Description-fr: Configuration d'Exim v4 (exim4-config)
+Description-it: Configurazione di Exim v4 (exim4-config)
+Description-ja: Exim v4 ꤷƤޤ (exim4-config)
+Description-lt: Exim v4 konfigravimas (exim4-config)
+Description-nb: Konfigurerer Exim v4 (exim4-config)
+Description-nl: Exim v4 wordt ingesteld (exim4-config)
+Description-pt: A configurar o Exim v4 (exim-config)
+Description-pt_BR: Configurando o Exim v4 (exim-config)
+Description-ru: Exim v4 (exim4-config)
+Description-sv: Konfigurerar Exim v4 (exim4-config)
+Description-zh_CN: Exim v4 (exim4-config)
+
+Template: exim4/use_split_config
+Type: boolean
+Description: Split configuration into small files?
+ The Debian exim4 packages can either use a single monolithic file
+ (/etc/exim4/exim4.conf.template) or about 40 small files in
+ /etc/exim4/conf.d/ to generate the final configuration.
+ .
+ The former is better suited for large modifications and is generally
+ more stable, whereas the latter offers a comfortable way to make smaller
+ modifications but is more fragile and might break if modified
+ extensively.
+ .
+ If you are unsure then you should not use split configuration.
+Description-cs: Rozdlit nastaven do mench soubor?
+ Debian balky eximu4 mohou k vytvoen vsledn konfigurace pout bu
+ jeden velk soubor (/etc/exim4/exim4.conf.template) nebo zhruba 40 malch
+ soubor z adrese /etc/exim4/conf.d/.
+ .
+ Prvn monost je vhodnj pro rozshl pravy a teoreticky je o nco
+ stabilnj. Druh monost nabz pohodlnou zmnu malch izolovanch
+ st, ale je nchylnj k chybm a rozshl zmny se mohou zmnit v
+ non mru.
+ .
+ Pokud si nejste jist, radji rozdlenou konfiguraci nepouvejte.
+Description-da: Opdel opstningen i mindre filer?
+ Debians exim4-pakker kan enten bruge en enkelt monolitisk fil
+ (/etc/exim4/exim4.conf) eller omkring 40 sm filer i /etc/exim4/conf.d til
+ at generere den endelige opstning.
+ .
+ Den frste lsning er bedst for strre ndringer, og betragtes generelt
+ som mere stabil, mens den anden gr det muligt at lave mindre ndringer p
+ en mere komfortabel mde, men er mere skrbelig, og kan g i stykker, hvis
+ den ndres kraftigt.
+ .
+ Hvis du er usikker, br du ikke benytte den opdelte opstning.
+Description-de: Konfiguration auf viele kleine Dateien aufteilen?
+ Die Debian Exim4 Pakete knnen entweder eine grosse
+ (/etc/exim4/exim4.conf.template) oder rund 40 kleine Dateien in
+ /etc/exim4/conf.d/ als Datenquelle zum Erstellen der endgltigen
+ Konfiguration verwenden.
+ .
+ Ersteres eignet sich besser fr grerer Modifikationen und ist
+ grundstzlich robuster, zweiteres ermglicht es, mit geringem Aufwand
+ kleine nderungen vorzunehmen, kann aber weitgehenden Vernderungen
+ funktionsuntchtig werden.
+ .
+ Im Zweifelsfall sollten Sie sich gegen die Aufteilung in kleine Dateinen
+ entscheiden.
+Description-el: ;
+ exim4 Debian,
+ (/etc/exim4/exim4.conf.template) 40
+ /etc/exim4/conf.d .
+ .
+
+ ,
+ .
+ .
+ .
+Description-es: Dividir la configuracin en pequeos ficheros?
+ Los paquetes Debian de exim4 pueden usar un nico fichero monoltico
+ (/etc/exim4.conf.template) o bien cerca de 40 ficheros pequeos en
+ /etc/exim4/conf.d/ para generar la configuracin final.
+ .
+ La primera se adapta mejor a grandes modificaciones y es generalmente ms
+ estable, mientras que la ltima ofrece una manera cmoda de hacer pequeas
+ modificaciones pero es ms frgil y podra romperse si hace muchos
+ cambios.
+ .
+ Si no est seguro no debera usar la configuracin dividida en pequeos
+ ficheros.
+Description-fi: Jaetaanko asetukset pieniin tiedostoihin?
+ Debianin exim4-paketit voivat tallettaa asetukset joko yhteen
+ yhteiseen tiedostoon (/etc/exim4/exim4.conf.template) tai noin 40
+ pieneen tiedostoon hakemistossa /etc/exim4/conf.d/ joista lopulliset
+ asetukset tuotetaan.
+ .
+ Ensimminen sopii paremmin isoihin muutoksiin ja on yleisesti ottaen
+ vakaampi, kun taas jlkimminen tarjoaa mukavan tavan tehd pieni
+ muutoksia mutta on helposti srkyv ja voi menn rikki jos asetuksia
+ muutetaan runsaasti.
+ .
+ Jos olet epvarma ei pitisi jakaa asetuksia erillisiin tiedostoihin.
+Description-fr: Faut-il sparer la configuration dans plusieurs fichiers?
+ Les paquets Debian d'Exim4 peuvent utiliser soit un unique fichier
+ monolithique (/etc/exim4/exim4.conf.template), soit environ quarante
+ petits fichiers dans /etc/exim4/conf.d/ pour gnrer la configuration
+ finale.
+ .
+ Une configuration un seul fichier est plus adapte aux modifications
+ importantes et est gnralement plus stable alors qu'une configuration
+ clate se prte mieux aux petites modifications mais est plus fragile
+ notamment si elle est notablement modifie.
+ .
+ Dans le doute, vous devriez viter de sparer la configuration.
+Description-it: Dividere la configurazione in molti piccoli file?
+ I pacchetti Debian di exim4 possono generare la configurazione finale a
+ partire da un file di configurazione monolitico
+ (/etc/exim4/exim4.conf.template), oppure da 40 piccoli file in
+ /etc/exim4/conf.d.
+ .
+ La prima alternativa migliore in caso di grosse modifiche ed
+ generalmente pi stabile, l'altra pi comoda per fare piccole modifiche
+ ma pi fragile e potrebbe dare problemi se si apportano modifiche
+ sostanziali.
+ .
+ In caso di dubbio, preferibile non dividere la configurazione.
+Description-ja: 򾮤ʥեʬ䤷ޤ?
+ Debian exim4 ѥåϡñΥե
+ (/etc/exim4/exim4.conf.template) Ǥ⡢ǽŪ뤿˻Ȥ
+ /etc/exim4/conf.d/ ֤ 40 ξʥեǤѤǤޤ
+ .
+ Ԥ礭ѹ򤹤Τ˸ƤꡢŪˤꤷƤΤФԤϾѹԤΤ˳ڤˡ󶡤ޤ
+ (ȤϰϤѹDz뤫⤷ޤ)
+ .
+ 褯狼ʤСʬϤʤۤ褤Ǥ礦
+Description-lt: Ar suskaldyti konfigracij maus failus?
+ Debian'o exim4 paketai galutins konfigracijos generavimui gali naudoti
+ arba vien monolitin fail (/etc/exim4/exim4.conf.template), arba apie 40
+ ma fail kataloge /etc/exim4/conf.d/.
+ .
+ Pirmasis bdas labiau tinka didelms modifikacijoms ir bendrai yra daug
+ stabilesnis, tuo tarpu antrasis bdas patogesnis nedideli pakeitim
+ atlikimui, bet yra daug trapesnis ir gali sutrikti atliekant didelius
+ pakeitimus.
+ .
+ Jei abejojate, tuomet nenaudokite konfigracijos suskaldymo.
+Description-nb: Del konfigurasjonen opp i mindre filer?
+ Debians exim4-pakker kan enten bruke en enkelt monolittisk fil
+ (/etc/exim4/exim4.conf.template) eller omtrent 40 smfiler i
+ /etc/exim4/conf.d/ for generere den ferdige konfigurasjonen.
+ .
+ Den frste er bedre egnet for store endringer og er generelt mer stabil,
+ mens den siste tilbyr en komfortabel mte gjre sm endringer p, men er
+ skjrere og kan brekke hvis den endres mye.
+ .
+ Hvis du er usikker, burde du ikke bruke den oppdelte konfigurasjonen.
+Description-nl: Configuratiebestand opsplitsen in kleinere bestanden?
+ Om de uiteindelijke configuratie te genereren kunnen de Debian
+ exim4-pakketten of 1 groot monolitisch bestand
+ (/etc/exim4/exim4.conf.template), of ongeveer 40 kleinere bestanden in
+ /etc/exim4/conf.d/ gebruiken.
+ .
+ Een groot monolitisch bestand is het meest geschikt voor grote
+ aanpassingen en is stabieler, terwijl een hoop kleine bestanden meer
+ geschikt is om een een heleboel kleine aanpassingen te maken en
+ kwetsbaarder is (wat kan leiden tot een niet-werkende configuratie bij
+ grote aanpassingen).
+ .
+ Bij twijfel kunt u best het grote monolitische bestand gebruiken.
+Description-pt: Dividir a configurao em pequenos ficheiros?
+ Os pacotes Debian do exim4 podem usar um nico ficheiro monoltico
+ (/etc/exim4/exim4.conf.template) ou por volta de 40 pequenos ficheiros
+ localizados no diretrio /etc/exim4/conf.d/, para gerar a configurao
+ final.
+ .
+ O primeiro mtodo o mais indicado para grandes modificaes e
+ geralmente mais estvel. O ltimo mtodo oferece uma maneira confortvel
+ de fazer pequenas mudanas mas mais frgil e pode perder consistncia se
+ for modificado extensivamente.
+ .
+ Se estiver com dvidas no deve escolher para dividir a configurao.
+Description-pt_BR: Dividir a configurao em pequenos arquivos ?
+ Os pacotes Debian do exim4 pode usar um nico arquivo monoltico
+ (/etc/exim4/exim4.conf.template) ou por volta de 40 pequenos arquivos
+ localizados no diretrio /etc/exim4/conf.d/, de onde a configurao final
+ ser gerada.
+ .
+ O primeiro mtodo melhor indicado para grandes modificaes e
+ geralmente mais estvel. O ltio mtodo oferece uma maneira confortvel de
+ fazer pequenas mudanas mas mais frgil e pode quebrar caso modificado
+ extensivamente.
+ .
+ Caso voc esteja com dvidas voc deveria escolher dividir a configurao.
+Description-ru: ?
+ exim4 Debian
+ (/etc/exim4/exim4.conf.template) 40
+ /etc/exim4/conf.d/ .
+ .
+
+ ,
+ ,
+ .
+ .
+ ,
+ .
+Description-sv: Dela konfigurationen i sm filer?
+ Debians exim4-paket kan antingen anvnda en ensam monolitisk fil
+ (/etc/exim4/exim4.conf.template) eller ungefr 40 sm filer i
+ /etc/exim4/conf.d/ fr att skapa den slutgiltiga konfigurationen.
+ .
+ Det frstnmnda passar bttre fr stora ndringar och r generellt sett
+ stabilare, medan det senare erbjuder ett praktiskt stt att gra mindre
+ ndringar men r brckligare och kan g snder om stora ndringar grs.
+ .
+ Om du r osker s ska du inte anvnda delad konfiguration.
+Description-zh_CN: ĵֲСļ
+ Debian exim4
+ ȿʹõļ(/etc/exim4/exim4.conf.template)Ҳͨ
+ /etc/exim4/conf.d/ µĴԼ 40 Сļյĵ
+ .
+ ǰ߸ʺ϶ýдԶҲȶṩһؽ޸ĵķҲȽϴ޸ݾͿܻᵼ¹ϡ
+ .
+ ̫ȷ벻Ҫѡֲá
diff --git a/debian/exim4-config.templates.master b/debian/exim4-config.templates.master
new file mode 100644
index 0000000..d9407fa
--- /dev/null
+++ b/debian/exim4-config.templates.master
@@ -0,0 +1,185 @@
+Template: exim4/dc_eximconfig_configtype
+Type: select
+# Translators beware! the following six strings form a single
+# Choices menu. - Every one of these strings has to fit in a standard
+# 80 characters console, as the fancy screen setup takes up some space
+# try to keep below ~72 characters.
+__Choices: internet site; mail is sent and received directly using SMTP, mail sent by smarthost; received via SMTP or fetchmail, mail sent by smarthost; no local mail, local delivery only; not on a network, manually convert from handcrafted Exim v3 configuration, no configuration at this time
+_Description: General type of mail configuration:
+ Several general types of mail system configuration are possible. Select the
+ one that best meets your needs.
+ .
+ Systems with dynamic IP addresses, including dialup systems, probably should
+ be configured to send outgoing mail to another machine, called a "smart host"
+ for delivery. You can choose to receive mail on such a system; or to have no
+ local mail delivery, except mail for root and postmaster.
+
+Template: exim4/exim3_upgrade
+Type: boolean
+Default: true
+_Description: Configure Exim4 manually?
+ You indicated that you have a handcrafted Exim 3 configuration.
+ To convert this to Exim 4, you can use the exim_convert4r4(8) tool
+ after the installation. Consult
+ /usr/share/doc/exim4-base/examples/example.conf.gz and
+ /usr/share/doc/exim4-base/README.Debian.gz!
+ .
+ Until your mail system is configured, it will be broken and cannot be
+ used.
+
+Template: exim4/no_config
+Type: boolean
+Default: true
+_Description: Really leave the mail system unconfigured?
+ Until your mail system is configured, it will be broken and cannot be
+ used. You can of course configure it later, either by hand or by running
+ "dpkg-reconfigure exim4-config" as root.
+
+Template: exim4/mailname
+Type: string
+_Description: System mail name:
+ Your "mail name" is the hostname portion of the address to be shown on
+ outgoing news and mail messages (following the username and @ sign).
+ .
+ This name will be used by other programs besides Exim; it should be the
+ single, full domain name (FQDN) from which mail will appear to originate.
+ .
+ If you are configuring this system as 'satellite' this name won't appear
+ on From: lines of mail, as rewriting is used.
+
+Template: exim4/dc_other_hostnames
+Type: string
+Default:
+_Description: Other destinations for which mail is accepted:
+ Please enter a list of domains for which this machine should consider
+ itself the final destination, apart from the mail name (${mailname})
+ and "localhost".
+ .
+ By default all domains will be treated the same; if you want different
+ domain names to be treated differently, you will need to edit the config
+ files afterwards.
+ .
+ If there are any more, enter them here, separated by colons. You may
+ leave this blank if there are none.
+
+Template: exim4/dc_relay_domains
+Type: string
+Default:
+_Description: Domains to relay mail for:
+ Please enter here the domains for which you accept to relay the mail.
+ .
+ Such domains are domains for which you are prepared to accept mail
+ from anywhere on the Internet. Do not mention local domains here.
+ .
+ The domains you enter here should be separated by colons. Wildcards
+ may be used.
+
+Template: exim4/dc_relay_nets
+Type: string
+Default:
+_Description: Machines to relay mail for:
+ Please enter here the networks of local machines for which you accept to
+ relay the mail.
+ .
+ Obviously, any machines that use us as a smarthost have to be excluded
+ from the relaying controls, as using us to relay mail for them is the
+ whole point.
+ .
+ If there are any, enter them here, separated by colons. You should use
+ the standard address/length format (e.g. 194.222.242.0/24)
+ .
+ You need to double the colons in IPv6 addresses (e.g.
+ 5f03::1200::836f::::/48)
+
+Template: exim4/dc_readhost
+Type: string
+_Description: Domain name for local users:
+ Since this is going to be a satellite system, you must specify the domain
+ name to use for mail from local users; typically this is the machine on
+ which you normally receive your mail.
+ .
+ Where will your users read their mail?
+
+Template: exim4/dc_smarthost
+Type: string
+_Description: Machine handling outgoing mail for this host (smarthost):
+ Enter the hostname of the machine to which outgoing mail is sent.
+ .
+ Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about
+ setting up SMTP authentication.
+
+Template: exim4/dc_postmaster
+Type: string
+_Description: Root and postmaster mail recipient:
+ Mail for the "postmaster" and "root" accounts is usually redirected to one
+ or more user accounts of the actual system administrators. The default
+ is to set things up so that mail for "postmaster" and for various system
+ accounts is redirected to "root", and mail for "root" is redirected to a
+ real user. This can be changed by editing /etc/aliases.
+ .
+ Note that postmaster-mail should usually be read on the system to which it is
+ directed, rather than being forwarded elsewhere, so (at least one of)
+ the users you choose should not redirect their mail off this machine.
+ .
+ System administrator mail goes to which user accounts? Enter one
+ or more usernames separated by spaces or commas. Enter "none" if you
+ do not want to redirect the mail. - NB this is strongly discouraged. Exim
+ cannot run deliveries as root and will save the mail to /var/mail/mail Also,
+ note that usernames should be lowercase!
+
+Template: exim4/dc_noalias_regenerate
+Type: boolean
+Default: false
+_Description: Overwrite existing /etc/aliases?
+ You already have an /etc/aliases file, but it does not redirect mail for
+ root to a user account, which is strongly recommended. If you accept
+ overwriting it, the old file will be kept and renamed to aliases.O.
+
+Template: exim4/dc_local_interfaces
+Type: string
+Default: notset
+_Description: IP-addresses to listen on for incoming SMTP connections:
+ Enter a colon-separated list of IP-addresses to listen on. You need to
+ double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::).
+ .
+ If you leave this value empty, Exim will listen for connections on the SMTP
+ port of all available network interfaces.
+ .
+ If this computer does not receive e-mail directly per SMTP from OTHER
+ hosts, but only from local services like fetchmail or your e-mail program
+ (MUA) talking to localhost you should prohibit external connections to
+ Exim by setting this option to 127.0.0.1 and therefore disabling listening
+ on public network interfaces.
+
+Template: exim4/dc_minimaldns
+Type: boolean
+Default: false
+_Description: Keep number of DNS-queries minimal (Dial-on-Demand)?
+ In normal mode of operation Exim makes DNS-lookups at startup, when
+ receiving or delivering message, etc. for logging purposes and to keep the
+ number of hard-coded values in the configuration file small.
+ .
+ If this were a host without permanent DNS-nameserver-access using
+ Dial-on-Demand this might have the unwanted consequence that starting up
+ exim or running the queue (even with no messages waiting) might trigger a
+ costly dial-up-event.
+ .
+ Enable this feature if you are using Dial-on-Demand; otherwise, disable it.
+
+Template: exim4/exim4-config-title
+Type: title
+_Description: Configuring Exim v4 (exim4-config)
+
+Template: exim4/use_split_config
+Type: boolean
+_Description: Split configuration into small files?
+ The Debian exim4 packages can either use a single monolithic file
+ (/etc/exim4/exim4.conf.template) or about 40 small files in
+ /etc/exim4/conf.d/ to generate the final configuration.
+ .
+ The former is better suited for large modifications and is generally
+ more stable, whereas the latter offers a comfortable way to make smaller
+ modifications but is more fragile and might break if modified
+ extensively.
+ .
+ If you are unsure then you should not use split configuration.
diff --git a/debian/exim4-daemon-custom.dirs b/debian/exim4-daemon-custom.dirs
new file mode 100644
index 0000000..45e1018
--- /dev/null
+++ b/debian/exim4-daemon-custom.dirs
@@ -0,0 +1,3 @@
+/usr/lib/exim4
+/usr/sbin
+/usr/share/man/man8
diff --git a/debian/exim4-daemon-custom.docs b/debian/exim4-daemon-custom.docs
new file mode 100644
index 0000000..7b63d7e
--- /dev/null
+++ b/debian/exim4-daemon-custom.docs
@@ -0,0 +1,2 @@
+EDITME.exim4-custom
+build-exim4-daemon-custom/exiscan-acl*.txt
diff --git a/debian/exim4-daemon-custom.links b/debian/exim4-daemon-custom.links
new file mode 100644
index 0000000..4cc91fc
--- /dev/null
+++ b/debian/exim4-daemon-custom.links
@@ -0,0 +1,16 @@
+usr/share/man/man8/exim.8.gz usr/share/man/man8/exim4.8.gz
+usr/sbin/exim4 usr/lib/exim4/exim4
+usr/sbin/exim4 usr/lib/sendmail
+usr/sbin/exim4 usr/sbin/sendmail
+usr/sbin/exim4 usr/sbin/runq
+usr/sbin/exim4 usr/sbin/rmail
+usr/sbin/exim4 usr/sbin/rsmtp
+usr/sbin/exim4 usr/bin/mailq
+usr/sbin/exim4 usr/bin/newaliases
+usr/share/man/man8/exim.8.gz usr/share/man/man8/sendmail.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/runq.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/rmail.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/rsmtp.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/mailq.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/newaliases.8.gz
+usr/share/doc/exim4-base/changelog.gz usr/share/doc/exim4-daemon-custom/changelog.gz
diff --git a/debian/exim4-daemon-heavy.NEWS b/debian/exim4-daemon-heavy.NEWS
new file mode 100644
index 0000000..2331255
--- /dev/null
+++ b/debian/exim4-daemon-heavy.NEWS
@@ -0,0 +1,7 @@
+exim4 (4.22-2) unstable; urgency=low
+
+ * Include exiscan-acl patch http://duncanthrax.net/exiscan-acl/ in
+ -heavy and -custom for easy integration of content-scanning and
+ invoking spamassassin at SMTP time.
+
+ -- Andreas Metzler <ametzler@debian.org> Wed, 27 Aug 2003 12:50:59 +0200
diff --git a/debian/exim4-daemon-heavy.dirs b/debian/exim4-daemon-heavy.dirs
new file mode 100644
index 0000000..1971556
--- /dev/null
+++ b/debian/exim4-daemon-heavy.dirs
@@ -0,0 +1,4 @@
+/usr/lib/exim4
+/usr/sbin
+/usr/share/man/man8
+/usr/lib/exim4/local_scan
diff --git a/debian/exim4-daemon-heavy.docs b/debian/exim4-daemon-heavy.docs
new file mode 100644
index 0000000..f585396
--- /dev/null
+++ b/debian/exim4-daemon-heavy.docs
@@ -0,0 +1,2 @@
+EDITME.exim4-heavy
+build-exim4-daemon-heavy/exiscan-acl*.txt
diff --git a/debian/exim4-daemon-heavy.links b/debian/exim4-daemon-heavy.links
new file mode 100644
index 0000000..4bc0920
--- /dev/null
+++ b/debian/exim4-daemon-heavy.links
@@ -0,0 +1,16 @@
+usr/share/man/man8/exim.8.gz usr/share/man/man8/exim4.8.gz
+usr/sbin/exim4 usr/lib/exim4/exim4
+usr/sbin/exim4 usr/lib/sendmail
+usr/sbin/exim4 usr/sbin/sendmail
+usr/sbin/exim4 usr/sbin/runq
+usr/sbin/exim4 usr/sbin/rmail
+usr/sbin/exim4 usr/sbin/rsmtp
+usr/sbin/exim4 usr/bin/mailq
+usr/sbin/exim4 usr/bin/newaliases
+usr/share/man/man8/exim.8.gz usr/share/man/man8/sendmail.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/runq.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/rmail.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/rsmtp.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/mailq.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/newaliases.8.gz
+usr/share/doc/exim4-base/changelog.gz usr/share/doc/exim4-daemon-heavy/changelog.gz
diff --git a/debian/exim4-daemon-light.dirs b/debian/exim4-daemon-light.dirs
new file mode 100644
index 0000000..45e1018
--- /dev/null
+++ b/debian/exim4-daemon-light.dirs
@@ -0,0 +1,3 @@
+/usr/lib/exim4
+/usr/sbin
+/usr/share/man/man8
diff --git a/debian/exim4-daemon-light.docs b/debian/exim4-daemon-light.docs
new file mode 100644
index 0000000..53db684
--- /dev/null
+++ b/debian/exim4-daemon-light.docs
@@ -0,0 +1 @@
+EDITME.exim4-light
diff --git a/debian/exim4-daemon-light.links b/debian/exim4-daemon-light.links
new file mode 100644
index 0000000..52bf604
--- /dev/null
+++ b/debian/exim4-daemon-light.links
@@ -0,0 +1,16 @@
+usr/share/man/man8/exim.8.gz usr/share/man/man8/exim4.8.gz
+usr/sbin/exim4 usr/lib/exim4/exim4
+usr/sbin/exim4 usr/lib/sendmail
+usr/sbin/exim4 usr/sbin/sendmail
+usr/sbin/exim4 usr/sbin/runq
+usr/sbin/exim4 usr/sbin/rmail
+usr/sbin/exim4 usr/sbin/rsmtp
+usr/sbin/exim4 usr/bin/mailq
+usr/sbin/exim4 usr/bin/newaliases
+usr/share/man/man8/exim.8.gz usr/share/man/man8/sendmail.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/runq.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/rmail.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/rsmtp.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/mailq.8.gz
+usr/share/man/man8/exim.8.gz usr/share/man/man8/newaliases.8.gz
+usr/share/doc/exim4-base/changelog.gz usr/share/doc/exim4-daemon-light/changelog.gz
diff --git a/debian/exim4-daemon-light.postinst b/debian/exim4-daemon-light.postinst
new file mode 100644
index 0000000..f2c5e9d
--- /dev/null
+++ b/debian/exim4-daemon-light.postinst
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+[ -n "$EX4DEBUG" ] && set -x
+
+case "$1" in
+ configure)
+
+ # needed for woody: "start" will fail on dpkg-reconfigure because
+ # daemon is already running.
+ # Afaik this has changed, dpkg-reconfigure from sid/sarge will call
+ # prerm on reconfigure.
+ # || true is needed for succesfull installation with configtype 'none'
+ if [ -x /etc/init.d/exim4 ]; then
+ if command -v invoke-rc.d >/dev/null 2>&1; then
+ invoke-rc.d exim4 start || invoke-rc.d exim4 reload || true
+ else
+ /etc/init.d/exim4 start || /etc/init.d/exim4 reload || true
+ fi
+ fi
+ db_stop
+
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4-daemon-light.prerm b/debian/exim4-daemon-light.prerm
new file mode 100644
index 0000000..c4dc9f7
--- /dev/null
+++ b/debian/exim4-daemon-light.prerm
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+set -e
+
+[ -n "$EX4DEBUG" ] && set -x
+
+case "$1" in
+ remove|upgrade)
+ if [ -x /etc/init.d/exim4 ]; then
+ if command -v invoke-rc.d >/dev/null 2>&1; then
+ invoke-rc.d exim4 stop
+ else
+ /etc/init.d/exim4 stop
+ fi
+ fi
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/exim4.links b/debian/exim4.links
new file mode 100644
index 0000000..9602836
--- /dev/null
+++ b/debian/exim4.links
@@ -0,0 +1 @@
+usr/share/doc/exim4-base usr/share/doc/exim4
diff --git a/debian/eximon4.dirs b/debian/eximon4.dirs
new file mode 100644
index 0000000..802fe2e
--- /dev/null
+++ b/debian/eximon4.dirs
@@ -0,0 +1,2 @@
+usr/sbin
+usr/lib/exim4
diff --git a/debian/eximon4.manpages b/debian/eximon4.manpages
new file mode 100644
index 0000000..4f0a832
--- /dev/null
+++ b/debian/eximon4.manpages
@@ -0,0 +1 @@
+debian/manpages/eximon.8
diff --git a/debian/eximon4.menu b/debian/eximon4.menu
new file mode 100644
index 0000000..6a39eca
--- /dev/null
+++ b/debian/eximon4.menu
@@ -0,0 +1,2 @@
+?package(eximon4):needs="X11" section="Apps/System/Admin"\
+ title="eximon" command="/usr/sbin/eximon"
diff --git a/debian/eximonconf-patch b/debian/eximonconf-patch
new file mode 100644
index 0000000..2b00af7
--- /dev/null
+++ b/debian/eximonconf-patch
@@ -0,0 +1,7 @@
+--- exim_monitor/EDITME 2002-07-22 09:59:52.000000000 +0100
++++ config-eximon 2002-09-03 11:51:20.000000000 +0100
+@@ -1,3 +1,4 @@
++# -*- makefile -*-
+ ##################################################
+ # The Exim Monitor #
+ ##################################################
diff --git a/debian/ip-up.d b/debian/ip-up.d
new file mode 100644
index 0000000..4ad65a9
--- /dev/null
+++ b/debian/ip-up.d
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+[ -n "$EX4DEBUG" ] && set -x
+
+[ -x /usr/lib/exim4/exim4 ] || exit 0
+
+[ -f /etc/default/exim4 ] && . /etc/default/exim4
+
+if [ "x${QUEUERUNNER}" != "xno" ] ; then
+# Flush exim queue
+ /usr/sbin/exim4 -qqf ${QUEUERUNNEROPTIONS} ${COMMONOPTIONS}
+fi
diff --git a/debian/manpages/exicyclog.8 b/debian/manpages/exicyclog.8
new file mode 100644
index 0000000..9d40f5c
--- /dev/null
+++ b/debian/manpages/exicyclog.8
@@ -0,0 +1,69 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXICYCLOG 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exicyclog \- Cycle exim's logfiles
+.SH SYNOPSIS
+.B eximcyclog
+.SH DESCRIPTION
+The
+.B exicyclog
+script can be used to cycle (rotate)
+.I mainlog
+and
+.I rejectlog
+files.
+This is not necessary if only syslog is being used.
+Some operating systems have their own standard mechanisms for log cycling,
+and these can be used instead of
+.B exicyclog
+if preferred.
+
+Each time
+.B exicyclog
+is run the file names get \(oqshuffled down\(cq by one.
+If the main log file name is mainlog (the default) then when
+.B exicyclog
+is run mainlog becomes mainlog.01, the previous mainlog.01 becomes mainlog.02
+and so on, up to a limit which is set in the script, and which defaults to 10.
+Reject logs are handled similarly.
+
+If no mainlog file exists, the script does nothing.
+Files that \(oqdrop off\(cq the end are deleted.
+All files with numbers greater than 01 are compressed, using a compression
+command which is configured by the COMPRESS_COMMAND setting in
+Local/Makefile.
+It is usual to run \(lqexicyclog\(rq daily from a root \(lqcrontab\(rq entry
+of the form
+
+ 1 0 * * * su exim \-c /usr/exim/bin/exicyclog
+
+assuming you have used the name \(oqexim\(cq for the Exim user.
+You can run
+.B exicyclog
+as root if you wish, but there is no need.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exigrep.8 b/debian/manpages/exigrep.8
new file mode 100644
index 0000000..f81a001
--- /dev/null
+++ b/debian/manpages/exigrep.8
@@ -0,0 +1,64 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIGREP 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+EXIGREP \- Search Exim's main log
+.SH SYNOPSIS
+.B exigrep
+.I [\-l] pattern [log file] ...
+
+.SH DESCRIPTION
+The
+.B exigrep
+utility is a Perl script that searches one or more main log files for
+entries that match a given pattern.
+When it finds a match, it extracts all the log entries for the relevant
+message, not just those that match the pattern.
+Thus,
+.B exigrep
+can extract complete log entries for a given message, or all mail for a given
+user, or for a given host, for example.
+
+The
+.I \-l
+flag means \(oqliteral\(cq, that is, treat all characters in the pattern as
+standing for themselves.
+Otherwise the pattern must be a Perl regular expression.
+The pattern match is case-insensitive.
+If no file names are given on the command line, the standard input is
+read.
+
+If the location of a
+.B zcat
+command is known from the definition of ZCAT_COMMAND in Local/Makefile,
+.B exigrep
+automatically passes any file whose
+name ends in COMPRESS_SUFFIX through
+.B zcat
+as it searches it.
+.SH SEE ALSO
+.BR exim (8),
+.BR perlre (1),
+/usr/share/doc/exim4\-base/
+
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exim_checkaccess.8 b/debian/manpages/exim_checkaccess.8
new file mode 100644
index 0000000..8a811c1
--- /dev/null
+++ b/debian/manpages/exim_checkaccess.8
@@ -0,0 +1,75 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIM_CHECKACCESS 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exim_checkaccess \- Check address acceptance from given IP
+.SH SYNOPSIS
+.B exim_checkaccess
+.I IP-address email@address [more Exim options]
+
+.SH DESCRIPTION
+.B Exim's
+.I \-bh
+command line argument allows you to run a fake SMTP session with debugging
+output, in order to check what Exim is doing when it is applying policy
+controls to incoming SMTP mail.
+However, not everybody is sufficiently familiar with the SMTP protocol to
+be able to make full use of \-bh, and sometimes you just want to answer the
+question \(lqDoes this address have access?\(rq without bothering with any
+further details.
+
+The
+.B exim_checkaccess
+utility is a \(oqpackaged\(cq version of
+.I \-bh.
+It takes two arguments, an IP address and an email address:
+
+ exim_checkaccess 10.9.8.7 A.User@a.domain.example
+
+The utility runs a call to
+.B Exim
+with the \-bh option, to test whether the given email address would be
+accepted in a RCPT command in a TCP/IP connection from the host with the
+given IP address.
+The output of the utility is either the word \(oqaccepted\(cq, or the SMTP error
+response, for example:
+
+ Rejected:
+ 550 Relay not permitted
+
+When running this test, the utility uses \(lq<>\(rq as the envelope sender
+address for the MAIL command, but you can change this by providing additional
+options. These are passed directly to the Exim command.
+For example, to specify that the test is to be run with the sender address
+\(lqhimself@there.example\(rq you can use:
+
+ exim_checkaccess 10.9.8.7 A.User@a.domain.example \\
+ \-f himself@there.example
+
+Note that these additional Exim command line items must be given after the
+two mandatory arguments.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exim_convert4r4.8 b/debian/manpages/exim_convert4r4.8
new file mode 100644
index 0000000..cab9e07
--- /dev/null
+++ b/debian/manpages/exim_convert4r4.8
@@ -0,0 +1,68 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIM_CONVERT4R4 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exim_convert4r4 \- Convert Exim configuration from v3 to v4 format
+.SH SYNOPSIS
+.B exim_convert4r4
+
+.SH DESCRIPTION
+This script is provided to assist in updating Exim configuration files.
+It reads an Exim 3 configuration file on the standard input, and writes a
+modified file on the standard output.
+It also writes comments about what it has done to the standard error file.
+It assumes that the input is a valid Exim 3 configuration file.
+A typical call to the conversion script might be
+
+.I exim_convert4r4 < /etc/exim/exim.conf > /etc/exim4/exim4.conf.new
+
+The output file
+.B MUST
+be checked and tested before trying to use it on a live system.
+The conversion script is just an aid which does a lot of the \(lqgrunt
+work\(rq.
+It does not guarantee to produce an Exim 4 configuration that behaves
+exactly the same as the Exim 3 configuration it reads.
+
+Each option change in the new file is preceded by an identifying comment.
+In fact, the conversion script tends to make quite a mess of your
+configuration, and you should expect to go through it afterwards and tidy
+it up by hand.
+
+Unless you are running a very straightforward configuration, the automatic
+conversion is likely to generate a non-optimal configuration.
+You should not only check it thoroughly, but also run as many tests as you
+can, to ensure that it is working as you expect.
+In particular, you should test address routing, using \-bt and \-bv, and the
+policy controls, using \-bh.
+If possible, you should also do some live tests (i.e. send and receive
+some messages) before putting Exim 4 into service.
+
+If you have a very complicated configuration, it is possible that
+exim_convert4r4 will break it in some situations, which is why thorough
+testing is strongly recommended.
+
+.SH SEE ALSO
+.BR exim (8),
+the files in /usr/share/doc/exim4\-base/, especially Exim4.upgrade.gz
+
+.SH AUTHOR
+This manual page was stitched together from Exim4.upgrade by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exim_db.8 b/debian/manpages/exim_db.8
new file mode 100644
index 0000000..625e4a4
--- /dev/null
+++ b/debian/manpages/exim_db.8
@@ -0,0 +1,164 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIM_DB 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exim_db \- Manage Exim's hint databases (exim_dumpdb, exim_fixdb, exim_tidydb)
+.SH SYNOPSIS
+.B exim_dumpdb
+.I spooldir database
+.br
+.B exim_fixdb
+.I spooldir database
+.br
+.B exim_tidydb
+.I [\-f] [\-t time] spooldir database
+
+.SH DESCRIPTION
+Three utility programs are provided for maintaining the DBM files that
+Exim uses to contain its delivery hint information.
+Each program requires two arguments.
+The first specifies the name of Exim's spool directory, and the second is
+the name of the database it is to operate on.
+These are as follows:
+.TP
+.B retry
+the database of retry information
+.TP
+.B wait\-<transport name>
+databases of information about messages waiting for remote hosts
+.TP
+.B misc
+other hints data (for example, for serializing ETRN runs)
+
+The entire contents of a database are written to the standard output by the
+.B exim_dumpdb
+program, which has no options or arguments other than the spool
+and database names.
+For example, to dump the retry database:
+
+.I exim_dumpdb /var/spool/exim retry
+
+Two lines of output are produced for each entry:
+.nf
+ T:mail.ref.example:192.168.242.242 146 77 Connection refused
+ 31-Oct-1995 12:00:12 02-Nov-1995 12:21:39 02-Nov-1995 20:21:39 *
+
+.fi
+The first item on the first line is the key of the record.
+It starts with one of the letters R, or T, depending on whether it refers
+to a routing or transport retry.
+For a local delivery, the next part is the local address; for a remote
+delivery it is the name of the remote host, followed by its failing IP
+address (unless \(lqno_retry_include_ip_address\(rq is set on the smtp
+transport).
+Then there follows an error code, an additional error code, and a
+textual description of the error.
+
+The three times on the second line are the time of first failure, the time of
+the last delivery attempt, and the computed time for the next attempt.
+The line ends with an asterisk if the cutoff time for the last retry rule
+has been exceeded.
+
+Each output line from
+.B exim_dumpdb
+for the
+.I wait\-xxx
+databases consists of a host name followed by a list of ids for messages
+that are or were waiting to be delivered to that host.
+If there are a very large number for any one host, continuation records,
+with a sequence number added to the host name, may be seen.
+The data in these records is often out of date, because a message may be
+routed to several alternative hosts, and Exim makes no effort to keep
+crossreferences.
+
+The
+.B exim_tidydb
+utility program is used to tidy up the contents of the hints databases.
+If run with no options, it removes all records from a database that are
+more than 30 days old.
+The cutoff date can be altered by means of the \-t option, which must be
+followed by a time.
+For example, to remove all records older than a week from the retry
+database:
+
+.I exim_tidydb \-t 7d /var/spool/exim retry
+
+Both the
+.I wait\-xxx
+and
+.I retry
+databases contain items that involve message ids.
+In the former these appear as data in records keyed by host - they were
+messages that were waiting for that host - and in the latter they are the
+keys for retry information for messages that have suffered certain types
+of error.
+When \(lqexim_tidydb\(rq is run, a check is made to ensure that message ids in
+database records are those of messages that are still on the queue.
+Message ids for messages that no longer exist are removed from \(lqwait\-\(rqxxx
+records, and if this leaves any records empty, they are deleted.
+For the \(lqretry\(rq database, records whose keys are non-existent message
+ids are removed.
+The
+.B exim_tidydb
+utility outputs comments on the standard output whenever it removes
+information from the database.
+
+Removing records from a DBM file does not normally make the file smaller, but
+all the common DBM libraries are able to re-use the space that is released.
+It is therefore suggested that
+.B exim_tidydb
+be run periodically on all the hints databases, but at a quiet time of day,
+because it requires a database to be locked (and therefore inaccessible to
+Exim) while it does its work.
+
+The
+.B exim_fixdb
+program is a utility for interactively modifying databases.
+Its main use is for testing Exim, but it might also be occasionally useful
+for getting round problems in a live system.
+It has no options, and its interface is somewhat crude.
+On entry, it prompts for input with a right angle-bracket.
+A key of a database record can then be entered, and the data for that
+record is displayed.
+
+If \(oqd\(cq is typed at the next prompt, the entire record is deleted.
+For all except the
+.I retry
+database, that is the only operation that can be carried out.
+For the
+.I retry
+database, each field is output preceded by a number, and data for individual
+fields can be changed by typing the field number followed by new data, for
+example:
+
+ > 4 951102:1000
+
+resets the time of the next delivery attempt.
+Time values are given as a sequence of digit pairs for year, month, day,
+hour, and minute.
+Colons can be used as optional separators.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exim_dbmbuild.8 b/debian/manpages/exim_dbmbuild.8
new file mode 100644
index 0000000..e4d34ca
--- /dev/null
+++ b/debian/manpages/exim_dbmbuild.8
@@ -0,0 +1,100 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIM_DBMBUILD 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exim_dbmbuild \- Build a DBM file.
+.SH SYNOPSIS
+.B exim_dbmbuild
+.I [\-nolc] [\-nozero] [\-noduperr] [\-nowarn] inputfile|\- outputfile
+
+.SH DESCRIPTION
+The
+.B exim_dbmbuild
+program reads an input file containing keys and data in
+the format used by the
+.I lsearch
+lookup (see section 9.1).
+It writes a DBM file using the lower-cased alias names as keys and the
+remainder of the information as data.
+The lower-casing can be prevented by calling the program with the
+.I \-nolc
+option.
+
+A terminating zero is included as part of the key string.
+This is expected by the dbm lookup type.
+However, if the option
+.I \-nozero
+is given,
+.B exim_dbmbuild
+creates files without terminating zeroes in either the key strings or the
+data strings.
+The
+.I dbmnz
+lookup type can be used with such files.
+
+The program requires two arguments: the name of the input file (which can
+be a single hyphen to indicate the standard input), and the name of the
+output file.
+It creates the output under a temporary name, and then renames it if all
+went well.
+If the native DB interface is in use (USE_DB is set in a compile-time
+configuration file - this is common in free versions of Unix) the two file
+names must be different, because in this mode the Berkeley DB functions
+create a single output file using exactly the name given.
+For example,
+
+ exim_dbmbuild /etc/aliases /etc/aliases.db
+
+reads the system alias file and creates a DBM version of it in
+/etc/aliases.db.
+
+In systems that use the
+.I ndbm
+routines (mostly proprietary versions of Unix), two files are used, with the
+suffixes .dir and .pag.
+In this environment, the suffixes are added to the second argument of
+.B exim_dbmbuild,
+so it can be the same as the first.
+This is also the case when the Berkeley functions are used in
+compatibility mode (though this is not recommended), because in that case
+it adds a .db suffix to the file name.
+
+If a duplicate key is encountered, the program outputs a warning, and when
+it finishes, its return code is 1 rather than zero, unless the
+.I \-noduperr
+option is used.
+By default, only the first of a set of duplicates is used - this makes it
+compatible with lsearch lookups.
+There is an option
+.I \-lastdup
+which causes it to use the data for the last duplicate instead.
+There is also an option
+.I \-nowarn,
+which stops it listing duplicate keys to \(lqstderr\(rq.
+For other errors, where it doesn't actually make a new file, the return
+code is 2.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exim_lock.8 b/debian/manpages/exim_lock.8
new file mode 100644
index 0000000..5e8ccf6
--- /dev/null
+++ b/debian/manpages/exim_lock.8
@@ -0,0 +1,132 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIM_LOCK 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exim_lock \- Mailbox maintenance
+.SH SYNOPSIS
+.B exim_lock
+.RI [ options ] mailbox-file
+
+.SH DESCRIPTION
+The
+.B exim_lock
+utility locks a mailbox file using the same algorithm as Exim.
+For a discussion of locking issues, see section 25.2.
+.B exim_lock
+can be used to prevent any modification of a mailbox by Exim or a user
+agent while investigating a problem.
+The utility requires the name of the file as its first argument.
+If the locking is successful, the second argument is run as a command
+(using C's \(lqsystem()\(rq function); if there is no second argument, the value
+of the SHELL environment variable is used; if this is unset or empty,
+/bin/sh is run.
+When the command finishes, the mailbox is unlocked and the utility ends.
+The following options are available:
+.TP
+.I \-fcntl
+Use \(lqfcntl()\(rq locking on the open mailbox.
+.TP
+.I \-interval
+This must be followed by a number, which is a number of seconds; it
+sets the interval to sleep between retries (default 3).
+.TP
+.I \-lockfile
+Create a lock file before opening the mailbox.
+.TP
+.I \-mbx
+Lock the mailbox using MBX rules.
+.TP
+.I \-q
+Suppress verification output.
+.TP
+.I \-retries
+This must be followed by a number; it sets the number of times to try
+to get the lock (default 10).
+.TP
+.I \-timeout
+This must be followed by a number, which is a number of seconds; it
+sets a timeout to be used with a blocking \(lqfcntl()\(rq lock.
+If it is not set (the default), a non-blocking call is used.
+.TP
+.I \-v
+Generate verbose output.
+
+If none of
+.I \-fcntl, \-lockfile
+or
+.I \-mbx
+are given, the default is to create a lock file and also use \(lqfcntl()\(rq locking
+on the mailbox, which is the same as
+.B Exim's
+default.
+The use of
+.I \-fcntl
+requires that the file be writeable; the use
+of
+.I \-lockfile
+requires that the directory containing the file be writeable.
+Locking by lock file does not last for ever; Exim assumes that a lock file
+is expired if it is more than 30 minutes old.
+
+The
+.I \-mbx
+option is mutually exclusive with
+.I \-fcntl.
+It causes a shared lock to be taken out on the open mailbox, and an
+exclusive lock on the file /tmp/.n.m where n and m are the device number
+and inode number of the mailbox file.
+When the locking is released, if an exclusive lock can be obtained for the
+mailbox, the file in /tmp is deleted.
+
+The default output contains verification of the locking that takes place.
+The
+.I \-v
+option causes some additional information to be given.
+The
+.I \-q
+option suppresses all output except error messages.
+.PP
+A command such as
+
+ exim_lock /var/spool/mail/spqr
+
+runs an interactive shell while the file is locked, whereas
+
+ exim_lock \-q /var/spool/mail/spqr <<End
+ <some commands>
+ End
+
+runs a specific non-interactive sequence of commands while the file is
+locked, suppressing all verification output.
+A single command can be run by a command such as
+
+ exim_lock \-q /var/spool/mail/spqr \
+ "cp /var/spool/mail/spqr /some/where"
+
+Note that if a command is supplied, it must be entirely contained within
+the second argument - hence the quotes.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/eximon.8 b/debian/manpages/eximon.8
new file mode 100644
index 0000000..5bb0810
--- /dev/null
+++ b/debian/manpages/eximon.8
@@ -0,0 +1,45 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIMON 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+eximon \- Monitor Exim
+.SH SYNOPSIS
+.B eximon
+
+.SH DESCRIPTION
+The Exim monitor is an application which displays in an X window information
+about the state of
+.B Exim's
+queue and what
+.B Exim is doing.
+An admin user can perform certain operations on messages from this GUI
+interface; however all such facilities are also available from the command
+line, and indeed, the monitor itself makes use of the command line to
+perform any actions requested.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+Eximon is documented extensivly in
+.B specification of the exim mail transfer agent.
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exinext.8 b/debian/manpages/exinext.8
new file mode 100644
index 0000000..9d757b0
--- /dev/null
+++ b/debian/manpages/exinext.8
@@ -0,0 +1,68 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXINEXT 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+eximnext \- Finding individual retry times
+.SH SYNOPSIS
+.B eximnext
+.I address|message-id
+
+.SH DESCRIPTION
+A utility called
+.B exinext
+(mostly a Perl script) provides the ability to fish specific information
+out of the retry database.
+Given a mail domain (or a complete address), it looks up the hosts for
+that domain, and outputs any retry information for the hosts or for the
+domain.
+At present, the retry information is obtained by running
+.B exim_dumpdb
+(see below) and postprocessing the output.
+For example:
+
+ exinext piglet@milne.fict.example
+ kanga.milne.fict.example:192.168.8.1 error 146: Connection refused
+ first failed: 21-Feb-1996 14:57:34
+ last tried: 21-Feb-1996 14:57:34
+ next try at: 21-Feb-1996 15:02:34
+ roo.milne.fict.example:192.168.8.3 error 146: Connection refused
+ first failed: 20-Jan-1996 13:12:08
+ last tried: 21-Feb-1996 11:42:03
+ next try at: 21-Feb-1996 19:42:03
+ past final cutoff time
+
+You can also give
+.B exinext
+a local part, without a domain, and it will give any retry information for
+that local part in your default domain.
+A message id can be used to obtain retry information pertaining to a
+specific message.
+This exists only when an attempt to deliver a message to a remote host
+suffers a message-specific error (see section 42.2).
+.B exinext
+is not particularly efficient, but then it isn't expected to be run very often.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exiqgrep.8 b/debian/manpages/exiqgrep.8
new file mode 100644
index 0000000..23084b3
--- /dev/null
+++ b/debian/manpages/exiqgrep.8
@@ -0,0 +1,83 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIQGREP 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exiqgrep \- Search in the exim queue
+.SH SYNOPSIS
+.B exiqgrep
+.I [\-a] [\-c]
+
+.SH DESCRIPTION
+The
+.B exiqgrep
+utility is a Perl script which offers possibilities to grep in the
+exim queue output. Unlike exiqsumm, it invokes exim \-bpu itself and
+does not need to be invoked in a pipe.
+
+.SH OPTIONS
+.TP 10
+\fB\-h\fR
+Print help
+.TP
+\fB\-f <regexp>\fR
+Match sender address (field is \(lq< >\(rq wrapped)
+.TP
+\fB\-r <regexp>\fR
+Match recipient address
+.TP
+\fB\-s <regexp>\fR
+Match against the site field from long output
+.TP
+\fB\-y <seconds>\fR
+Message younger than
+.TP
+\fB\-o <seconds>\fR
+Message older than
+.TP
+\fB\-z\fR
+Frozen messages only (exclude non-frozen)
+.TP
+\fB\-x\fR
+Non-frozen messages only (exclude frozen)
+.TP
+\fB\-c\fR
+Display match count
+.TP
+\fB\-l\fR
+Long Format [Default]
+.TP
+\fB\-i\fR
+Message IDs only
+.TP
+\fB\-b\fR
+Brief Format
+.TP
+\fB\-R\fR
+Reverse order
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from the source code by Marc
+Haber <mh+debian\-packages@zugschlus.de>, using the exiqsumm man page by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
+
diff --git a/debian/manpages/exiqsumm.8 b/debian/manpages/exiqsumm.8
new file mode 100644
index 0000000..0ed77ec
--- /dev/null
+++ b/debian/manpages/exiqsumm.8
@@ -0,0 +1,69 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIQSUMM 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+exiqsumm \- Summarising the queue
+.SH SYNOPSIS
+.B exiqsumm
+.I [\-a] [\-c]
+
+.SH DESCRIPTION
+The
+.B exiqsumm
+utility is a Perl script which reads the output of
+.I exim \-bp
+and produces a summary of the messages on the queue.
+Thus, you use it by running a command such as
+
+ exim \-bp | exiqsumm
+
+The output consists of one line for each domain that has messages waiting
+for it, as in the following example:
+
+ 3 2322 74m 66m msn.com.example
+
+This lists the number of messages for the domain, their total volume, and
+the length of time that the oldest and the newest messages have been
+waiting.
+By default the output is sorted on the domain name, but
+.B exiqsumm
+has the options
+.I \-a
+and
+.I \-c,
+which cause the output to be sorted by oldest message and by count of
+messages, respectively.
+
+The output of
+.I exim \-bp
+contains the original addresses in the message, so this also applies to
+the output from
+.B exiqsumm.
+No domains from addresses generated by aliasing or forwarding are included
+(unless the \(lqone_time\(rq option of the redirect router has been used to
+convert them into \(oqtop level\(cq addresses).
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/exiwhat.8 b/debian/manpages/exiwhat.8
new file mode 100644
index 0000000..c70c2fe
--- /dev/null
+++ b/debian/manpages/exiwhat.8
@@ -0,0 +1,97 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH EXIWHAT 8 "March 26, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+eximwhat \- Finding out what Exim processes are doing
+.SH SYNOPSIS
+.B eximwhat
+
+.SH DESCRIPTION
+On operating systems that can restart a system call after receiving a
+signal (most modern OS), an
+.B Exim
+process responds to the SIGUSR1 signal by writing a line describing what
+it is doing to the file exim-process.info in the Exim spool directory.
+The
+.B exiwhat
+script sends the signal to all
+.B Exim
+processes it can find, having first emptied the file.
+It then waits for one second to allow the
+.B Exim
+processes to react before displaying the results.
+In order to run
+.B exiwhat
+successfully you have to have sufficient privilege to send the signal to
+the
+.B Exim
+processes, so it is normally run as root.
+
+Unfortunately, the
+.B ps
+command which
+.B exiwhat
+uses to find
+.B Exim
+processes varies in different operating systems.
+Not only are different options used, but the format of the output is
+different.
+For this reason, there are some system configuration options that configure
+exactly how
+.B exiwhat
+works.
+If it doesn't seem to be working for you, check the following compile-time
+options:
+.TP
+.I EXIWHAT_PS_CMD
+the command for running \(lqps\(rq
+.TP
+.I EXIWHAT_PS_ARG
+the argument for \(lqps\(rq
+.TP
+.I EXIWHAT_EGREP_ARG
+the argument for \(lqegrep\(rq to select from \(lqps\(rq output
+.TP
+.I EXIWHAT_KILL_ARG
+the argument for the \(lqkill\(rq command
+.PP
+An example of typical output from
+.B exiwhat
+is
+
+.nf
+ 164 daemon: -q1h, listening on port 25
+10483 running queue: waiting for 0tAycK-0002ij-00 (10492)
+10492 delivering 0tAycK-0002ij-00 to mail.ref.example [10.19.42.42]
+ (editor@ref.example)
+10592 handling incoming call from [192.168.243.242]
+10628 accepting a local non-SMTP message
+.fi
+
+The first number in the output line is the process number.
+The third line has been split here, in order to fit it on the page.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+This manual page was stitched together from spec.txt by
+Andreas Metzler <ametzler at downhill.at.eu.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/debian/manpages/update-exim4.conf.8 b/debian/manpages/update-exim4.conf.8
new file mode 100644
index 0000000..c8c6319
--- /dev/null
+++ b/debian/manpages/update-exim4.conf.8
@@ -0,0 +1,181 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH UPDATE-EXIM4.CONF 8 "January 11, 2004" EXIM4
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+update\-exim4.conf \- Generate exim4 configuration files.
+.SH SYNOPSIS
+.B update\-exim4.conf [\-v|\-\-verbose] [\-h|\-\-help] [\-\-keepcomments] [\-\-removecomments] [\-o|\-\-output file]
+
+.SH OPTIONS
+.TP
+.I \-v|\-\-verbose
+Enable verbose mode, tell about ignored, user modified files
+.TP
+.I \-h|\-\-help
+Show short help message and exit
+.TP
+.I \-\-keepcomments
+Do not remove comment lines from the output file.
+.TP
+.I \-\-removecomments
+Remove comment lines from the output file. [Default]
+.TP
+.I \-o|\-\-output file
+Write output to file instead of /var/lib/exim4/config.autogenerated.
+.TP
+.I \-d|\-\-confdir directory
+Read input from directory instead of /etc/exim4.
+
+.SH DESCRIPTION
+The script
+.B update\-exim4.conf
+generates the main configuration files
+.I /var/lib/exim4/config.autogenerated
+for
+.B Exim v4
+by merging the data in the template file
+.I /etc/exim4/exim4.conf.template
+or the ones in the
+.I /etc/exim4/conf.d
+directory tree respectively and
+.I /etc/exim4/update\-exim4.conf.conf
+to the output file
+.I /var/lib/exim4/config.autogenerated.
+.PP
+Depending on the setting of dc_use_split_config in
+/etc/exim4/update\-exim4.conf.conf
+.B update\-exim4.conf
+either sorts the files in the subdirectories main, acl, router, transport,
+retry, rewrite and auth of /etc/exim4/conf.d in the lexical sort order,
+concatenates them and replaces the patterns DEBCONFsomethingDEBCONF or only
+replaces the patterns DEBCONFsomethingDEBCONF listed in
+/etc/exim4/exim4.conf.template.
+It does not change the other contents of these files.
+This makes it very simple to make small changes to the configuration and
+still have the benefits of debconf.
+
+On the other hand if you don't want to manage exim4.conf with debconf
+install your own handcrafted version as /etc/exim4/exim4.conf.
+- Exim will use this file if it exists and ignore the autogenerated one.
+Additionally you might want to set
+.I dc_eximconfig_configtype=none
+in /etc/exim4/update\-exim4.conf.conf to stop debconf from asking you questions about exim4.
+
+.B update\-exim4.conf
+exits silently and does nothing if /etc/exim4/exim4.conf exists and -o
+was not used to direct the output to a different file than
+/var/lib/exim4/config.autogenerated.
+
+.B update\-exim4.conf
+ignores all files in the conf.d directory that have a filename which
+does not consist only of letters, numbers, underscores and hyphens
+([:alnum:]_\-), similar to
+.B run\-parts(8).
+For easy interaction with packages extending Exim additionally
+/etc/exim4/conf.d/foo/bar.rul is used instead of
+/etc/exim4/conf.d/foo/bar if it exists!
+
+If
+.B update\-exim4.conf
+is called without the option \-o it checks the validity of the
+freshly generated configurationfile and exits with an error instead
+of installing the file to /var/lib/exim4/config.autogenerated.
+
+.SH EXAMPLES
+You want to be able to check exim's queue as normal user: Generate a new
+file, e.g. /etc/exim4/conf.d/main/40_local_mailq, containing only the line
+.I queue_list_requires_admin = false
+
+.SH NOTES
+.B update\-exim4.conf
+changes the file permissions of the output file to the value of the environment
+variable CFILEMODE, if CFILEMODE is set neither in
+/etc/exim4/update\-exim4.conf.conf nor in the environment it defaults to 0644.
+Change this to 0640 if you're keeping sensible information (LDAP credentials
+et. al.) in there.
+
+.SH FILES
+.B update\-exim4.conf
+manages these files:
+.TP
+.I /var/lib/exim4/config.autogenerated
+Exim's main configuration file
+
+.SH REPLACEMENT PATTERNS
+.B update\-exim4.conf
+know about these identifiers:
+.TP
+.I DEBCONFrelay_domainsDEBCONF
+is replaced by the contents of dc_relay_domains in
+/etc/exim4/update\-exim4.conf.conf
+.TP
+.I DEBCONFrelay_netsDEBCONF
+is replaced by the contents of dc_relay_nets in
+/etc/exim4/update\-exim4.conf.conf
+.TP
+.I DEBCONFvisiblenameDEBCONF
+holds the contents of (the first line of) /etc/mailname
+.TP
+.I DEBCONFreadhostDEBCONF
+corresponds to dc_readhost in /etc/exim4/update\-exim4.conf.conf and holds
+the visible mailname for satellite\-systems.
+.TP
+.I DEBCONFsmarthostDEBCONF
+corresponds to dc_smarthost in /etc/exim4/update\-exim4.conf.conf and
+contains the name of the SMTP smarthost that takes care of outgoing mail.
+.TP
+.I DEBCONFconfigtypeDEBCONF
+dc_eximconfig_configtype in /etc/exim4/update\-exim4.conf.conf.
+.TP
+.I DEBCONFpackageversionDEBCONF
+contains the complete Debian version-number of the exim4-config package, you
+could use this in smtp_banner or received_header_text.
+.TP
+.I DEBCONFlistenonpublicDEBCONF
+If dc_local_interfaces is set to nonempty value this is replaced with
+\(lqlocal_interfaces = <value of dc_local_interfaces>\(rq
+and a empty string otherwise.
+.TP
+.I DEBCONFminimaldnsDEBCONF
+is replaced with \(lqDC_minimaldns = 1\(rq if dc_minimaldns is set to true
+and to an empty string otherwise.
+.TP
+.I DEBCONFnever_usersDEBCONF
+is deleted. (In versions prior 4.30-7 it was used to set the never_users
+option.)
+
+.SH RECOMMENDED USAGE
+If you are running exim as daemon (that is the default setup of the Debian
+packages) you should not invoke
+.B update\-exim4.conf
+directly when exim is running, because the forked processes exim starts
+for SMTP receiving or queue running would use the new configuration file,
+while the original main exim-daemon would still use the old configuration
+file. You should use
+.I invoke\-rc.d exim4 reload
+instead.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/ and for general notes and details about interaction
+with debconf
+/usr/share/doc/exim4\-base/README.Debian.gz
+
+.SH AUTHOR
+Andreas Metzler <ametzler at downhill.at.eu.org>
diff --git a/debian/manpages/update-exim4defaults.8 b/debian/manpages/update-exim4defaults.8
new file mode 100644
index 0000000..9eeee04
--- /dev/null
+++ b/debian/manpages/update-exim4defaults.8
@@ -0,0 +1,167 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH UPDATE-EXIM4DEFAULTS 8 "March 26, 2003" EXIM4
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.\" \(oqthis text is enclosed in single quotes\(cq
+.\" \(lqthis text is enclosed in double quotes\(rq
+.SH NAME
+update\-exim4defaults \- Manage exim4 daemon default file.
+.SH SYNOPSIS
+.B update\-exim4defaults
+.I [ \-\-qflags flags ]
+.I [ \-\-queuerunner combined|queueonly|separate|ppp|no|nodaemon ]
+.I [ \-\-queuetime time ]
+.I [ \-\-commonoptions options ]
+.I [ \-\-queuerunneroptions options ]
+.I [ \-\-smtplisteneroptions options ]
+.I [ \-\-remove\-common options ]
+.I [ \-\-remove\-queue options ]
+.I [ \-\-remove\-smtp options ]
+.I [ \-\-force|\-f ]
+.I [ \-\-help|\-h ]
+.I [ \-\-init ]
+
+.SH DESCRIPTION
+.B update\-exim4defaults
+allows to set run parameters for the
+.B Exim
+daemon in
+.I /etc/default/exim4.
+Its main purpose is for interaction with packages enhancing
+.B Exim
+like virus-scanners that need to change the way the exim daemon is started.
+.PP
+
+.SH OPTIONS
+.TP
+.I \-\-help|\-h
+Print short usage instructions and exit.
+.TP
+.I \-\-qflags flags
+Set qflags, special flags given to exim directly after the \(lq\-q\(rq. See
+.B exim(8)
+for more information.
+.TP
+.I \-\-queuerunner combined|queueonly|separate|ppp|no|nodaemon
+Should the init script start one daemon that listens on the smtp port for
+incoming connections and runs the queue at regular intervals
+.I (combined)
+, or should it start two separate daemons, one listening on the smtp port,
+the other running the queue
+.I (separate)
+, or should the queue only be run by /etc/ppp/ip\-up.d/exim4
+.I (ppp)
+, or shouldn't we run the queue at all, for example if you'd rather do this
+with
+.B cron
+? Or should we only start a queuerunner
+.I (queueonly)
+or no daemon at all
+.I (nodaemon)
+?
+.TP
+.I \-\-queuetime time
+In which intervals should we run the queue? This passed as option
+.I \-q<qflags>time
+to Exim, e.g. \-q30m or \-qq1h.
+.TP
+.I \-\-commonoptions options
+Options passed both to queue\-running and listening instances of Exim.
+.TP
+.I \-\-queuerunneroptions options
+Options only passed to the instance of Exim running the queue.
+.TP
+.I \-\-smtplisteneroptions options
+Options only passed to the instance of Exim listening on the SMTP port.
+.TP
+.I \-\-force|\-f
+Without this option
+.B update\-exim4defaults
+exits with an error if at least one of the options \-\-queuetime,
+\-\-commonoptions, \-\-queuerunneroptions or \-\-smtplisteneroptions is used and the
+corresponding value in /etc/default/exim4 is
+.I already
+set to a nonempty value.
+.TP
+.I \-\-remove\-common option
+Try to remove the given option from COMMONOPTIONS.
+.TP
+.I \-\-remove\-queue option
+Try to remove the given option from QUEUERUNNEROPTIONS.
+.TP
+.I \-\-remove\-smtp option
+Try to remove the given option from SMTPLISTENEROPTIONS.
+.PP
+The \-\-remove\-commands cannot be used at the same time as any of \-\-commonoptions,
+\-\-queuerunneroptions or \-\-smtplisteneroptions. The \-\-remove\-commands will
+additionally remove whitespace at the begining and the end of the option and
+exchange multiple spaces wi a single one.
+.TP
+.I \-\-init
+create a default /etc/default/exim4 file and exit immediately. Unless
+.I \-\-force
+was also specified
+.B update\-exim4defaults
+exits (successfully) without doing anything if /etc/default/exim4 already
+exists. All other options are ignored.
+
+.SH EXIT STATUS
+.TP
+.I 0
+change was successfull or nothing needed to be done.
+.TP
+.I 1
+generic error: wrong options, unreadable configuration file, etc.
+.TP
+.I 2
+QUEUEINTERVAL was already set.
+.TP
+.I 4
+COMMONOPTIONS was already set.
+.TP
+.I 8
+QUEUERUNNEROPTIONS was already set.
+.TP
+.I 16
+SMTPLISTENEROPTIONS was already set.
+.TP
+.I 32
+QFLAGS was already set.
+.TP
+.I 64
+\-\-remove\-something failed, i.e. the value of the option was not changed.
+.PP
+Exit codes 2 to 32 will be summed up, if more than one unsuccesful option was
+given.
+
+.SH FILES
+.TP
+.I /etc/default/exim4
+The configuration file.
+.TP
+.I /etc/init.d/exim4
+The Exim init\-script.
+.TP
+.I /etc/ppp/ip\-up.d/exim4
+The queuerunner in this file also uses COMMONOPTIONS and QUEUERUNNEROPTIONS and
+does not run if QUEUERUNNER=no.
+
+.SH SEE ALSO
+.BR exim (8),
+/usr/share/doc/exim4\-base/
+
+.SH AUTHOR
+Andreas Metzler <ametzler at downhill.at.eu.org>
diff --git a/debian/mtalist b/debian/mtalist
new file mode 100644
index 0000000..eae8858
--- /dev/null
+++ b/debian/mtalist
@@ -0,0 +1 @@
+courier-mta, masqmail, nullmailer, postfix, postfix-snap, sendmail, smail, ssmtp, zmailer, zmailer-ssl \ No newline at end of file
diff --git a/debian/passwd.client b/debian/passwd.client
new file mode 100644
index 0000000..8f2d6cc
--- /dev/null
+++ b/debian/passwd.client
@@ -0,0 +1,7 @@
+### CONFDIR/passwd.client
+#
+# Format:
+#targetmailserver.example:login:password
+#
+# default entry:
+### *:bar:foo
diff --git a/debian/patches/00list b/debian/patches/00list
new file mode 100644
index 0000000..0303bff
--- /dev/null
+++ b/debian/patches/00list
@@ -0,0 +1,11 @@
+10_daemon_close_fds
+30_dontoverridecflags
+31_eximmanpage
+32_exim4
+33_eximon.binary
+34_eximstatsmanpage
+35_install
+36_pcre
+40_boolean_redefine_protect
+50_localscan_dlopen
+60_gnutls10
diff --git a/debian/patches/10_daemon_close_fds.dpatch b/debian/patches/10_daemon_close_fds.dpatch
new file mode 100644
index 0000000..3da77b6
--- /dev/null
+++ b/debian/patches/10_daemon_close_fds.dpatch
@@ -0,0 +1,47 @@
+#! /bin/sh -e
+## 10_daemon_close_fds.dpatch by Steve Haslam <araqnid@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Close FDs 0-254 when going into background
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch --dry-run -p0 < $0 && patch -f --no-backup-if-mismatch -p0 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p0 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+exit 0
+
+@DPATCH@
+--- ../old/src/daemon.c 2002-12-18 10:28:01.000000000 +0000
++++ src/daemon.c 2003-01-19 06:24:18.000000000 +0000
+@@ -42,6 +42,13 @@
+ static smtp_slot *smtp_slots;
+
+
++static void close_fds(void)
++{
++ int fd;
++ for (fd = 0; fd < 255; fd++) {
++ close(fd);
++ }
++}
+
+ /*************************************************
+ * SIGALRM Handler *
+@@ -662,9 +669,7 @@
+ {
+ log_close_all(); /* Just in case anything was logged earlier */
+ search_tidyup(); /* Just in case any were used in reading the config. */
+- close(0); /* Get rid of stdin/stdout/stderr */
+- close(1);
+- close(2);
++ close_fds();
+ log_stderr = NULL; /* So no attempt to copy paniclog output */
+
+ /* If the parent process of this one has pid == 1, we are re-initializing the
diff --git a/debian/patches/30_dontoverridecflags.dpatch b/debian/patches/30_dontoverridecflags.dpatch
new file mode 100644
index 0000000..cf7bc7b
--- /dev/null
+++ b/debian/patches/30_dontoverridecflags.dpatch
@@ -0,0 +1,36 @@
+#! /bin/sh -e
+## 30_dontoverridecflags.dpatch by Andreas Metzler
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Don't override CFLAGS in OS/Makefile-Linux, allow to set them
+## DP: e.g. in debian/rules
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 30.tmp/OS/Makefile-Linux 30/OS/Makefile-Linux
+--- 30.tmp/OS/Makefile-Linux Mon Dec 30 10:06:45 2002
++++ 30/OS/Makefile-Linux Mon Dec 30 10:07:07 2002
+@@ -3,8 +3,9 @@
+
+ BASENAME_COMMAND=look_for_it
+
+-CFLAGS=-O
++# Assume Linuxes use gcc too
+
++CFLAGS ?= -O
+ DBMLIB = -ldb
+ USE_DB = yes
+
diff --git a/debian/patches/31_eximmanpage.dpatch b/debian/patches/31_eximmanpage.dpatch
new file mode 100644
index 0000000..ccede32
--- /dev/null
+++ b/debian/patches/31_eximmanpage.dpatch
@@ -0,0 +1,57 @@
+#! /bin/sh -e
+## 31_newpatch.dpatch by <ametzler@logic.univie.ac.at>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Add info about rmail, mailq, etc. to exim(8).
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad /tmp/exim4-cvs/doc/exim.8 exim4-cvs/doc/exim.8
+--- /tmp/exim4-cvs/doc/exim.8 Wed Dec 3 16:36:31 2003
++++ exim4-cvs/doc/exim.8 Wed Dec 3 16:40:36 2003
+@@ -1,6 +1,6 @@
+ .TH EXIM 8
+ .SH NAME
+-exim - a Mail Transfer Agent
++exim \- a Mail Transfer Agent
+ .SH SYNOPSIS
+ .B exim [options] arguments ...
+ .br
+@@ -1305,3 +1305,24 @@
+ It sets -x when calling the MTA from its "mail" command. Exim ignores this
+ option.
+ .TP
++
++.SH SEE ALSO
++.BR exicyclog (8),
++.BR exigrep (8),
++.BR exim_checkaccess (8),
++.BR exim_convert4r4 (8),
++.BR exim_db (8),
++.BR exim_dbmbuild (8),
++.BR exim_lock (8),
++.BR eximon (8),
++.BR exinext (8),
++.BR exiqgrep (8),
++.BR exiqsumm (8),
++.BR exiwhat (8),
++.BR update\-exim4.conf (8),
++.BR update\-exim4defaults (8),
++/usr/share/doc/exim4\-base/.
++
++.SH AUTHOR
++This manual page was provided with the upstream Exim source package.
++It was enhanced for the Debian GNU/Linux system.
diff --git a/debian/patches/32_exim4.dpatch b/debian/patches/32_exim4.dpatch
new file mode 100755
index 0000000..6b64657
--- /dev/null
+++ b/debian/patches/32_exim4.dpatch
@@ -0,0 +1,126 @@
+#! /bin/sh -e
+## 32_exim4.dpatch by Andreas Metzler
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: The main binary is installed as /usr/sbin/exim4
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad /tmp/exim4-4.22/OS/Makefile-Linux exim4-4.22/OS/Makefile-Linux
+--- /tmp/exim4-4.22/OS/Makefile-Linux Mon Aug 18 17:19:09 2003
++++ exim4-4.22/OS/Makefile-Linux Mon Aug 18 17:19:09 2003
+@@ -24,7 +24,7 @@
+ EXIWHAT_PS_ARG=ax
+ EXIWHAT_EGREP_ARG='/exim( |$$)'
+ EXIWHAT_MULTIKILL_CMD=killall
+-EXIWHAT_MULTIKILL_ARG=exim
++EXIWHAT_MULTIKILL_ARG=exim4
+ EXIWHAT_KILL_SIGNAL=-USR1
+
+ # End
+diff -urNad /tmp/exim4-4.22/src/exicyclog.src exim4-4.22/src/exicyclog.src
+--- /tmp/exim4-4.22/src/exicyclog.src Mon Aug 18 16:55:28 2003
++++ exim4-4.22/src/exicyclog.src Mon Aug 18 17:19:09 2003
+@@ -101,7 +101,7 @@
+
+ st=' '
+ exim_path=`grep "^[$st]*exim_path" $config | sed "s/.*=[$st]*//"`
+-if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim; fi
++if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim4; fi
+
+ spool_directory=`$exim_path -C $config -bP spool_directory | sed 's/.*=[ ]*//'`
+ log_file_path=`$exim_path -C $config -bP log_file_path | sed 's/.*=[ ]*//'`
+diff -urNad /tmp/exim4-4.22/src/exim_checkaccess.src exim4-4.22/src/exim_checkaccess.src
+--- /tmp/exim4-4.22/src/exim_checkaccess.src Wed Jul 16 13:35:00 2003
++++ exim4-4.22/src/exim_checkaccess.src Mon Aug 18 17:19:09 2003
+@@ -43,7 +43,7 @@
+
+ st=' '
+ exim_path=`grep "^[$st]*exim_path" $config | sed "s/.*=[$st]*//"`
+-if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim; fi
++if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim4; fi
+
+
+ #########################################################################
+diff -urNad /tmp/exim4-4.22/src/eximon.src exim4-4.22/src/eximon.src
+--- /tmp/exim4-4.22/src/eximon.src Wed Jul 16 13:35:00 2003
++++ exim4-4.22/src/eximon.src Mon Aug 18 17:19:09 2003
+@@ -52,7 +52,7 @@
+
+ st=' '
+ EXIM_PATH=`grep "^[$st]*exim_path" $config | sed "s/.*=[$st]*//"`
+-if test "$EXIM_PATH" = ""; then EXIM_PATH=BIN_DIRECTORY/exim; fi
++if test "$EXIM_PATH" = ""; then EXIM_PATH=BIN_DIRECTORY/exim4; fi
+
+ SPOOL_DIRECTORY=`$EXIM_PATH -C $config -bP spool_directory | sed 's/.*=[ ]*//'`
+ LOG_FILE_PATH=`$EXIM_PATH -C $config -bP log_file_path | sed 's/.*=[ ]*//'`
+diff -urNad /tmp/exim4-4.22/src/exinext.src exim4-4.22/src/exinext.src
+--- /tmp/exim4-4.22/src/exinext.src Wed Jul 16 13:35:00 2003
++++ exim4-4.22/src/exinext.src Mon Aug 18 17:19:09 2003
+@@ -46,7 +46,7 @@
+
+ st=' '
+ exim_path=`grep "^[$st]*exim_path" $config | sed "s/.*=[$st]*//"`
+-if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim; fi
++if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim4; fi
+ spool_directory=`$exim_path -C $config -bP spool_directory | sed 's/.*=[ ]*//'`
+ qualify_domain=`$exim_path -C $config -bP qualify_domain | sed 's/.*=[ ]*//'`
+
+@@ -123,7 +123,7 @@
+
+ # Run exim_dumpdb to get out the retry data and pick off what we want
+
+- open(DATA, "${exim}_dumpdb $spool retry |") ||
++ open(DATA, "/usr/sbin/exim_dumpdb $spool retry |") ||
+ die "can't run exim_dumpdb";
+
+ while (<DATA>)
+diff -urNad /tmp/exim4-4.22/src/exiqgrep.src exim4-4.22/src/exiqgrep.src
+--- /tmp/exim4-4.22/src/exiqgrep.src Wed Jul 16 13:35:00 2003
++++ exim4-4.22/src/exiqgrep.src Mon Aug 18 17:19:09 2003
+@@ -12,7 +12,7 @@
+ use Getopt::Std;
+
+ # Have this variable point to your exim binary.
+-my $exim = 'BIN_DIRECTORY/exim';
++my $exim = 'BIN_DIRECTORY/exim4';
+ my $eargs = '-bpu';
+ my %id;
+ my %opt;
+diff -urNad /tmp/exim4-4.22/src/exiwhat.src exim4-4.22/src/exiwhat.src
+--- /tmp/exim4-4.22/src/exiwhat.src Mon Aug 18 16:55:28 2003
++++ exim4-4.22/src/exiwhat.src Mon Aug 18 17:19:09 2003
+@@ -68,7 +68,7 @@
+
+ st=' '
+ exim_path=`grep "^[$st]*exim_path" $config | sed "s/.*=[$st]*//"`
+-if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim; fi
++if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim4; fi
+ spool_directory=`$exim_path -C $config -bP spool_directory | sed "s/.*=[ ]*//"`
+ process_log_path=`$exim_path -C $config -bP process_log_path | sed "s/.*=[ ]*//"`
+
+diff -urNad /tmp/exim4-4.22/src/globals.c exim4-4.22/src/globals.c
+--- /tmp/exim4-4.22/src/globals.c Mon Aug 18 16:55:28 2003
++++ exim4-4.22/src/globals.c Mon Aug 18 17:19:09 2003
+@@ -429,7 +429,7 @@
+
+ gid_t exim_gid = EXIM_GID;
+ BOOL exim_gid_set = TRUE; /* This gid is always set */
+-uschar *exim_path = US BIN_DIRECTORY "/exim"
++uschar *exim_path = US BIN_DIRECTORY "/exim4"
+ "\0<---------------Space to patch exim_path->";
+ uid_t exim_uid = EXIM_UID;
+ BOOL exim_uid_set = TRUE; /* This uid is always set */
diff --git a/debian/patches/33_eximon.binary.dpatch b/debian/patches/33_eximon.binary.dpatch
new file mode 100755
index 0000000..31568d0
--- /dev/null
+++ b/debian/patches/33_eximon.binary.dpatch
@@ -0,0 +1,33 @@
+#! /bin/sh -e
+## 33_eximon.binary.dpatch by Andreas Piesk
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: eximon.bin is installed in /usr/lib/exim4/ and not in path.
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 30.tmp/OS/eximon.conf-Default 30/OS/eximon.conf-Default
+--- 30.tmp/OS/eximon.conf-Default Mon Dec 30 10:14:03 2002
++++ 30/OS/eximon.conf-Default Mon Dec 30 10:15:04 2002
+@@ -5,7 +5,7 @@
+ # The name of the eximon binary, usually the same as the eximon script,
+ # with .bin stuck on the end.
+
+-EXIMON_BINARY=${EXIMON_BINARY-$0.bin}
++EXIMON_BINARY=/usr/lib/exim4/${EXIMON_BINARY-${0##*/}.bin}
+
+ # The remaining parameters are values likely to be changed to suit the
+ # user's taste. They are documented in the EDITME file.
diff --git a/debian/patches/34_eximstatsmanpage.dpatch b/debian/patches/34_eximstatsmanpage.dpatch
new file mode 100755
index 0000000..bd7c44a
--- /dev/null
+++ b/debian/patches/34_eximstatsmanpage.dpatch
@@ -0,0 +1,36 @@
+#! /bin/sh -e
+## 34_eximstatsmanpage.dpatch by Andreas Metzler <ametzler@downhill.at.eu.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Add note about installing perl-modules on Debian to
+## DP: generated manpage
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 30.tmp/src/eximstats.src 30/src/eximstats.src
+--- 30.tmp/src/eximstats.src Wed Dec 18 11:28:01 2002
++++ 30/src/eximstats.src Sun Jan 12 14:50:23 2003
+@@ -277,6 +277,10 @@
+ make test
+ make install
+
++On B<Debian GNU/Linux> you can use
++C<apt-get install libgd-perl libgd-text-perl libgd-graph-perl>
++instead.
++
+ =item B<-chartdir>I <dir>
+
+ Create the charts in the directory <dir>
diff --git a/debian/patches/35_install.dpatch b/debian/patches/35_install.dpatch
new file mode 100755
index 0000000..161861b
--- /dev/null
+++ b/debian/patches/35_install.dpatch
@@ -0,0 +1,37 @@
+#! /bin/sh -e
+## 35_install.dpatch by Andreas Metzler
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Exim's installation scripts install the binary as exim-<version>
+## DP: - disable this feature.
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 30.tmp/scripts/exim_install 30/scripts/exim_install
+--- 30.tmp/scripts/exim_install Mon Dec 30 10:19:59 2002
++++ 30/scripts/exim_install Mon Dec 30 10:20:21 2002
+@@ -172,8 +172,9 @@
+ # The exim binary is handled specially
+
+ if [ $name = exim${EXE} ]; then
+- version=exim-`./exim -bV -C /dev/null | \
+- awk '/Exim version/ { OFS=""; print $3,"-",substr($4,2,length($4)-1) }'`${EXE}
++ version=exim
++# version=exim-`./exim -bV -C /dev/null | \
++# awk '/Exim version/ { OFS=""; print $3,"-",substr($4,2,length($4)-1) }'`${EXE}
+
+ # Do something only if newer than existing file, or no existing file
+
diff --git a/debian/patches/36_pcre.dpatch b/debian/patches/36_pcre.dpatch
new file mode 100755
index 0000000..0480b95
--- /dev/null
+++ b/debian/patches/36_pcre.dpatch
@@ -0,0 +1,91 @@
+#! /bin/sh -e
+## 36_pcre.dpatch by Andreas Metzler
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Link exim and eximon dynamically instead of statically
+## DP: pcre.
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 30.tmp/OS/Makefile-Base 30/OS/Makefile-Base
+--- 30.tmp/OS/Makefile-Base Mon Dec 30 10:28:54 2002
++++ 30/OS/Makefile-Base Mon Dec 30 10:29:28 2002
+@@ -94,7 +94,7 @@
+ # This is the real default target for all the various exim binaries and
+ # scripts, once the configuring stuff is done.
+
+-allexim: config.h buildpcre $(EXIM_MONITOR) exicyclog exinext exiwhat \
++allexim: config.h $(EXIM_MONITOR) exicyclog exinext exiwhat \
+ exigrep eximstats exiqgrep exiqsumm \
+ transport-filter.pl convert4r3 convert4r4 \
+ exim_checkaccess \
+@@ -255,7 +255,7 @@
+ store.o string.o tls.o tod.o transport.o tree.o verify.o \
+ local_scan.o $(EXIM_PERL)
+
+-exim: pcre/libpcre.a lookups/lookups.a auths/auths.a \
++exim: lookups/lookups.a auths/auths.a \
+ routers/routers.a transports/transports.a \
+ $(OBJ_EXIM) version.c
+ @echo " "
+@@ -264,7 +264,7 @@
+ $(CC) -c $(CFLAGS) $(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE) version.c
+ rm -f exim
+ $(PURIFY) $(LNCC) -o exim $(LFLAGS) $(OBJ_EXIM) version.o \
+- pcre/libpcre.a \
++ -lpcre \
+ routers/routers.a transports/transports.a lookups/lookups.a \
+ auths/auths.a \
+ $(LIBRESOLV) $(LIBS) $(LIBS_EXIM) $(IPV6_LIBS) $(EXTRALIBS) \
+@@ -366,12 +366,12 @@
+
+ OBJ_MONBIN = util-spool_in.o util-store.o util-string.o tod.o tree.o $(MONBIN)
+
+-eximon.bin: $(EXIMON_EDITME) eximon $(OBJ_MONBIN) pcre/libpcre.a \
++eximon.bin: $(EXIMON_EDITME) eximon $(OBJ_MONBIN) \
+ ../exim_monitor/em_version.c
+ $(CC) -o em_version.o -c \
+ $(CFLAGS) $(XINCLUDE) -I. ../exim_monitor/em_version.c
+ $(PURIFY) $(LNCC) -o eximon.bin em_version.o $(LFLAGS) $(XLFLAGS) \
+- $(OBJ_MONBIN) -lXaw -lXmu -lXt -lXext -lX11 pcre/libpcre.a \
++ $(OBJ_MONBIN) -lXaw -lXmu -lXt -lXext -lX11 -lpcre \
+ $(LIBS) $(LIBS_EXIMON) $(EXTRALIBS) $(EXTRALIBS_EXIMON) -lc
+ @if [ x"$(STRIP_COMMAND)" != x"" ]; then \
+ echo $(STRIP_COMMAND) eximon.bin; \
+diff -urNad 30.tmp/exim_monitor/em_hdr.h 30/exim_monitor/em_hdr.h
+--- 30.tmp/exim_monitor/em_hdr.h Mon Dec 30 10:28:54 2002
++++ 30/exim_monitor/em_hdr.h Mon Dec 30 10:29:28 2002
+@@ -85,7 +85,7 @@
+
+ /* Regular expression include */
+
+-#include "pcre/pcre.h"
++#include <pcre.h>
+
+ /* Includes from the main source of Exim. We need to have MAXPACKET defined for
+ the benefit of structs.h. One of these days I should tidy up this interface so
+diff -urNad 30.tmp/src/exim.h 30/src/exim.h
+--- 30.tmp/src/exim.h Mon Dec 30 10:28:54 2002
++++ 30/src/exim.h Mon Dec 30 10:29:28 2002
+@@ -322,7 +322,7 @@
+
+ /* The header from the PCRE regex package */
+
+-#include "pcre/pcre.h"
++#include <pcre.h>
+
+ /* Exim includes are in several files */
+
diff --git a/debian/patches/40_boolean_redefine_protect.dpatch b/debian/patches/40_boolean_redefine_protect.dpatch
new file mode 100644
index 0000000..8523b2c
--- /dev/null
+++ b/debian/patches/40_boolean_redefine_protect.dpatch
@@ -0,0 +1,47 @@
+#! /bin/sh -e
+## 40_boolean_redefine_protect.dpatch by Steve Haslam
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: boolean_redefine_protect
+## DP: [src/mytypes.h]
+## DP: Surround the definition of TRUE and FALSE macros with #ifndef
+## DP: /#endif, in case some other header defines them (from mixing
+## DP: Perl and Exim, istr)
+## DP: http://www.arise.demon.co.uk/exim-patches/
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad 40.tmp/src/mytypes.h 40/src/mytypes.h
+--- 40.tmp/src/mytypes.h Sun Dec 29 14:31:27 2002
++++ 40/src/mytypes.h Sun Dec 29 14:40:41 2002
+@@ -14,9 +14,17 @@
+ #define MYTYPES_H
+
+
++#ifndef FALSE
+ #define FALSE 0
++#endif
++
++#ifndef TRUE
+ #define TRUE 1
++#endif
++
++#ifndef TRUE_UNSET
+ #define TRUE_UNSET 2
++#endif
+
+
+ /* If gcc is being used to compile Exim, we can use its facility for checking
diff --git a/debian/patches/50_localscan_dlopen.dpatch b/debian/patches/50_localscan_dlopen.dpatch
new file mode 100644
index 0000000..5e9f9d9
--- /dev/null
+++ b/debian/patches/50_localscan_dlopen.dpatch
@@ -0,0 +1,303 @@
+#! /bin/sh -e
+## 50_localscan_dlopen.dpatch by Marc MERLIN
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Allow to use and switch between different local_scan functions without
+## DP: recompiling exim.
+## DP: http://marc.merlins.org/linux/exim/files/sa-exim-current/
+## DP: Original patch from David Woodhouse, modified first by Derrick 'dman'
+## DP: Hudson and then by Marc MERLIN for SA-Exim and minor/major API version
+## DP: tracking
+
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urN exim-4.14-0/src/EDITME exim-4.14-1/src/EDITME
+--- exim-4.14-0/src/EDITME Tue Mar 11 04:20:18 2003
++++ exim-4.14-1/src/EDITME Sun Mar 23 15:34:15 2003
+@@ -388,6 +388,20 @@
+
+
+ #------------------------------------------------------------------------------
++# On systems which support dynamic loading of shared libraries, Exim can
++# load a local_scan function specified in its config file instead of having
++# to be recompiled with the desired local_scan function. For a full
++# description of the API to this function, see the Exim specification.
++
++DLOPEN_LOCAL_SCAN=yes
++
++# If you set DLOPEN_LOCAL_SCAN, then you need to include -rdynamic in the
++# linker flags. Without it, the loaded .so won't be able to access any
++# functions from exim.
++
++LFLAGS=-rdynamic
++
++#------------------------------------------------------------------------------
+ # The default distribution of Exim contains only the plain text form of the
+ # documentation. Other forms are available separately. If you want to install
+ # the documentation in "info" format, first fetch the Texinfo documentation
+diff -urNad 50_localscan_dlopen.tmp/src/config.h.defaults 50_localscan_dlopen/src/config.h.defaults
+--- 50_localscan_dlopen.tmp/src/config.h.defaults Sun Dec 29 11:55:42 2002
++++ 50_localscan_dlopen/src/config.h.defaults Sun Dec 29 11:56:44 2002
+@@ -17,6 +17,8 @@
+ #define AUTH_PLAINTEXT
+ #define AUTH_SPA
+
++#define DLOPEN_LOCAL_SCAN
++
+ #define BIN_DIRECTORY
+
+ #define CONFIGURE_FILE
+diff -urN exim-4.14-0/src/globals.c exim-4.14-1/src/globals.c
+--- exim-4.14-0/src/globals.c Tue Mar 11 04:20:20 2003
++++ exim-4.14-1/src/globals.c Sun Mar 23 15:34:15 2003
+@@ -103,6 +103,9 @@
+ uschar *tls_verify_hosts = NULL;
+ #endif
+
++#ifdef DLOPEN_LOCAL_SCAN
++uschar *local_scan_path = NULL;
++#endif
+
+ /* Input-reading functions for messages, so we can use special ones for
+ incoming TCP/IP. The defaults use stdin. We never need these for any
+diff -urN exim-4.14-0/src/globals.h exim-4.14-1/src/globals.h
+--- exim-4.14-0/src/globals.h Tue Mar 11 04:20:20 2003
++++ exim-4.14-1/src/globals.h Sun Mar 23 15:34:15 2003
+@@ -67,6 +67,9 @@
+ extern uschar *tls_verify_hosts; /* Mandatory client verification */
+ #endif
+
++#ifdef DLOPEN_LOCAL_SCAN
++extern uschar *local_scan_path; /* Path to local_scan() library */
++#endif
+
+ /* Input-reading functions for messages, so we can use special ones for
+ incoming TCP/IP. */
+diff -urN exim-4.14-0/src/local_scan.c exim-4.14-1/src/local_scan.c
+--- exim-4.14-0/src/local_scan.c Tue Mar 11 04:20:20 2003
++++ exim-4.14-1/src/local_scan.c Sun Mar 23 15:34:15 2003
+@@ -5,60 +5,131 @@
+ /* Copyright (c) University of Cambridge 1995 - 2003 */
+ /* See the file NOTICE for conditions of use and distribution. */
+
++#include "exim.h"
+
+-/******************************************************************************
+-This file contains a template local_scan() function that just returns ACCEPT.
+-If you want to implement your own version, you should copy this file to, say
+-Local/local_scan.c, and edit the copy. To use your version instead of the
+-default, you must set
+-
+-LOCAL_SCAN_SOURCE=Local/local_scan.c
+-
+-in your Local/Makefile. This makes it easy to copy your version for use with
+-subsequent Exim releases.
+-
+-For a full description of the API to this function, see the Exim specification.
+-******************************************************************************/
+-
+-
+-/* This is the only Exim header that you should include. The effect of
+-including any other Exim header is not defined, and may change from release to
+-release. Use only the documented interface! */
+-
+-#include "local_scan.h"
+-
+-
+-/* This is a "do-nothing" version of a local_scan() function. The arguments
+-are:
+-
+- fd The file descriptor of the open -D file, which contains the
+- body of the message. The file is open for reading and
+- writing, but modifying it is dangerous and not recommended.
+-
+- return_text A pointer to an unsigned char* variable which you can set in
+- order to return a text string. It is initialized to NULL.
+-
+-The return values of this function are:
+-
+- LOCAL_SCAN_ACCEPT
+- The message is to be accepted. The return_text argument is
+- saved in $local_scan_data.
+-
+- LOCAL_SCAN_REJECT
+- The message is to be rejected. The returned text is used
+- in the rejection message.
+-
+- LOCAL_SCAN_TEMPREJECT
+- This specifies a temporary rejection. The returned text
+- is used in the rejection message.
+-*/
++#ifdef DLOPEN_LOCAL_SCAN
++#include <dlfcn.h>
++static int (*local_scan_fn)(int fd, uschar **return_text) = NULL;
++static int load_local_scan_library(void);
++#endif
+
+ int
+ local_scan(int fd, uschar **return_text)
+ {
+ fd = fd; /* Keep picky compilers happy */
+ return_text = return_text;
+-return LOCAL_SCAN_ACCEPT;
++#ifdef DLOPEN_LOCAL_SCAN
++/* local_scan_path is defined AND not the empty string */
++if (local_scan_path && *local_scan_path)
++ {
++ if (!local_scan_fn)
++ {
++ if (!load_local_scan_library())
++ {
++ char *base_msg , *error_msg , *final_msg ;
++ int final_length = -1 ;
++
++ base_msg=US"Local configuration error - local_scan() library failure\n";
++ error_msg = dlerror() ;
++
++ final_length = strlen(base_msg) + strlen(error_msg) + 1 ;
++ final_msg = (char*)malloc( final_length*sizeof(char) ) ;
++ *final_msg = '\0' ;
++
++ strcat( final_msg , base_msg ) ;
++ strcat( final_msg , error_msg ) ;
++
++ *return_text = final_msg ;
++ return LOCAL_SCAN_TEMPREJECT;
++ }
++ }
++ return local_scan_fn(fd, return_text);
++ }
++else
++#endif
++ return LOCAL_SCAN_ACCEPT;
++}
++
++#ifdef DLOPEN_LOCAL_SCAN
++
++static int load_local_scan_library(void)
++{
++/* No point in keeping local_scan_lib since we'll never dlclose() anyway */
++void *local_scan_lib = NULL;
++int (*local_scan_version_fn)(void);
++int vers_maj;
++int vers_min;
++
++local_scan_lib = dlopen(local_scan_path, RTLD_NOW);
++if (!local_scan_lib)
++ {
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library open failed - "
++ "message temporarily rejected");
++ return FALSE;
++ }
++
++local_scan_version_fn = dlsym(local_scan_lib, "local_scan_version_major");
++if (!local_scan_version_fn)
++ {
++ dlclose(local_scan_lib);
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain "
++ "local_scan_version_major() function - message temporarily rejected");
++ return FALSE;
++ }
++
++/* The major number is increased when the ABI is changed in a non
++ backward compatible way. */
++vers_maj = local_scan_version_fn();
++
++local_scan_version_fn = dlsym(local_scan_lib, "local_scan_version_minor");
++if (!local_scan_version_fn)
++ {
++ dlclose(local_scan_lib);
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain "
++ "local_scan_version_minor() function - message temporarily rejected");
++ return FALSE;
++ }
++
++/* The minor number is increased each time a new feature is added (in a
++ way that doesn't break backward compatibility) -- Marc */
++vers_min = local_scan_version_fn();
++
++
++if (vers_maj != LOCAL_SCAN_ABI_VERSION_MAJOR)
++ {
++ dlclose(local_scan_lib);
++ local_scan_lib = NULL;
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() has an incompatible major"
++ "version number, you need to recompile your module for this version"
++ "of exim (The module was compiled for version %d.%d and this exim provides"
++ "ABI version %d.%d)", vers_maj, vers_min, LOCAL_SCAN_ABI_VERSION_MAJOR,
++ LOCAL_SCAN_ABI_VERSION_MINOR);
++ return FALSE;
++ }
++else if (vers_min > LOCAL_SCAN_ABI_VERSION_MINOR)
++ {
++ dlclose(local_scan_lib);
++ local_scan_lib = NULL;
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() has an incompatible minor"
++ "version number, you need to recompile your module for this version"
++ "of exim (The module was compiled for version %d.%d and this exim provides"
++ "ABI version %d.%d)", vers_maj, vers_min, LOCAL_SCAN_ABI_VERSION_MAJOR,
++ LOCAL_SCAN_ABI_VERSION_MINOR);
++ return FALSE;
++ }
++
++local_scan_fn = dlsym(local_scan_lib, "local_scan");
++if (!local_scan_fn)
++ {
++ dlclose(local_scan_lib);
++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain "
++ "local_scan() function - message temporarily rejected");
++ return FALSE;
++ }
++
++return TRUE;
+ }
++
++#endif /* DLOPEN_LOCAL_SCAN */
+
+ /* End of local_scan.c */
+diff -urN exim-4.14-0/src/local_scan.h exim-4.14-1/src/local_scan.h
+--- exim-4.14-0/src/local_scan.h Tue Mar 11 04:20:20 2003
++++ exim-4.14-1/src/local_scan.h Sun Mar 23 15:34:57 2003
+@@ -71,6 +71,15 @@
+
+ #define SPOOL_DATA_START_OFFSET (MESSAGE_ID_LENGTH+3)
+
++/* local_scan() ABI version number for dynamic libraries
++ The major number is increased when the ABI is changed in a non
++ backward compatible way.
++ The minor number is increased each time a new feature is added (in a
++ way that doesn't break backward compatibility) -- Marc */
++#define LOCAL_SCAN_ABI_VERSION_MAJOR 1
++#define LOCAL_SCAN_ABI_VERSION_MINOR 0
++#define LOCAL_SCAN_ABI_VERSION \
++ LOCAL_SCAN_ABI_VERSION_MAJOR.LOCAL_SCAN_ABI_VERSION_MINOR
+
+ /* Structure definitions that are documented as visible in the function. */
+
+diff -urN exim-4.14-0/src/readconf.c exim-4.14-1/src/readconf.c
+--- exim-4.14-0/src/readconf.c Tue Mar 11 04:20:22 2003
++++ exim-4.14-1/src/readconf.c Sun Mar 23 15:34:15 2003
+@@ -182,6 +182,9 @@
+ { "local_from_prefix", opt_stringptr, &local_from_prefix },
+ { "local_from_suffix", opt_stringptr, &local_from_suffix },
+ { "local_interfaces", opt_stringptr, &local_interfaces },
++#ifdef DLOPEN_LOCAL_SCAN
++ { "local_scan_path", opt_stringptr, &local_scan_path },
++#endif
+ { "local_scan_timeout", opt_time, &local_scan_timeout },
+ { "local_sender_retain", opt_bool, &local_sender_retain },
+ { "localhost_number", opt_stringptr, &host_number_string },
diff --git a/debian/patches/60_gnutls10.dpatch b/debian/patches/60_gnutls10.dpatch
new file mode 100644
index 0000000..653c1d8
--- /dev/null
+++ b/debian/patches/60_gnutls10.dpatch
@@ -0,0 +1,33 @@
+#! /bin/sh -e
+## 60_gnutls10.dpatch by Andreas Metzler
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Disable a noop to allow linking against GnuTLS10
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+--- exim/src/tls-gnu.c.orig Mon May 19 14:17:07 2003
++++ exim/src/tls-gnu.c Mon Feb 23 17:33:34 2004
+@@ -204,7 +204,8 @@
+
+ if ((verify & GNUTLS_CERT_NOT_TRUSTED) != 0 ||
+ (verify & GNUTLS_CERT_INVALID) != 0 ||
+- (verify & GNUTLS_CERT_CORRUPTED) != 0 ||
++/* missing in gnutls10 and a noop anyway
++ (verify & GNUTLS_CERT_CORRUPTED) != 0 ||*/
+ (verify & GNUTLS_CERT_REVOKED) != 0)
+ {
+ tls_certificate_verified = FALSE;
diff --git a/debian/patches/exiscan.patch b/debian/patches/exiscan.patch
new file mode 100644
index 0000000..9ccd86b
--- /dev/null
+++ b/debian/patches/exiscan.patch
@@ -0,0 +1,9651 @@
+diff -urN exim-4.30-orig/OS/Makefile-Base exim-4.30/OS/Makefile-Base
+--- exim-4.30-orig/OS/Makefile-Base Mon Dec 1 11:15:41 2003
++++ exim-4.30/OS/Makefile-Base Wed Jan 7 15:56:48 2004
+@@ -247,14 +247,14 @@
+ # Targets for final binaries; the main one has a build number which is
+ # updated each time. We don't bother with that for the auxiliaries.
+
+-OBJ_EXIM = acl.o child.o crypt16.o daemon.o dbfn.o debug.o deliver.o \
++OBJ_EXIM = acl.o child.o crypt16.o daemon.o dbfn.o debug.o deliver.o demime.o \
+ directory.o dns.o drtables.o enq.o exim.o expand.o filter.o \
+ filtertest.o globals.o \
+- header.o host.o ip.o log.o lss.o match.o moan.o \
++ header.o host.o ip.o log.o lss.o malware.o match.o mime.o moan.o \
+ os.o parse.o queue.o \
+- rda.o readconf.o receive.o retry.o rewrite.o rfc2047.o \
+- route.o search.o sieve.o smtp_in.o smtp_out.o spool_in.o spool_out.o \
+- store.o string.o tls.o tod.o transport.o tree.o verify.o \
++ rda.o readconf.o receive.o regex.o retry.o rewrite.o rfc2047.o \
++ route.o search.o sieve.o smtp_in.o smtp_out.o spam.o spool_in.o spool_mbox.o spool_out.o \
++ store.o string.o tls.o tnef.o tod.o transport.o tree.o verify.o \
+ local_scan.o $(EXIM_PERL)
+
+ exim: pcre/libpcre.a lookups/lookups.a auths/auths.a \
+@@ -466,6 +466,7 @@
+ dbfn.o: $(HDRS) dbfn.c
+ debug.o: $(HDRS) debug.c
+ deliver.o: $(HDRS) deliver.c
++demime.o: $(HDRS) demime.c
+ directory.o: $(HDRS) directory.c
+ dns.o: $(HDRS) dns.c
+ enq.o: $(HDRS) enq.c
+@@ -479,7 +480,9 @@
+ ip.o: $(HDRS) ip.c
+ log.o: $(HDRS) log.c
+ lss.o: $(HDRS) lss.c
++malware.o: $(HDRS) malware.c
+ match.o: $(HDRS) match.c
++mime.o: $(HDRS) mime.c
+ moan.o: $(HDRS) moan.c
+ os.o: $(HDRS) os.c
+ parse.o: $(HDRS) parse.c
+@@ -487,6 +490,7 @@
+ rda.o: $(HDRS) rda.c
+ readconf.o: $(HDRS) readconf.c
+ receive.o: $(HDRS) receive.c
++regex.o: $(HDRS) regex.c
+ retry.o: $(HDRS) retry.c
+ rewrite.o: $(HDRS) rewrite.c
+ rfc2047.o: $(HDRS) rfc2047.c
+@@ -495,11 +499,14 @@
+ sieve.o: $(HDRS) sieve.c
+ smtp_in.o: $(HDRS) smtp_in.c
+ smtp_out.o: $(HDRS) smtp_out.c
++spam.o: $(HDRS) spam.c
+ spool_in.o: $(HDRS) spool_in.c
++spool_mbox.o: $(HDRS) spool_mbox.c
+ spool_out.o: $(HDRS) spool_out.c
+ store.o: $(HDRS) store.c
+ string.o: $(HDRS) string.c
+ tls.o: $(HDRS) tls.c tls-gnu.c tls-openssl.c
++tnef.o: $(HDRS) tnef.c
+ tod.o: $(HDRS) tod.c
+ transport.o: $(HDRS) transport.c
+ tree.o: $(HDRS) tree.c
+diff -urN exim-4.30-orig/README.EXISCAN exim-4.30/README.EXISCAN
+--- exim-4.30-orig/README.EXISCAN Thu Jan 1 01:00:00 1970
++++ exim-4.30/README.EXISCAN Tue Dec 2 12:15:53 2003
+@@ -0,0 +1 @@
++Please refer to doc/exiscan-acl-spec.txt
+diff -urN exim-4.30-orig/doc/exiscan-acl-examples.txt exim-4.30/doc/exiscan-acl-examples.txt
+--- exim-4.30-orig/doc/exiscan-acl-examples.txt Thu Jan 1 01:00:00 1970
++++ exim-4.30/doc/exiscan-acl-examples.txt Tue Dec 2 12:15:53 2003
+@@ -0,0 +1,440 @@
++--------------------------------------------------------------
++exiscan-acl example configurations / FAQ
++--------------------------------------------------------------
++
++Author: Tom Kistner <tom@duncanthrax.net>
++
++The exiscan website is at http://duncanthrax.net/exiscan/. You
++will find the latest patch versions, as well as links to the
++mailing list and its archives there.
++
++This document shows some example configuration snippets:
++
++1. Basic sitewide virus and spam filtering by rejecting
++ matching messages after DATA.
++2. Adding a cryptographic "checks done" header that will
++ prevent re-scanning when the message re-visits one of your
++ mail servers, and the body size did not change.
++3. Marking spam-suspicious messages with extra headers and a
++ tag in the subject.
++4. Having more than one spam threshold to act on.
++5. Redirecting matching messages to special accounts while
++ preserving envelope recipient information.
++6. A multi-profile configuration for sites where different
++ "customers" (or users) have different content scanning
++ preferences.
++
++These examples serve as a guideline and should give you some
++pointers that can help you to create your own configuration.
++Please do not copy these examples verbatim. You really need to
++know what you are doing. The content scanning topic is really
++complex and you can screw up your mail server easily if you do
++not get it "right".
++
++I recommend to read the exiscan documentation on the above
++mentioned website before trying to make sense of the following
++examples.
++
++Each example shows part of a DATA ACL definition, unless
++otherwise noted.
++
++--------------------------------------------------------------
++1. Basic setup for simple site-wide filtering
++--------------------------------------------------------------
++The following example only shows the most basic use of the
++exiscan content filtering features. You should see it as a
++base that you can build on. However, it may be all you need
++for smaller systems with only a few users.
++
++/* -----------------
++# Do not scan messages submitted from our own hosts
++# and locally submitted messages. Since the DATA ACL
++# is not called for messages not submitted via SMTP
++# protocols, we do not need to check for an empty
++# host field.
++accept hosts = 127.0.0.1:+relay_from_hosts
++
++# Unpack MIME containers and reject file extensions
++# used by worms. Note that the extension list may be
++# incomplete.
++deny message = $found_extension files are not accepted here
++ demime = com:vbs:bat:pif:scr
++
++# Reject messages that have serious MIME errors.
++# This calls the demime condition again, but it
++# will return cached results.
++deny message = Serious MIME defect detected ($demime_reason)
++ demime = *
++ condition = ${if >{$demime_errorlevel}{2}{1}{0}}
++
++# Reject messages containing malware.
++deny message = This message contains malware ($malware_name)
++ malware = *
++
++# Reject spam messages. Remember to tweak your
++# site-wide SA profile. Do not spam-scan messages
++# larger than eighty kilobytes.
++deny message = Classified as spam (score $spam_score)
++ condition = ${if <{$message_size}{80k}{1}{0}}
++ spam = nobody
++
++# Finally accept all other messages that have
++# made it to this point
++accept
++------------------ */
++
++
++
++--------------------------------------------------------------
++2. Adding a cryptographic "scanning done" header
++--------------------------------------------------------------
++
++If you have a mail setup where the same message may pass your
++server twice (redirects from other servers), or you have
++multiple mail servers, you may want to make sure that each
++message is only checked once, to save processing time. Here is
++how to do it:
++
++At the very beginning of your DATA ACL, put this:
++
++/* -----------------
++# Check our crytographic header. If it matches, accept
++# the message.
++accept condition = ${if eq {${hmac{md5}\
++ {mysecret}\
++ {$body_linecount}}}\
++ {$h_X-Scan-Signature:} {1}{0}}
++------------------ */
++
++At the end, just before the final "accept" verb, put this:
++
++/* -----------------
++# Add the cryptographic header.
++warn message = X-Scan-Signature: ${hmac{md5}{mysecret}\
++ {$body_linecount}}
++------------------ */
++
++Notice the two "mysecret" strings? Replace them with your own
++secret, and don't tell anyone :) The hash also includes the
++number of lines in the message body, to protect against
++message "modifications".
++
++
++--------------------------------------------------------------
++3. Marking Spam messages with extra headers and subject tag
++--------------------------------------------------------------
++
++Since the false positive rate with spam scanning is high
++compared to virus scanning, it is wise to implement a scheme
++with two thresholds, where you reject messages with high
++scores and just mark messages with lower scores. End users can
++then set up filters in their Mail User Agents (MUAs). Since
++many MUAs can not filter on custom headers, it can be
++necessary to put a "spam tag" in the subject line. Since it is
++not (yet) possible to remove headers in Exims DATA ACL, we
++must do this in a system filter. Please see the Exim docs on
++how to set up a system filter.
++
++The following example will unconditionally put two spam
++information headers in each message, if it is smaller than
++eighty kilobytes:
++
++/* -----------------
++# Always put X-Spam-Score header in the message.
++# It looks like this:
++# X-Spam-Score: 6.6 (++++++)
++# When a MUA cannot match numbers, it can match for an
++# equivalent number of '+' signs.
++# The 'true' makes sure that the header is always put
++# in, no matter what the score.
++warn message = X-Spam-Score: $spam_score ($spam_bar)
++ condition = ${if <{$message_size}{80k}{1}{0}}
++ spam = nobody:true
++
++# Always put X-Spam-Report header in the message.
++# This is a multiline header that informs the user
++# which tests a message has "hit", and how much a
++# test has contributed to the score.
++warn message = X-Spam-Report: $spam_report
++ condition = ${if <{$message_size}{80k}{1}{0}}
++ spam = nobody:true
++------------------ */
++
++For the subject tag, we prepare a new subject header in the
++ACL, then swap it with the original Subject in the system
++filter.
++
++In the DATA ACL, put this:
++/* -----------------
++warn message = X-New-Subject: *SPAM* $h_subject:
++ spam = nobody
++------------------ */
++
++In the system filter, put this:
++/* -----------------
++if "${if def:header_X-New-Subject: {there}}" is there
++then
++ headers remove subject
++ headers add "Subject: $h_X-New-Subject:"
++ headers remove X-New-Subject
++endif
++------------------ */
++
++
++--------------------------------------------------------------
++4. Defining multiple spam thresholds with different actions
++--------------------------------------------------------------
++If you want to mark messages if they exceed your threshold,
++but also have a higher "cutoff" threshold where you reject
++messages, use the example above, plus this part:
++
++/* -----------------
++deny message = Spam score too high ($spam_score)
++ condition = ${if <{$message_size}{80k}{1}{0}}
++ spam = nobody:true
++ condition = ${if >{$spam_score_int}{100}{1}{0}}
++------------------ */
++
++The last condition is only true if the spam score exceeds 10.0
++points (Keep in mind that $spam_score_int is the messages
++score multiplied by ten).
++
++
++
++--------------------------------------------------------------
++5. Redirect infected or spam messages to special accounts
++--------------------------------------------------------------
++Sometimes it is desirable not to reject messages, but to stop
++them for inspection, and then decide wether to delete, bounce
++or pass them.
++
++There are multiple ways to achieve this. The simplest way is
++to freeze suspicious messages, and then thaw or bounce them
++after a review. Here is a simple example that will freeze spam
++suspicious messages when they exceed the SA threshold:
++
++/* -----------------
++warn log_message = frozen by spam scanner, score $spam_score
++ spam = nobody
++ control = freeze
++------------------ */
++
++Another way is to redirect suspicious messages to special
++postmaster accounts, where they can be reviewed. This involves
++setting up a router for these special accounts that acts on a
++header set in the DATA ACL.
++
++This is the DATA ACL entry:
++
++/* -----------------
++warn message = X-Redirect-To: spambox@mycompany.com
++ spam = nobody
++------------------ */
++
++This puts the target address in a special header, which can in
++turn be read with this router:
++
++/* -----------------
++scan_redirect:
++ driver = redirect
++ condition = ${if def:h_X-Redirect-To: {1}{0}}
++ headers_add = X-Original-Recipient: $local_part@$domain
++ data = $h_X-Redirect-To:
++ headers_remove = X-Redirect-To
++ redirect_router = my_second_router
++------------------ */
++
++This router should probably be your very first one, and you
++need to edit the last line (redirect_router = ) to replace
++"my_second_router" with the name of your original first
++router. Note that the original message recipient is saved in
++the "X-Original-Recipient" header, and the X-Redirect-To
++header line is removed.
++
++
++--------------------------------------------------------------
++6. Having multiple content scanning profiles for several
++ users or domains.
++--------------------------------------------------------------
++This is one of the most often asked questions, and it also has
++the most complicated answer. To understand the difficulties,
++you should first remember that the exiscan facilities are run
++in the DATA ACL. This ACL is called ONCE per message, after
++the sending server has transmitted the end-of-data marker.
++This gives us the very cool possibility to reject unwanted
++messages with a 5xx error code in response. The big drawback
++is that a message can have multiple recipients, and you can
++only reject or accept a message for ALL recipients, not
++individual ones.
++
++I will first sum up the possible solutions to this dilemma:
++
++ a. Make sure that each incoming message can have only one
++ envelope recipient. This is brutal, but effective and
++ reliably solves the problem on your end. :) Drawback:
++ Incoming mail to multiple recipients is slowed down. The
++ exact time depends on the retry strategies of the sending
++ hosts.
++
++ b. Offer a limited number of "profiles" that your customers
++ can subscribe to. Then, similar to a.), only accept
++ recipients with the same profile in a single "batch", and
++ defer the others. This does improve on the drawback of
++ a.) a bit.
++
++ c. Do scanning as usual, but never reject messages in the
++ DATA ACL. Instead put appropriate information in extra
++ headers and query those in routers or transports later.
++ Drawback: You'll have to send bounces yourself, and your
++ queue will fill up with frozen bounces. Advantage: clean
++ solution, protocol-wise.
++
++As you see, you can't have your cake and eat it too. Now lets
++get into the details of each possible solution.
++
++a.) Making sure each incoming message that will be scanned
++ only has one recipient.
++
++ To use this scheme, you must make sure that you do not use
++ it on your +relay_from_hosts and authenticated senders.
++ Both of these may be MUAs who cannot cope with such a
++ thing.
++
++ Here is a RCPT ACL that implements the behaviour
++ (shortened, do not copy 1:1!):
++
++ /* ------------
++ acl_check_rcpt:
++
++ # accept local, relay-allowed
++ # and authenticated sources
++
++ accept hosts = :
++ deny local_parts = ^.*[@%!/|]
++ accept hosts = 127.0.0.1:+relay_from_hosts
++ accept authenticated = *
++
++ # the following treat non-local,
++ # non-authenticated sources
++
++ defer message = only one recipient at a time
++ condition = ${if def:acl_m0 {1}{0}}
++
++ # [ .. ]
++ # put RBLs etc. here
++ # [ .. ]
++
++ accept domains = +local_domains
++ endpass
++ message = unknown user
++ verify = recipient
++ set acl_m0 = $local_part@$domain
++
++ accept domains = +relay_to_domains
++ endpass
++ message = unrouteable address
++ verify = recipient
++ set acl_m0 = $domain
++
++ deny message = relay not permitted
++ ------------ */
++
++ The lines which contain acl_m0 are the important ones. The
++ $acl_m0 variable gets set when a remote server
++ successfully sends one RCPT. Subsequent RCPT commands are
++ deferred if this variable is set. The $acl_m0 variable now
++ contains the single recipient domain, which you can use in
++ the DATA ACL to determine the scanning profile.
++
++ This scheme is only recommended for small servers with a
++ low number of possible recipients, where recipients do not
++ belong to the same organization. An example would be a
++ multiuser shell server.
++
++
++b.) Having several scanning profiles that "customers" can
++ choose from.
++
++ Suppose you want to offer three profiles. Lets call them
++ "reject-aggressive", "reject-conservative", and "warn
++ -only". Customers can select one of the profiles for each
++ of their domains. So you end up with a mapping like this:
++
++ domain-a.com: reject-aggressive
++ domain-b.org: warn-only
++ domain-c.net: reject-aggressive
++ domain-d.com: reject-conservative
++ [ .. ]
++
++ Suppose you put that in a file called /etc/exim/scanprefs
++
++ Now we make a scheme similar to a.), but we do allow more
++ than one recipient if they have the same scanning profile
++ than the first recipient.
++
++ Here is a RCPT ACL that implements the behaviour
++ (shortened, do not copy 1:1!):
++
++ /* ------------
++ acl_check_rcpt:
++
++ # accept local, relay-allowed and authenticated sources
++
++ accept hosts = :
++ deny local_parts = ^.*[@%!/|]
++ accept hosts = 127.0.0.1:+relay_from_hosts
++ accept authenticated = *
++
++ # the following treat non-local, non-authenticated sources
++
++ defer message = try this address in the next batch
++ condition = ${if eq {${acl_m0}}\
++ {${lookup{$domain}\
++ lsearch{/etc/exim/scanprefs}}}\
++ {0}{1}}
++
++ # [ .. ]
++ # put RBLs etc. here
++ # [ .. ]
++
++ accept domains = +local_domains
++ endpass
++ message = unknown user
++ verify = recipient
++ set acl_m0 = $local_part@$domain
++
++ accept domains = +relay_to_domains
++ endpass
++ message = unrouteable address
++ verify = recipient
++ set acl_m0 = ${lookup{$domain}\
++ lsearch{/etc/exim/scanprefs}}
++
++ deny message = relay not permitted
++ ------------ */
++
++ Now a recipient address get deferred if its scan profile
++ does not match the current batch profile. The $acl_m0
++ variable contains the name of the profile, that can be
++ used for processing in the DATA ACL.
++
++ This scheme works pretty well if you keep the number of
++ possible profiles low, since that will prevent
++ fragmentation of RCPT blocks.
++
++
++c.) Classic content scanning without the possibility of
++ rejects after DATA.
++
++ This emulates the "classic" content scanning in routers
++ and transports. The difference is that we still do the
++ scan in the DATA ACL, but put the outcome of each facility
++ in message headers, that can the be evaluated in special
++ routers, individually for each recipient.
++
++ A special approach can be taken for spam scanning, since
++ the $spam_score_int variable is also available in routers
++ and transports (it gets written to the spool files), so
++ you do not need to put that information in a header, but
++ rather act on $spam_score_int directly.
++
+diff -urN exim-4.30-orig/doc/exiscan-acl-spec.txt exim-4.30/doc/exiscan-acl-spec.txt
+--- exim-4.30-orig/doc/exiscan-acl-spec.txt Thu Jan 1 01:00:00 1970
++++ exim-4.30/doc/exiscan-acl-spec.txt Tue Mar 2 13:05:12 2004
+@@ -0,0 +1,714 @@
++--------------------------------------------------------------
++The exiscan-acl patch for exim4 - Documentation
++--------------------------------------------------------------
++(c) Tom Kistner <tom@duncanthrax.net> 2003-????
++License: GPL
++
++The exiscan-acl patch adds content scanning to the exim4 ACL
++system. It supports the following scanning features:
++
++ - MIME ACL that is called for all MIME parts in
++ incoming MIME messages.
++ - Antivirus using 3rd party scanners.
++ - Antispam using SpamAssassin.
++ - Regular expression match against headers, bodies, raw
++ MIME parts and decoded MIME parts.
++
++These features are hooked into exim by extending exim's ACL
++system. The patch adds expansion variables and ACL conditions.
++These conditions are designed to be used in the acl_smtp_data
++ACL. It is run when the sending host has completed the DATA
++phase and is waiting for our final response to his end-of-data
++marker. This allows us to reject messages containing
++unwanted content at that stage.
++
++The default exim configure file contains commented
++configuration examples for some features of exiscan-acl.
++
++
++0. Overall concept / Overview
++--------------------------------------------------------------
++
++The exiscan-acl patch extends Exims with mechanisms to
++deal with the message body content. Most of these additions
++affect the ACL system. The exiscan patch adds
++
++- A new ACL, called 'acl_smtp_mime' (Please see detailed
++ chapter on this one below).
++- ACL conditions and modifiers
++ o malware (attach 3rd party virus/malware scanner)
++ o spam (attach SpamAssassin)
++ o regex (match regex against message, linewise)
++ o decode (decode MIME part to disk)
++ o mime_regex (match regex against decoded MIME part)
++ o control = fakereject (reject but really accept a message)
++- expansion variables
++ (see chapters below for names and explanations)
++- configuration options in section 1 of Exim's configure file.
++ o av_scanner (type and options of the AV scanner)
++ o spamd_address (network address / socket of spamd daemon).
++
++All facilites work on a MBOX copy of the message that is
++temporarily spooled up in a file called:
++
++ <spool_directory>/scan/<message_id>/<message_id>.eml
++
++The .eml extension is a friendly hint to virus scanners that
++they can expect an MBOX-like structure inside that file. The
++file is only spooled up once, when the first exiscan facility
++is called. Subsequent calls to exiscan conditions will just
++open the file again. The directory is recursively removed
++when the acl_smtp_data has finished running. When the MIME
++ACL decodes files, they will be put into that same folder by
++default.
++
++
++1. The acl_smtp_mime MIME ACL
++--------------------------------------------------------------
++
++Note: if you are not familiar with exims ACL system, please go
++read the documentation on it, otherwise this chapter will not
++make much sense to you.
++
++Here are the facts on acl_smtp_mime:
++
++ - It is called once for each MIME part of a message,
++ including multipart types, in the sequence of their
++ position in the message.
++
++ - It is called just before the acl_smtp_data ACL. They share
++ a result code (the one assed to the remote system after
++ DATA). When a call to acl_smtp_mime does not yield
++ "accept", ACL processing is aborted and the respective
++ result code is sent to the remote mailer. This means that
++ the acl_smtp_data is NOT called any more.
++
++ - It is ONLY called if the message has a MIME-Version header.
++
++ - MIME parts will NOT be dumped to disk by default, you have
++ to call the "decode" condition to do that (see further
++ below).
++
++ - For RFC822 attachments (these are messages attached to
++ messages, with a content-type of 'message/rfc822'),
++ the ACL is called again in the same manner as
++ for the "primary" message, only that the $mime_is_rfc822
++ expansion variable is set (see below). These messages
++ are always decoded to disk before being checked, but
++ the files are unlinked once the check is done.
++
++To activate acl_smtp_mime, you need to add assign it the name
++of an ACL entry in section 1 of the config file, and then
++write that ACL in the ACL section, like:
++
++ /* ---------------
++
++ # -- section 1 ----
++ [ ... ]
++ acl_smtp_mime = my_mime_acl
++ [ ... ]
++
++ # -- acl section ----
++ begin acl
++
++ [ ... ]
++
++ my_mime_acl:
++
++ < ACL logic >
++
++ [ ... ]
++
++ ---------------- */
++
++The following list describes all expansion variables that are
++available in the MIME ACL:
++
++ $mime_content_type
++ ------------------
++ A very important variable. If the MIME part has a "Content
++ -Type:" header, this variable will contain its value,
++ lowercased, and WITHOUT any options (like "name" or
++ "charset", see below for these). Here are some examples of
++ popular MIME types, as they may appear in this variable:
++
++ text/plain
++ text/html
++ application/octet-stream
++ image/jpeg
++ audio/midi
++
++ If the MIME part has no "Content-Type:" header, this
++ variable is the empty string.
++
++
++ $mime_filename
++ --------------
++ Another important variable, possibly the most important one.
++ It contains a proposed filename for an attachment, if one
++ was found in either the "Content-Type:" or "Content
++ -Disposition" headers. The filename will be RFC2047
++ decoded, however NO additional sanity checks are done. See
++ instructions on "decode" further below. If no filename was
++ found, this variable is the empty string.
++
++
++ $mime_charset
++ -------------
++ Contains the charset identifier, if one was found in the
++ "Content-Type:" header. Examples for charset identifiers are
++
++ us-ascii
++ gb2312 (Chinese)
++ iso-8859-1
++
++ Please note that this value will NOT be normalized, so you
++ should do matches case-insensitively.
++
++
++ $mime_boundary
++ --------------
++ If the current part is a multipart (see $mime_is_multipart)
++ below, it SHOULD have a boundary string. It is stored in
++ this variable. If the current part has no boundary parameter
++ in the "Content-Type:" header, this variable contains the
++ empty string.
++
++
++ $mime_content_disposition
++ -------------------------
++ Contains the normalized content of the "Content
++ -Disposition:" header. You can expect strings like
++ "attachment" or "inline" here.
++
++
++ $mime_content_transfer_encoding
++ -------------------------------
++ Contains the normalized content of the "Content
++ -transfer-encoding:" header. This is a symbolic name for
++ an encoding type. Typical values are "base64" and "quoted
++ -printable".
++
++
++ $mime_content_id
++ ----------------
++ Contains the normalized content of the "Content
++ -ID:" header. This is a unique ID that can be used to
++ reference a part from another part.
++
++
++ $mime_content_description
++ -------------------------
++ Contains the normalized content of the "Content
++ -Description:" header. It can contain a human-readable
++ description of the parts content. Some implementations will
++ repeat the filename for attachments here, but they are
++ usually only used for display purposes.
++
++
++ $mime_part_count
++ ----------------
++ This is a counter that is raised for each processed MIME
++ part. It starts at zero for the very first part (which is
++ usually a multipart). The counter is per-message, so it is
++ reset when processing RFC822 attachments (see
++ $mime_is_rfc822). The counter stays set after acl_smtp_mime
++ is complete, so you can use it in the DATA ACL to determine
++ the number of MIME parts of a message. For non-MIME
++ messages, this variable will contain the value -1.
++
++
++ $mime_is_multipart
++ ------------------
++ A "helper" flag that is true (1) when the current
++ part has the main type "multipart", for example
++ "multipart/alternative" or "multipart/mixed". Since
++ multipart entities only serve as containers for other parts,
++ you may not want to carry out specific actions on them.
++
++
++ $mime_is_rfc822
++ ---------------
++ This flag is true (1) if the current part is NOT a part of
++ the checked message itself, but part of an attached message.
++ Attached message decoding is fully recursive.
++
++
++ $mime_decoded_filename
++ ----------------------
++ This variable is only set after the "decode" condition (see
++ below) has been successfully run. It contains the full path
++ and file name of the file containing the decoded data.
++
++
++The expansion variables only reflect the content of the MIME
++headers for each part. To actually decode the part to disk,
++you can use the "decode" condition. The general syntax is
++
++decode = [/<PATH>/]<FILENAME>
++
++The right hand side is expanded before use. After expansion,
++the value can
++
++ - be '0' or 'false', in which case no decoding is done.
++ - be the string 'default'. In that case, the file will be
++ put in the temporary "default" directory
++ <spool_directory>/scan/<message_id>/
++ with a sequential file name, consisting of the message id
++ and a sequence number. The full path and name is available
++ in $mime_decoded_filename after decoding.
++ - start with a slash. If the full name is an existing
++ directory, it will be used as a replacement for the
++ "default" directory. The filename will then also be
++ sequentially assigned. If the name does not exist, it will
++ be used as the full path and file name.
++ - not start with a slash. It will then be used as the
++ filename, and the default path will be used.
++
++You can easily decode a file with its original, proposed
++filename using "decode = $mime_filename". However, you should
++keep in mind that $mime_filename might contain anything. If
++you place files outside of the default path, they will not be
++automatically unlinked.
++
++The MIME ACL also supports the regex= and mime_regex=
++conditions. You can use those to match regular expressions
++against raw and decoded MIME parts, respectively. Read the
++next section for more information on these conditions.
++
++
++
++2. Match message or MIME parts against regular expressions
++--------------------------------------------------------------
++
++The "regex" condition takes one or more regular expressions as
++arguments and matches them against the full message (when
++called in the DATA ACL) or a raw MIME part (when called in the
++MIME ACL). The "regex" condition matches linewise, with a
++maximum line length of 32k characters. That means you can't
++have multiline matches with the "regex" condition.
++
++The "mime_regex" can only be called in the MIME ACL. It
++matches up to 32k of decoded content (the whole content at
++once, not linewise). If the part has not been decoded with the
++"decode" condition earlier in the ACL, it is decoded
++automatically when "mime_regex" is executed (using default
++path and filename values). If the decoded data is larger
++than 32k, only the first 32k characters will be
++matched.
++
++The regular expressions are passed as a colon-separated list.
++To include a literal colon, you must double it. Since the
++whole right-hand side string is expanded before being used,
++you must also escape dollar ($) signs with backslashes.
++
++Here is a simple example:
++
++/* ----------------------
++deny message = contains blacklisted regex ($regex_match_string)
++ regex = [Mm]ortgage : URGENT BUSINESS PROPOSAL
++----------------------- */
++
++The conditions returns true if one of the regular
++expressions has matched. The $regex_match_string expansion
++variable is then set up and contains the matching regular
++expression.
++
++Warning: With large messages, these conditions can be fairly
++CPU-intensive.
++
++
++
++3. Antispam measures with SpamAssassin
++--------------------------------------------------------------
++
++The "spam" ACL condition calls SpamAssassin's "spamd" daemon
++to get a spam-score and a report for the message. You must
++first install SpamAssassin. You can get it
++at http://www.spamassassin.org, or, if you have a working
++Perl installation, you can use CPAN by calling
++
++perl -MCPAN -e 'install Mail::SpamAssassin'
++
++SpamAssassin has its own set of configuration files. Please
++review its documentation to see how you can tweak it. The
++default installation should work nicely, however.
++
++After having installed and configured SpamAssassin, start the
++"spamd" daemon. By default, it listens on 127.0.0.1, TCP port
++783. If you use another host or port for spamd, you must set
++the spamd_address option in Section 1 of the exim
++configuration as follows (example):
++
++spamd_address = 127.0.0.1 783
++
++As of version 2.60, spamd also supports communication over UNIX
++sockets. If you want to use these, supply spamd_address with
++an absolute file name instead of a address/port pair, like:
++
++spamd_address = /var/run/spamd_socket
++
++If you use the above mentioned default, you do NOT need to set
++this option.
++
++To use the antispam facility, put the "spam" condition in a
++DATA ACL block. Here is a very simple example:
++
++/* ---------------
++deny message = This message was classified as SPAM
++ spam = joe
++---------------- */
++
++On the right-hand side of the spam condition, you can put the
++username that SpamAssassin should scan for. That allows you to
++use per-domain or per-user antispam profiles. The right-hand
++side is expanded before being used, so you can put lookups or
++conditions there. When the right-hand side evaluates to "0" or
++"false", no scanning will be done and the condition will fail
++immediately.
++
++If you do not want to scan for a particular user, but rather
++use the SpamAssassin system-wide default profile, you can scan
++for an unknown user, or simply use "nobody".
++
++The "spam" condition will return true if the threshold
++specified in the user's SpamAssassin profile has been matched
++or exceeded. If you want to use the spam condition for its
++side effects (see the variables below), you can make it always
++return "true" by appending ":true" to the username.
++
++When the condition is run, it sets up the following expansion
++variables:
++
++ $spam_score The spam score of the message, for example
++ "3.4" or "30.5". This is useful for
++ inclusion in log or reject messages.
++
++ $spam_score_int The spam score of the message, multiplied
++ by ten, as an integer value. For example
++ "34" or "305". This is useful for numeric
++ comparisons in conditions. See further
++ below for a more complicated example. This
++ variable is special, since it is written
++ to the spool file, so it can be used
++ during the whole life of the message on
++ your exim system, even in routers
++ or transports.
++
++ $spam_bar A string consisting of a number of '+' or
++ '-' characters, representing the
++ spam_score value. A spam score of "4.4"
++ would have a spam_bar of '++++'. This is
++ useful for inclusion in warning headers,
++ since MUAs can match on such strings.
++
++ $spam_report A multiline text table, containing the
++ full SpamAssassin report for the message.
++ Useful for inclusion in headers or reject
++ messages.
++
++The spam condition caches its results. If you call it again
++with the same user name, it will not really scan again, but
++rather return the same values as before.
++
++Finally, here is a commented example on how to use the spam
++condition:
++
++/* ----------------
++# put headers in all messages (no matter if spam or not)
++warn message = X-Spam-Score: $spam_score ($spam_bar)
++ spam = nobody:true
++warn message = X-Spam-Report: $spam_report
++ spam = nobody:true
++
++# add second subject line with *SPAM* marker when message
++# is over threshold
++warn message = Subject: *SPAM* $h_Subject
++ spam = nobody
++
++# reject spam at high scores (> 12)
++deny message = This message scored $spam_score spam points.
++ spam = nobody:true
++ condition = ${if >{$spam_score_int}{120}{1}{0}}
++----------------- */
++
++
++
++4. The "malware" facility
++ Scan messages for viruses using an external virus scanner
++--------------------------------------------------------------
++
++This facility lets you connect virus scanner software to exim.
++It supports a "generic" interface to scanners called via the
++shell, and specialized interfaces for "daemon" type virus
++scanners, who are resident in memory and thus are much faster.
++
++To use this facility, you MUST set the "av_scanner" option in
++section 1 of the exim config file. It specifies the scanner
++type to use, and any additional options it needs to run. The
++basic syntax is as follows:
++
++ av_scanner = <scanner-type>:<option1>:<option2>:[...]
++
++The following scanner-types are supported in this release:
++
++ sophie Sophie is a daemon that uses Sophos' libsavi
++ library to scan for viruses. You can get Sophie
++ at http://www.vanja.com/tools/sophie/. The only
++ option for this scanner type is the path to the
++ UNIX socket that Sophie uses for client
++ communication. The default path is
++ /var/run/sophie, so if you are using this, you
++ can omit the option. Example:
++
++ av_scanner = sophie:/tmp/sophie
++
++
++ kavdaemon Kapersky's kavdaemon is a daemon-type scanner.
++ You can get a trial version at
++ http://www.kapersky.com. This scanner type takes
++ one option, which is the path to the daemon's
++ UNIX socket. The default is "/var/run/AvpCtl".
++ Example:
++
++ av_scanner = kavdaemon:/opt/AVP/AvpCtl
++
++
++ clamd Another daemon type scanner, this one is GPL and
++ free. Get it at http://clamav.elektrapro.com/.
++ Clamd does not seem to unpack MIME containers,
++ so it is recommended to use the demime facility
++ with it. It takes one option: either the path
++ and name of a UNIX socket file, or a
++ hostname/port pair, separated by space. If
++ unset, the default is "/tmp/clamd". Example:
++
++ av_scanner = clamd:192.168.2.100 1234
++ or
++ av_scanner = clamd:/opt/clamd/socket
++
++
++ drweb This one is for the DrWeb (http://www.sald.com/)
++ daemon. It takes one argument, either a full
++ path to a UNIX socket, or an IP address and port
++ separated by whitespace. If you omit the
++ argument, the default
++
++ /usr/local/drweb/run/drwebd.sock
++
++ is used. Example:
++
++ av_scanner = drweb:192.168.2.20 31337
++ or
++ av_scanner = drweb:/var/run/drwebd.sock
++
++ Thanks to Alex Miller <asm@abbyy.com.ua> for
++ contributing the code for this scanner.
++
++
++ mksd Yet another daemon type scanner, aimed mainly at
++ Polish users, though some parts of documentation
++ are now avaliable in English. You can get it at
++ http://linux.mks.com.pl/. The only option for
++ this scanner type is the maximum number of
++ processes used simultaneously to scan the
++ attachments, provided that the demime facility
++ is employed and also mksd has been run with
++ at least the same number of child processes.
++ You can safely omit this option, the default
++ value is 1. Example:
++
++ av_scanner = mksd:2
++
++
++ cmdline This is the keyword for the generic command line
++ scanner interface. It can be used to attach
++ virus scanners that are invoked on the shell.
++ This scanner type takes 3 mantadory options:
++
++ - full path and name of the scanner binary, with
++ all command line options and a placeholder
++ (%s) for the directory to scan.
++
++ - A regular expression to match against the
++ STDOUT and STDERR output of the virus scanner.
++ If the expression matches, a virus was found.
++ You must make absolutely sure that this
++ expression only matches on "virus found". This
++ is called the "trigger" expression.
++
++ - Another regular expression, containing exactly
++ ONE pair of braces, to match the name of the
++ virus found in the scanners output. This is
++ called the "name" expression.
++
++ Example:
++
++ Sophos Sweep reports a virus on a line like
++ this:
++
++ Virus 'W32/Magistr-B' found in file ./those.bat
++
++ For the "trigger" expression, we just use the
++ "found" word. For the "name" expression, we want
++ to get the W32/Magistr-B string, so we can match
++ for the single quotes left and right of it,
++ resulting in the regex '(.*)' (WITH the quotes!)
++
++ Altogether, this makes the configuration
++ setting:
++
++ av_scanner = cmdline:\
++ /path/to/sweep -all -rec -archive %s:\
++ found:'(.+)'
++
++
++When av_scanner is correcly set, you can use the "malware"
++condition in the DATA ACL. The condition takes a right-hand
++argument that is expanded before use. It can then be one of
++
++ - "true", "*", or "1", in which case the message is scanned
++ for viruses. The condition will succeed if a virus was
++ found, or fail otherwise. This is the recommended usage.
++
++ - "false" or "0", in which case no scanning is done and the
++ condition will fail immediately.
++
++ - a regular expression, in which case the message is scanned
++ for viruses. The condition will succeed if a virus found
++ found and its name matches the regular expression. This
++ allows you to take special actions on certain types of
++ viruses.
++
++When a virus was found, the condition sets up an expansion
++variable called $malware_name that contains the name of the
++virus found. You should use it in a "message" modifier that
++contains the error returned to the sender.
++
++The malware condition caches its results, so when you use it
++multiple times, the actual scanning process is only carried
++out once.
++
++If your virus scanner cannot unpack MIME and TNEF containers
++itself, you should use the demime condition prior to the
++malware condition.
++
++Here is a simple example:
++
++/* ----------------------
++deny message = This message contains malware ($malware_name)
++ demime = *
++ malware = *
++---------------------- */
++
++
++
++5. The "demime" facility
++ MIME unpacking, sanity checking and file extension blocking
++--------------------------------------------------------------
++
++* This facility provides a simpler interface to MIME decoding
++* than the MIME ACL functionality. It is kept in exiscan for
++* backward compatability.
++
++The demime facility unpacks MIME containers in the message. It
++detects errors in MIME containers and can match file
++extensions found in the message against a list. Using this
++facility will produce additional files in the temporary scan
++directory that contain the unpacked MIME parts of the message.
++If you do antivirus scanning, it is recommened to use the
++"demime" condition before the antivirus ("malware") condition.
++
++The condition name of this facility is "demime". On the right
++hand side, you can pass a colon-separated list of file
++extensions that it should match against. If one of the file
++extensions is found, the condition will return "OK" (or
++"true"), otherwise it will return FAIL (or "false"). If there
++was any TEMPORARY error while demimeing (mostly "disk full"),
++the condition will return DEFER, and the message will be
++temporarily rejected.
++
++The right-hand side gets "expanded" before being treated as a
++list, so you can have conditions and lookups there. If it
++expands to an empty string, "false", or zero ("0"), no
++demimeing is done and the conditions returns FALSE.
++
++A short example:
++
++/* ------------
++deny message = Found blacklisted file attachment
++ demime = vbs:com:bat:pif:prf:lnk
++--------------- */
++
++When the condition is run, it sets up the following expansion
++variables:
++
++ $demime_errorlevel When an error was detected in a MIME
++ container, this variable contains the
++ "severity" of the error, as an integer
++ number. The higher the value, the
++ more severe the error. If this
++ variable is unset or zero, no error has
++ occured.
++
++ $demime_reason When $demime_errorlevel is greater than
++ zero, this variable contains a human
++ -readable text string describing the
++ MIME error that occured.
++
++ $found_extension When the "demime" condition returns
++ "true", this variable contains the file
++ extension it has found.
++
++Both $demime_errorlevel and $demime_reason are set with the
++first call of the "demime" condition, and are not changed on
++subsequent calls.
++
++If do not want to check for any file extensions, but rather
++use the demime facility for unpacking or error checking
++purposes, just pass "*" as the right-hand side value.
++
++Here is a more elaborate example on how to use this facility:
++
++/* -----------------
++# Reject messages with serious MIME container errors
++deny message = Found MIME error ($demime_reason).
++ demime = *
++ condition = ${if >{$demime_errorlevel}{2}{1}{0}}
++
++# Reject known virus spreading file extensions.
++# Accepting these is pretty much braindead.
++deny message = contains $found_extension file (blacklisted).
++ demime = com:vbs:bat:pif:scr
++
++# Freeze .exe and .doc files. Postmaster can
++# examine them and eventually thaw them up.
++deny log_message = Another $found_extension file.
++ demime = exe:doc
++ control = freeze
++--------------------- */
++
++
++
++6. The "fakereject" control statement
++ Reject a message while really accepting it.
++--------------------------------------------------------------
++
++When you put "control = fakereject" in an ACL statement, the
++following will happen: If exim would have accepted the
++message, it will tell the remote host that it did not, with a
++message of:
++
++550-FAKE_REJECT id=xxxxxx-xxxxxx-xx
++550-Your message has been rejected but is being kept for evaluation.
++550 If it was a legit message, it may still be delivered to the target recipient(s).
++
++But exim will go on to treat the message as if it had accepted
++it. This should be used with extreme caution, please look into
++the examples document for possible usage.
++
++
++
++--------------------------------------------------------------
++End of file
++--------------------------------------------------------------
+diff -urN exim-4.30-orig/doc/exiscan-acl-spec.txt~ exim-4.30/doc/exiscan-acl-spec.txt~
+--- exim-4.30-orig/doc/exiscan-acl-spec.txt~ Thu Jan 1 01:00:00 1970
++++ exim-4.30/doc/exiscan-acl-spec.txt~ Mon Jan 19 21:24:51 2004
+@@ -0,0 +1,627 @@
++--------------------------------------------------------------
++The exiscan-acl patch for exim4 - Documentation
++--------------------------------------------------------------
++(c) Tom Kistner <tom@duncanthrax.net> 2003-????
++License: GPL
++
++The exiscan-acl patch adds content scanning to the exim4 ACL
++system. It supports the following scanning features:
++
++ - MIME ACL that is called for all MIME parts in
++ incoming MIME messages.
++ - Antivirus using 3rd party scanners.
++ - Antispam using SpamAssassin.
++ - Regular expression match against headers, bodies, raw
++ MIME parts and decoded MIME parts.
++
++These features are hooked into exim by extending exim's ACL
++system. The patch adds expansion variables and ACL conditions.
++These conditions are designed to be used in the acl_smtp_data
++ACL. It is run when the sending host has completed the DATA
++phase and is waiting for our final response to his end-of-data
++marker. This allows us to reject messages containing
++unwanted content at that stage.
++
++The default exim configure file contains commented
++configuration examples for some features of exiscan-acl.
++
++
++0. Overall concept / Overview
++--------------------------------------------------------------
++
++The exiscan-acl patch extends Exims with mechanisms to
++deal with the message body content. Most of these additions
++affect the ACL system. The exiscan patch adds
++
++- A new ACL, called 'acl_smtp_mime' (Please see detailed
++ chapter on this one below).
++- ACL conditions and modifiers
++ o malware (attach 3rd party virus/malware scanner)
++ o spam (attach SpamAssassin)
++ o regex (match regex against message, linewise)
++ o decode (decode MIME part to disk)
++ o mime_regex (match regex against decoded MIME part)
++ o control = fakereject (reject but really accept a message)
++- expansion variables
++ (see chapters below for names and explanations)
++- configuration options in section 1 of Exim's configure file.
++ o av_scanner (type and options of the AV scanner)
++ o spamd_address (network address / socket of spamd daemon).
++
++All facilites work on a MBOX copy of the message that is
++temporarily spooled up in a file called:
++
++ <spool_directory>/scan/<message_id>/<message_id>.eml
++
++The .eml extension is a friendly hint to virus scanners that
++they can expect an MBOX-like structure inside that file. The
++file is only spooled up once, when the first exiscan facility
++is called. Subsequent calls to exiscan conditions will just
++open the file again. The directory is recursively removed
++when the acl_smtp_data has finished running. When the MIME
++ACL decodes files, they will be put into that same folder by
++default.
++
++
++1. The acl_smtp_mime MIME ACL
++--------------------------------------------------------------
++
++Note: if you are not familiar with exims ACL system, please go
++read the documentation on it, otherwise this chapter will not
++make much sense to you.
++
++Here are the facts on acl_smtp_mime:
++
++ - It is called once for each MIME part of a message,
++ including multipart types, in the sequence of their
++ position in the message.
++
++ - It is called just before the acl_smtp_data ACL. They share
++ a result code (the one assed to the remote system after
++ DATA). When a call to acl_smtp_mime does not yield
++ "accept", ACL processing is aborted and the respective
++ result code is sent to the remote mailer. This means that
++ the acl_smtp_data is NOT called any more.
++
++ - It is ONLY called if the message has a MIME-Version header.
++
++ - MIME parts will NOT be dumped to disk by default, you have
++ to call the "decode" condition to do that (see further
++ below).
++
++ - For RFC822 attachments (these are messages attached to
++ messages, with a content-type of 'message/rfc822'),
++ the ACL is called again in the same manner as
++ for the "primary" message, only that the $mime_is_rfc822
++ expansion variable is set (see below). These messages
++ are always decoded to disk before being checked, but
++ the files are unlinked once the check is done.
++
++To activate acl_smtp_mime, you need to add assign it the name
++of an ACL entry in section 1 of the config file, and then
++write that ACL in the ACL section, like:
++
++ /* ---------------
++
++ # -- section 1 ----
++ [ ... ]
++ acl_smtp_mime = my_mime_acl
++ [ ... ]
++
++ # -- acl section ----
++ begin acl
++
++ [ ... ]
++
++ my_mime_acl:
++
++ < ACL logic >
++
++ [ ... ]
++
++ ---------------- */
++
++The following list describes all expansion variables that are
++available in the MIME ACL:
++
++ $mime_content_type
++ ------------------
++ A very important variable. If the MIME part has a "Content
++ -Type:" header, this variable will contain its value,
++ lowercased, and WITHOUT any options (like "name" or
++ "charset", see below for these). Here are some examples of
++ popular MIME types, as they may appear in this variable:
++
++ text/plain
++ text/html
++ application/octet-stream
++ image/jpeg
++ audio/midi
++
++ If the MIME part has no "Content-Type:" header, this
++ variable is the empty string.
++
++
++ $mime_filename
++ --------------
++ Another important variable, possibly the most important one.
++ It contains a proposed filename for an attachment, if one
++ was found in either the "Content-Type:" or "Content
++ -Disposition" headers. The filename will be RFC2047
++ decoded, however NO additional sanity checks are done. See
++ instructions on "decode" further below. If no filename was
++ found, this variable is the empty string.
++
++
++ $mime_charset
++ -------------
++ Contains the charset identifier, if one was found in the
++ "Content-Type:" header. Examples for charset identifiers are
++
++ us-ascii
++ gb2312 (Chinese)
++ iso-8859-1
++
++ Please note that this value will NOT be normalized, so you
++ should do matches case-insensitively.
++
++
++ $mime_boundary
++ --------------
++ If the current part is a multipart (see $mime_is_multipart)
++ below, it SHOULD have a boundary string. It is stored in
++ this variable. If the current part has no boundary parameter
++ in the "Content-Type:" header, this variable contains the
++ empty string.
++
++
++ $mime_content_disposition
++ -------------------------
++ Contains the normalized content of the "Content
++ -Disposition:" header. You can expect strings like
++ "attachment" or "inline" here.
++
++
++ $mime_content_transfer_encoding
++ -------------------------------
++ Contains the normalized content of the "Content
++ -transfer-encoding:" header. This is a symbolic name for
++ an encoding type. Typical values are "base64" and "quoted
++ -printable".
++
++
++ $mime_content_id
++ ----------------
++ Contains the normalized content of the "Content
++ -ID:" header. This is a unique ID that can be used to
++ reference a part from another part.
++
++
++ $mime_content_description
++ -------------------------
++ Contains the normalized content of the "Content
++ -Description:" header. It can contain a human-readable
++ description of the parts content. Some implementations will
++ repeat the filename for attachments here, but they are
++ usually only used for display purposes.
++
++
++ $mime_part_count
++ ----------------
++ This is a counter that is raised for each processed MIME
++ part. It starts at zero for the very first part (which is
++ usually a multipart). The counter is per-message, so it is
++ reset when processing RFC822 attachments (see
++ $mime_is_rfc822). The counter stays set after acl_smtp_mime
++ is complete, so you can use it in the DATA ACL to determine
++ the number of MIME parts of a message. For non-MIME
++ messages, this variable will contain the value -1.
++
++
++ $mime_is_multipart
++ ------------------
++ A "helper" flag that is true (1) when the current
++ part has the main type "multipart", for example
++ "multipart/alternative" or "multipart/mixed". Since
++ multipart entities only serve as containers for other parts,
++ you may not want to carry out specific actions on them.
++
++
++ $mime_is_rfc822
++ ---------------
++ This flag is true (1) if the current part is NOT a part of
++ the checked message itself, but part of an attached message.
++ Attached message decoding is fully recursive.
++
++
++ $mime_decoded_filename
++ ----------------------
++ This variable is only set after the "decode" condition (see
++ below) has been successfully run. It contains the full path
++ and file name of the file containing the decoded data.
++
++
++The expansion variables only reflect the content of the MIME
++headers for each part. To actually decode the part to disk,
++you can use the "decode" condition. The general syntax is
++
++decode = [/<PATH>/]<FILENAME>
++
++The right hand side is expanded before use. After expansion,
++the value can
++
++ - be '0' or 'false', in which case no decoding is done.
++ - be the string 'default'. In that case, the file will be
++ put in the temporary "default" directory
++ <spool_directory>/scan/<message_id>/
++ with a sequential file name, consisting of the message id
++ and a sequence number. The full path and name is available
++ in $mime_decoded_filename after decoding.
++ - start with a slash. If the full name is an existing
++ directory, it will be used as a replacement for the
++ "default" directory. The filename will then also be
++ sequentially assigned. If the name does not exist, it will
++ be used as the full path and file name.
++ - not start with a slash. It will then be used as the
++ filename, and the default path will be used.
++
++You can easily decode a file with its original, proposed
++filename using "decode = $mime_filename". However, you should
++keep in mind that $mime_filename might contain anything. If
++you place files outside of the default path, they will not be
++automatically unlinked.
++
++The MIME ACL also supports the regex= and mime_regex=
++conditions. You can use those to match regular expressions
++against raw and decoded MIME parts, respectively. Read the
++next section for more information on these conditions.
++
++
++
++2. Match message or MIME parts against regular expressions
++--------------------------------------------------------------
++
++The "regex" condition takes one or more regular expressions as
++arguments and matches them against the full message (when
++called in the DATA ACL) or a raw MIME part (when called in the
++MIME ACL). The "regex" condition matches linewise, with a
++maximum line length of 32k characters. That means you can't
++have multiline matches with the "regex" condition.
++
++The "mime_regex" can only be called in the MIME ACL. It
++matches up to 32k of decoded content (the whole content at
++once, not linewise). If the part has not been decoded with the
++"decode" condition earlier in the ACL, it is decoded
++automatically when "mime_regex" is executed (using default
++path and filename values). If the decoded data is larger
++than 32k, only the first 32k characters will be
++matched.
++
++The regular expressions are passed as a colon-separated list.
++To include a literal colon, you must double it. Since the
++whole right-hand side string is expanded before being used,
++you must also escape dollar ($) signs with backslashes.
++
++Here is a simple example:
++
++/* ----------------------
++deny message = contains blacklisted regex ($regex_match_string)
++ regex = [Mm]ortgage : URGENT BUSINESS PROPOSAL
++----------------------- */
++
++The conditions returns true if one of the regular
++expressions has matched. The $regex_match_string expansion
++variable is then set up and contains the matching regular
++expression.
++
++Warning: With large messages, these conditions can be fairly
++CPU-intensive.
++
++
++
++3. Antispam measures with SpamAssassin
++--------------------------------------------------------------
++
++The "spam" ACL condition calls SpamAssassin's "spamd" daemon
++to get a spam-score and a report for the message. You must
++first install SpamAssassin. You can get it
++at http://www.spamassassin.org, or, if you have a working
++Perl installation, you can use CPAN by calling
++
++perl -MCPAN -e 'install Mail::SpamAssassin'
++
++SpamAssassin has its own set of configuration files. Please
++review its documentation to see how you can tweak it. The
++default installation should work nicely, however.
++
++After having installed and configured SpamAssassin, start the
++"spamd" daemon. By default, it listens on 127.0.0.1, TCP port
++783. If you use another host or port for spamd, you must set
++the spamd_address option in Section 1 of the exim
++configuration as follows (example):
++
++spamd_address = 127.0.0.1 783
++
++As of version 2.60, spamd also supports communication over UNIX
++sockets. If you want to use these, supply spamd_address with
++an absolute file name instead of a address/port pair, like:
++
++spamd_address = /var/run/spamd_socket
++
++If you use the above mentioned default, you do NOT need to set
++this option.
++
++To use the antispam facility, put the "spam" condition in a
++DATA ACL block. Here is a very simple example:
++
++/* ---------------
++deny message = This message was classified as SPAM
++ spam = joe
++---------------- */
++
++On the right-hand side of the spam condition, you can put the
++username that SpamAssassin should scan for. That allows you to
++use per-domain or per-user antispam profiles. The right-hand
++side is expanded before being used, so you can put lookups or
++conditions there. When the right-hand side evaluates to "0" or
++"false", no scanning will be done and the condition will fail
++immediately.
++
++If you do not want to scan for a particular user, but rather
++use the SpamAssassin system-wide default profile, you can scan
++for an unknown user, or simply use "nobody".
++
++The "spam" condition will return true if the threshold
++specified in the user's SpamAssassin profile has been matched
++or exceeded. If you want to use the spam condition for its
++side effects (see the variables below), you can make it always
++return "true" by appending ":true" to the username.
++
++When the condition is run, it sets up the following expansion
++variables:
++
++ $spam_score The spam score of the message, for example
++ "3.4" or "30.5". This is useful for
++ inclusion in log or reject messages.
++
++ $spam_score_int The spam score of the message, multiplied
++ by ten, as an integer value. For example
++ "34" or "305". This is useful for numeric
++ comparisons in conditions. See further
++ below for a more complicated example. This
++ variable is special, since it is written
++ to the spool file, so it can be used
++ during the whole life of the message on
++ your exim system, even in routers
++ or transports.
++
++ $spam_bar A string consisting of a number of '+' or
++ '-' characters, representing the
++ spam_score value. A spam score of "4.4"
++ would have a spam_bar of '++++'. This is
++ useful for inclusion in warning headers,
++ since MUAs can match on such strings.
++
++ $spam_report A multiline text table, containing the
++ full SpamAssassin report for the message.
++ Useful for inclusion in headers or reject
++ messages.
++
++The spam condition caches its results. If you call it again
++with the same user name, it will not really scan again, but
++rather return the same values as before.
++
++Finally, here is a commented example on how to use the spam
++condition:
++
++/* ----------------
++# put headers in all messages (no matter if spam or not)
++warn message = X-Spam-Score: $spam_score ($spam_bar)
++ spam = nobody:true
++warn message = X-Spam-Report: $spam_report
++ spam = nobody:true
++
++# add second subject line with *SPAM* marker when message
++# is over threshold
++warn message = Subject: *SPAM* $h_Subject
++ spam = nobody
++
++# reject spam at high scores (> 12)
++deny message = This message scored $spam_score spam points.
++ spam = nobody:true
++ condition = ${if >{$spam_score_int}{120}{1}{0}}
++----------------- */
++
++
++
++4. The "malware" facility
++ Scan messages for viruses using an external virus scanner
++--------------------------------------------------------------
++
++This facility lets you connect virus scanner software to exim.
++It supports a "generic" interface to scanners called via the
++shell, and specialized interfaces for "daemon" type virus
++scanners, who are resident in memory and thus are much faster.
++
++To use this facility, you MUST set the "av_scanner" option in
++section 1 of the exim config file. It specifies the scanner
++type to use, and any additional options it needs to run. The
++basic syntax is as follows:
++
++ av_scanner = <scanner-type>:<option1>:<option2>:[...]
++
++The following scanner-types are supported in this release:
++
++ sophie Sophie is a daemon that uses Sophos' libsavi
++ library to scan for viruses. You can get Sophie
++ at http://www.vanja.com/tools/sophie/. The only
++ option for this scanner type is the path to the
++ UNIX socket that Sophie uses for client
++ communication. The default path is
++ /var/run/sophie, so if you are using this, you
++ can omit the option. Example:
++
++ av_scanner = sophie:/tmp/sophie
++
++
++ kavdaemon Kapersky's kavdaemon is a daemon-type scanner.
++ You can get a trial version at
++ http://www.kapersky.com. This scanner type takes
++ one option, which is the path to the daemon's
++ UNIX socket. The default is "/var/run/AvpCtl".
++ Example:
++
++ av_scanner = kavdaemon:/opt/AVP/AvpCtl
++
++
++ clamd Another daemon type scanner, this one is GPL and
++ free. Get it at http://clamav.elektrapro.com/.
++ Clamd does not seem to unpack MIME containers,
++ so it is recommended to use the demime facility
++ with it. It takes one option: either the path
++ and name of a UNIX socket file, or a
++ hostname/port pair, separated by space. If
++ unset, the default is "/tmp/clamd". Example:
++
++ av_scanner = clamd:192.168.2.100 1234
++ or
++ av_scanner = clamd:/opt/clamd/socket
++
++
++ drweb This one is for the DrWeb (http://www.sald.com/)
++ daemon. It takes one argument, either a full
++ path to a UNIX socket, or an IP address and port
++ separated by whitespace. If you omit the
++ argument, the default
++
++ /usr/local/drweb/run/drwebd.sock
++
++ is used. Example:
++
++ av_scanner = drweb:192.168.2.20 31337
++ or
++ av_scanner = drweb:/var/run/drwebd.sock
++
++ Thanks to Alex Miller <asm@abbyy.com.ua> for
++ contributing the code for this scanner.
++
++
++ mksd Yet another daemon type scanner, aimed mainly at
++ Polish users, though some parts of documentation
++ are now avaliable in English. You can get it at
++ http://linux.mks.com.pl/. The only option for
++ this scanner type is the maximum number of
++ processes used simultaneously to scan the
++ attachments, provided that the demime facility
++ is employed and also mksd has been run with
++ at least the same number of child processes.
++ You can safely omit this option, the default
++ value is 1. Example:
++
++ av_scanner = mksd:2
++
++
++ cmdline This is the keyword for the generic command line
++ scanner interface. It can be used to attach
++ virus scanners that are invoked on the shell.
++ This scanner type takes 3 mantadory options:
++
++ - full path and name of the scanner binary, with
++ all command line options and a placeholder
++ (%s) for the directory to scan.
++
++ - A regular expression to match against the
++ STDOUT and STDERR output of the virus scanner.
++ If the expression matches, a virus was found.
++ You must make absolutely sure that this
++ expression only matches on "virus found". This
++ is called the "trigger" expression.
++
++ - Another regular expression, containing exactly
++ ONE pair of braces, to match the name of the
++ virus found in the scanners output. This is
++ called the "name" expression.
++
++ Example:
++
++ Sophos Sweep reports a virus on a line like
++ this:
++
++ Virus 'W32/Magistr-B' found in file ./those.bat
++
++ For the "trigger" expression, we just use the
++ "found" word. For the "name" expression, we want
++ to get the W32/Magistr-B string, so we can match
++ for the single quotes left and right of it,
++ resulting in the regex '(.*)' (WITH the quotes!)
++
++ Altogether, this makes the configuration
++ setting:
++
++ av_scanner = cmdline:\
++ /path/to/sweep -all -rec -archive %s:\
++ found:'(.+)'
++
++
++When av_scanner is correcly set, you can use the "malware"
++condition in the DATA ACL. The condition takes a right-hand
++argument that is expanded before use. It can then be one of
++
++ - "true", "*", or "1", in which case the message is scanned
++ for viruses. The condition will succeed if a virus was
++ found, or fail otherwise. This is the recommended usage.
++
++ - "false" or "0", in which case no scanning is done and the
++ condition will fail immediately.
++
++ - a regular expression, in which case the message is scanned
++ for viruses. The condition will succeed if a virus found
++ found and its name matches the regular expression. This
++ allows you to take special actions on certain types of
++ viruses.
++
++When a virus was found, the condition sets up an expansion
++variable called $malware_name that contains the name of the
++virus found. You should use it in a "message" modifier that
++contains the error returned to the sender.
++
++The malware condition caches its results, so when you use it
++multiple times, the actual scanning process is only carried
++out once.
++
++If your virus scanner cannot unpack MIME and TNEF containers
++itself, you should use the demime condition prior to the
++malware condition.
++
++Here is a simple example:
++
++/* ----------------------
++deny message = This message contains malware ($malware_name)
++ demime = *
++ malware = *
++---------------------- */
++
++
++
++5. The "fakereject" control statement
++ Reject a message while really accepting it.
++--------------------------------------------------------------
++
++When you put "control = fakereject" in an ACL statement, the
++following will happen: If exim would have accepted the
++message, it will tell the remote host that it did not, with a
++message of:
++
++550-FAKE_REJECT id=xxxxxx-xxxxxx-xx
++550-Your message has been rejected but is being kept for evaluation.
++550 If it was a legit message, it may still be delivered to the target recipient(s).
++
++But exim will go on to treat the message as if it had accepted
++it. This should be used with extreme caution, please look into
++the examples document for possible usage.
++
++
++
++--------------------------------------------------------------
++End of file
++--------------------------------------------------------------
+diff -urN exim-4.30-orig/exim_monitor/em_globals.c exim-4.30/exim_monitor/em_globals.c
+--- exim-4.30-orig/exim_monitor/em_globals.c Mon Dec 1 11:15:41 2003
++++ exim-4.30/exim_monitor/em_globals.c Tue Dec 2 12:15:53 2003
+@@ -126,6 +126,8 @@
+ BOOL deliver_manual_thaw = FALSE;
+ BOOL dont_deliver = FALSE;
+
++BOOL fake_reject = FALSE;
++
+ header_line *header_last = NULL;
+ header_line *header_list = NULL;
+
+@@ -135,6 +137,7 @@
+
+ BOOL local_error_message = FALSE;
+ uschar *local_scan_data = NULL;
++uschar *spam_score_int = NULL;
+ BOOL log_timezone = FALSE;
+ int message_age = 0;
+ uschar *message_id;
+diff -urN exim-4.30-orig/scripts/MakeLinks exim-4.30/scripts/MakeLinks
+--- exim-4.30-orig/scripts/MakeLinks Mon Dec 1 11:15:41 2003
++++ exim-4.30/scripts/MakeLinks Wed Jan 7 15:57:29 2004
+@@ -172,15 +172,19 @@
+
+ ln -s ../src/dbfunctions.h dbfunctions.h
+ ln -s ../src/dbstuff.h dbstuff.h
++ln -s ../src/demime.h demime.h
+ ln -s ../src/exim.h exim.h
+ ln -s ../src/functions.h functions.h
+ ln -s ../src/globals.h globals.h
+ ln -s ../src/local_scan.h local_scan.h
+ ln -s ../src/macros.h macros.h
++ln -s ../src/mime.h mime.h
+ ln -s ../src/mytypes.h mytypes.h
+ ln -s ../src/osfunctions.h osfunctions.h
++ln -s ../src/spam.h spam.h
+ ln -s ../src/store.h store.h
+ ln -s ../src/structs.h structs.h
++ln -s ../src/tnef.h tnef.h
+
+ ln -s ../src/acl.c acl.c
+ ln -s ../src/buildconfig.c buildconfig.c
+@@ -190,6 +194,7 @@
+ ln -s ../src/dbfn.c dbfn.c
+ ln -s ../src/debug.c debug.c
+ ln -s ../src/deliver.c deliver.c
++ln -s ../src/demime.c demime.c
+ ln -s ../src/directory.c directory.c
+ ln -s ../src/dns.c dns.c
+ ln -s ../src/drtables.c drtables.c
+@@ -208,7 +213,9 @@
+ ln -s ../src/ip.c ip.c
+ ln -s ../src/log.c log.c
+ ln -s ../src/lss.c lss.c
++ln -s ../src/malware.c malware.c
+ ln -s ../src/match.c match.c
++ln -s ../src/mime.c mime.c
+ ln -s ../src/moan.c moan.c
+ ln -s ../src/parse.c parse.c
+ ln -s ../src/perl.c perl.c
+@@ -216,6 +223,7 @@
+ ln -s ../src/rda.c rda.c
+ ln -s ../src/readconf.c readconf.c
+ ln -s ../src/receive.c receive.c
++ln -s ../src/regex.c regex.c
+ ln -s ../src/retry.c retry.c
+ ln -s ../src/rewrite.c rewrite.c
+ ln -s ../src/rfc2047.c rfc2047.c
+@@ -224,13 +232,16 @@
+ ln -s ../src/sieve.c sieve.c
+ ln -s ../src/smtp_in.c smtp_in.c
+ ln -s ../src/smtp_out.c smtp_out.c
++ln -s ../src/spam.c spam.c
+ ln -s ../src/spool_in.c spool_in.c
++ln -s ../src/spool_mbox.c spool_mbox.c
+ ln -s ../src/spool_out.c spool_out.c
+ ln -s ../src/store.c store.c
+ ln -s ../src/string.c string.c
+ ln -s ../src/tls.c tls.c
+ ln -s ../src/tls-gnu.c tls-gnu.c
+ ln -s ../src/tls-openssl.c tls-openssl.c
++ln -s ../src/tnef.c tnef.c
+ ln -s ../src/tod.c tod.c
+ ln -s ../src/transport.c transport.c
+ ln -s ../src/tree.c tree.c
+diff -urN exim-4.30-orig/src/acl.c exim-4.30/src/acl.c
+--- exim-4.30-orig/src/acl.c Mon Dec 1 11:15:41 2003
++++ exim-4.30/src/acl.c Thu Jan 29 11:50:17 2004
+@@ -7,6 +7,8 @@
+
+ /* Code for handling Access Control Lists (ACLs) */
+
++/* This file has been modified by the exiscan-acl patch. */
++
+ #include "exim.h"
+
+
+@@ -32,19 +34,19 @@
+ /* ACL condition and modifier codes - keep in step with the table that
+ follows. */
+
+-enum { ACLC_ACL, ACLC_AUTHENTICATED, ACLC_CONDITION, ACLC_CONTROL, ACLC_DELAY,
++enum { ACLC_ACL, ACLC_AUTHENTICATED, ACLC_CONDITION, ACLC_CONTROL, ACLC_DECODE, ACLC_DELAY, ACLC_DEMIME,
+ ACLC_DNSLISTS, ACLC_DOMAINS, ACLC_ENCRYPTED, ACLC_ENDPASS, ACLC_HOSTS,
+- ACLC_LOCAL_PARTS, ACLC_LOG_MESSAGE, ACLC_LOGWRITE, ACLC_MESSAGE,
+- ACLC_RECIPIENTS, ACLC_SENDER_DOMAINS, ACLC_SENDERS, ACLC_SET, ACLC_VERIFY };
++ ACLC_LOCAL_PARTS, ACLC_LOG_MESSAGE, ACLC_LOGWRITE, ACLC_MALWARE, ACLC_MESSAGE, ACLC_MIME_REGEX,
++ ACLC_RECIPIENTS, ACLC_REGEX, ACLC_SENDER_DOMAINS, ACLC_SENDERS, ACLC_SET, ACLC_SPAM, ACLC_VERIFY };
+
+ /* ACL conditions/modifiers: "delay", "control", "endpass", "message",
+ "log_message", "logwrite", and "set" are modifiers that look like conditions
+ but always return TRUE. They are used for their side effects. */
+
+ static uschar *conditions[] = { US"acl", US"authenticated", US"condition",
+- US"control", US"delay", US"dnslists", US"domains", US"encrypted",
+- US"endpass", US"hosts", US"local_parts", US"log_message", US"logwrite",
+- US"message", US"recipients", US"sender_domains", US"senders", US"set",
++ US"control", US"decode", US"delay", US"demime", US"dnslists", US"domains", US"encrypted",
++ US"endpass", US"hosts", US"local_parts", US"log_message", US"logwrite", US"malware",
++ US"message", US"mime_regex", US"recipients", US"regex", US"sender_domains", US"senders", US"set", US"spam",
+ US"verify" };
+
+ /* Flags to indicate for which conditions /modifiers a string expansion is done
+@@ -56,7 +58,9 @@
+ FALSE, /* authenticated */
+ TRUE, /* condition */
+ TRUE, /* control */
++ TRUE, /* decode */
+ TRUE, /* delay */
++ TRUE, /* demime */
+ TRUE, /* dnslists */
+ FALSE, /* domains */
+ FALSE, /* encrypted */
+@@ -65,11 +69,15 @@
+ FALSE, /* local_parts */
+ TRUE, /* log_message */
+ TRUE, /* logwrite */
++ TRUE, /* malware */
+ TRUE, /* message */
++ TRUE, /* mime_regex */
+ FALSE, /* recipients */
++ TRUE, /* regex */
+ FALSE, /* sender_domains */
+ FALSE, /* senders */
+ TRUE, /* set */
++ TRUE, /* spam */
+ TRUE /* verify */
+ };
+
+@@ -80,7 +88,9 @@
+ FALSE, /* authenticated */
+ FALSE, /* condition */
+ TRUE, /* control */
++ FALSE, /* decode */
+ TRUE, /* delay */
++ FALSE, /* demime */
+ FALSE, /* dnslists */
+ FALSE, /* domains */
+ FALSE, /* encrypted */
+@@ -89,11 +99,15 @@
+ FALSE, /* local_parts */
+ TRUE, /* log_message */
+ TRUE, /* log_write */
++ FALSE, /* malware */
+ TRUE, /* message */
++ FALSE, /* mime_regex */
+ FALSE, /* recipients */
++ FALSE, /* regex */
+ FALSE, /* sender_domains */
+ FALSE, /* senders */
+ TRUE, /* set */
++ FALSE, /* spam */
+ FALSE /* verify */
+ };
+
+@@ -102,6 +116,7 @@
+
+ static unsigned int cond_forbids[] = {
+ 0, /* acl */
++
+ (1<<ACL_WHERE_NOTSMTP)|(1<<ACL_WHERE_CONNECT)| /* authenticated */
+ (1<<ACL_WHERE_HELO),
+ 0, /* condition */
+@@ -112,12 +127,29 @@
+ (1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
+ (1<<ACL_WHERE_STARTTLS)|(ACL_WHERE_VRFY),
+
++ (1<<ACL_WHERE_NOTSMTP)|(1<<ACL_WHERE_AUTH)| /* decode */
++ (1<<ACL_WHERE_CONNECT)|(1<<ACL_WHERE_HELO)|
++ (1<<ACL_WHERE_DATA)|
++ (1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
++ (1<<ACL_WHERE_MAILAUTH)|
++ (1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
++ (1<<ACL_WHERE_VRFY),
++
+ 0, /* delay */
++
++ (1<<ACL_WHERE_NOTSMTP)|(1<<ACL_WHERE_AUTH)| /* demime */
++ (1<<ACL_WHERE_CONNECT)|(1<<ACL_WHERE_HELO)|
++ (1<<ACL_WHERE_MIME)|
++ (1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
++ (1<<ACL_WHERE_MAILAUTH)|
++ (1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
++ (1<<ACL_WHERE_VRFY),
++
+ (1<<ACL_WHERE_NOTSMTP), /* dnslists */
+
+ (1<<ACL_WHERE_NOTSMTP)|(1<<ACL_WHERE_AUTH)| /* domains */
+ (1<<ACL_WHERE_CONNECT)|(1<<ACL_WHERE_HELO)|
+- (1<<ACL_WHERE_DATA)|
++ (1<<ACL_WHERE_DATA)|(1<<ACL_WHERE_MIME)|
+ (1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
+ (1<<ACL_WHERE_MAILAUTH)|
+ (1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
+@@ -125,22 +157,34 @@
+
+ (1<<ACL_WHERE_NOTSMTP)|(1<<ACL_WHERE_CONNECT)| /* encrypted */
+ (1<<ACL_WHERE_HELO),
++
+ 0, /* endpass */
++
+ (1<<ACL_WHERE_NOTSMTP), /* hosts */
+
+ (1<<ACL_WHERE_NOTSMTP)|(1<<ACL_WHERE_AUTH)| /* local_parts */
+ (1<<ACL_WHERE_CONNECT)|(1<<ACL_WHERE_HELO)|
+- (1<<ACL_WHERE_DATA)|
++ (1<<ACL_WHERE_DATA)|(1<<ACL_WHERE_MIME)|
+ (1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
+ (1<<ACL_WHERE_MAILAUTH)|
+ (1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
+ (1<<ACL_WHERE_VRFY),
+
+ 0, /* log_message */
++
+ 0, /* logwrite */
++
++ (1<<ACL_WHERE_NOTSMTP)|(1<<ACL_WHERE_AUTH)| /* malware */
++ (1<<ACL_WHERE_CONNECT)|(1<<ACL_WHERE_HELO)|
++ (1<<ACL_WHERE_MIME)|
++ (1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
++ (1<<ACL_WHERE_MAILAUTH)|
++ (1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
++ (1<<ACL_WHERE_VRFY),
++
+ 0, /* message */
+
+- (1<<ACL_WHERE_NOTSMTP)|(1<<ACL_WHERE_AUTH)| /* recipients */
++ (1<<ACL_WHERE_NOTSMTP)|(1<<ACL_WHERE_AUTH)| /* mime_regex */
+ (1<<ACL_WHERE_CONNECT)|(1<<ACL_WHERE_HELO)|
+ (1<<ACL_WHERE_DATA)|
+ (1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
+@@ -148,6 +192,21 @@
+ (1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
+ (1<<ACL_WHERE_VRFY),
+
++ (1<<ACL_WHERE_NOTSMTP)|(1<<ACL_WHERE_AUTH)| /* recipients */
++ (1<<ACL_WHERE_CONNECT)|(1<<ACL_WHERE_HELO)|
++ (1<<ACL_WHERE_DATA)|(1<<ACL_WHERE_MIME)|
++ (1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
++ (1<<ACL_WHERE_MAILAUTH)|
++ (1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
++ (1<<ACL_WHERE_VRFY),
++
++ (1<<ACL_WHERE_NOTSMTP)|(1<<ACL_WHERE_AUTH)| /* regex */
++ (1<<ACL_WHERE_CONNECT)|(1<<ACL_WHERE_HELO)|
++ (1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
++ (1<<ACL_WHERE_MAILAUTH)|
++ (1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
++ (1<<ACL_WHERE_VRFY),
++
+ (1<<ACL_WHERE_AUTH)|(1<<ACL_WHERE_CONNECT)| /* sender_domains */
+ (1<<ACL_WHERE_HELO)|
+ (1<<ACL_WHERE_MAILAUTH)|
+@@ -162,6 +221,14 @@
+
+ 0, /* set */
+
++ (1<<ACL_WHERE_NOTSMTP)|(1<<ACL_WHERE_AUTH)| /* spam */
++ (1<<ACL_WHERE_CONNECT)|(1<<ACL_WHERE_HELO)|
++ (1<<ACL_WHERE_MIME)|
++ (1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
++ (1<<ACL_WHERE_MAILAUTH)|
++ (1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
++ (1<<ACL_WHERE_VRFY),
++
+ /* Certain types of verify are always allowed, so we let it through
+ always and check in the verify function itself */
+
+@@ -447,7 +514,7 @@
+ /* If this isn't a message ACL, we can't do anything with a user message.
+ Log an error. */
+
+-if (where != ACL_WHERE_MAIL && where != ACL_WHERE_RCPT &&
++if (where != ACL_WHERE_MAIL && where != ACL_WHERE_MIME && where != ACL_WHERE_RCPT &&
+ where != ACL_WHERE_DATA && where != ACL_WHERE_NOTSMTP)
+ {
+ log_write(0, LOG_MAIN|LOG_PANIC, "ACL \"warn\" with \"message\" setting "
+@@ -1129,6 +1196,10 @@
+ deliver_freeze = TRUE;
+ deliver_frozen_at = time(NULL);
+ }
++ else if (Ustrcmp(arg, "fakereject") == 0)
++ {
++ fake_reject = TRUE;
++ }
+ else if (Ustrcmp(arg, "queue_only") == 0)
+ {
+ queue_only_policy = TRUE;
+@@ -1163,6 +1234,30 @@
+ rc = verify_check_dnsbl(&arg);
+ break;
+
++ case ACLC_DECODE:
++ rc = mime_decode(&arg);
++ break;
++
++ case ACLC_MIME_REGEX:
++ rc = mime_regex(&arg);
++ break;
++
++ case ACLC_DEMIME:
++ rc = demime(&arg);
++ break;
++
++ case ACLC_MALWARE:
++ rc = malware(&arg);
++ break;
++
++ case ACLC_SPAM:
++ rc = spam(&arg);
++ break;
++
++ case ACLC_REGEX:
++ rc = regex(&arg);
++ break;
++
+ case ACLC_DOMAINS:
+ rc = match_isinlist(addr->domain, &arg, 0, &domainlist_anchor,
+ addr->domain_cache, MCL_DOMAIN, TRUE, &deliver_domain_data);
+@@ -1823,6 +1918,7 @@
+ if (where != ACL_WHERE_MAIL &&
+ where != ACL_WHERE_RCPT &&
+ where != ACL_WHERE_DATA &&
++ where != ACL_WHERE_MIME &&
+ where != ACL_WHERE_NOTSMTP)
+ {
+ log_write(0, LOG_MAIN|LOG_PANIC, "\"discard\" verb not allowed in %s "
+diff -urN exim-4.30-orig/src/configure.default exim-4.30/src/configure.default
+--- exim-4.30-orig/src/configure.default Mon Dec 1 11:15:41 2003
++++ exim-4.30/src/configure.default Tue Mar 2 13:13:09 2004
+@@ -108,6 +108,26 @@
+
+ # You should not change that setting until you understand how ACLs work.
+
++# The following ACL entries are used if you want to do content scanning with
++# the exiscan-acl patch. When you uncomment one of these lines, you must also
++# review the respective entries in the ACL section further below.
++
++# acl_smtp_mime = acl_check_mime
++# acl_smtp_data = acl_check_content
++
++# This configuration variable defines the virus scanner that is used with
++# the 'malware' ACL condition of the exiscan acl-patch. If you do not use
++# virus scanning, leave it commented. Please read doc/exiscan-acl-readme.txt
++# for a list of supported scanners.
++
++# av_scanner = sophie:/var/run/sophie
++
++# The following setting is only needed if you use the 'spam' ACL condition
++# of the exiscan-acl patch. It specifies on which host and port the SpamAssassin
++# "spamd" daemon is listening. If you do not use this condition, or you use
++# the default of "127.0.0.1 783", you can omit this option.
++
++# spamd_address = 127.0.0.1 783
+
+ # Specify the domain you want to be added to all unqualified addresses
+ # here. An unqualified address is one that does not contain an "@" character
+@@ -340,6 +360,56 @@
+ deny message = relay not permitted
+
+
++# These access control lists are used for content scanning with the exiscan-acl
++# patch. You must also uncomment the entries for acl_smtp_data and acl_smtp_mime
++# (scroll up), otherwise the ACLs will not be used. IMPORTANT: the default entries here
++# should be treated as EXAMPLES. You MUST read the file doc/exiscan-acl-spec.txt
++# to fully understand what you are doing ...
++
++acl_check_mime:
++
++ # Decode MIME parts to disk. This will support virus scanners later.
++ warn decode = default
++
++ # File extension filtering.
++ deny message = Blacklisted file extension detected
++ condition = ${if match \
++ {${lc:$mime_filename}} \
++ {\N(\.exe|\.pif|\.bat|\.scr|\.lnk|\.com)$\N} \
++ {1}{0}}
++
++ # Reject messages that carry chinese character sets.
++ # WARNING: This is an EXAMPLE.
++ deny message = Sorry, noone speaks chinese here
++ condition = ${if eq{$mime_charset}{gb2312}{1}{0}}
++
++ accept
++
++acl_check_content:
++
++ # Reject virus infested messages.
++ deny message = This message contains malware ($malware_name)
++ malware = *
++
++ # Always add X-Spam-Score and X-Spam-Report headers, using SA system-wide settings
++ # (user "nobody"), no matter if over threshold or not.
++ warn message = X-Spam-Score: $spam_score ($spam_bar)
++ spam = nobody:true
++ warn message = X-Spam-Report: $spam_report
++ spam = nobody:true
++
++ # Add X-Spam-Flag if spam is over system-wide threshold
++ warn message = X-Spam-Flag: YES
++ spam = nobody
++
++ # Reject spam messages with score over 10, using an extra condition.
++ deny message = This message scored $spam_score points. Congratulations!
++ spam = nobody:true
++ condition = ${if >{$spam_score_int}{100}{1}{0}}
++
++ # finally accept all the rest
++ accept
++
+
+ ######################################################################
+ # ROUTERS CONFIGURATION #
+diff -urN exim-4.30-orig/src/demime.c exim-4.30/src/demime.c
+--- exim-4.30-orig/src/demime.c Thu Jan 1 01:00:00 1970
++++ exim-4.30/src/demime.c Tue Mar 2 13:43:47 2004
+@@ -0,0 +1,1276 @@
++/*************************************************
++* Exim - an Internet mail transport agent *
++*************************************************/
++
++/* This file is part of the exiscan-acl content scanner
++patch. It is NOT part of the standard exim distribution. */
++
++/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003-???? */
++/* License: GPL */
++
++/* Code for unpacking MIME containers. Called from acl.c. */
++
++#include "exim.h"
++#include "demime.h"
++
++uschar demime_reason_buffer[1024];
++struct file_extension *file_extensions = NULL;
++
++int demime(uschar **listptr) {
++ int sep = 0;
++ uschar *list = *listptr;
++ uschar *option;
++ uschar option_buffer[64];
++ unsigned long long mbox_size;
++ FILE *mbox_file;
++ uschar defer_error_buffer[1024];
++ int demime_rc = 0;
++
++ /* reset found_extension variable */
++ found_extension = NULL;
++
++ /* try to find 1st option */
++ if ((option = string_nextinlist(&list, &sep,
++ option_buffer,
++ sizeof(option_buffer))) != NULL) {
++
++ /* parse 1st option */
++ if ( (Ustrcmp(option,"false") == 0) || (Ustrcmp(option,"0") == 0) ) {
++ /* explicitly no demimeing */
++ return FAIL;
++ };
++ }
++ else {
++ /* no options -> no demimeing */
++ return FAIL;
++ };
++
++ /* make sure the eml mbox file is spooled up */
++ mbox_file = spool_mbox(&mbox_size);
++
++ if (mbox_file == NULL) {
++ /* error while spooling */
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "demime acl condition: error while creating mbox spool file");
++ return DEFER;
++ };
++
++ /* call demimer if not already done earlier */
++ if (!demime_ok)
++ demime_rc = mime_demux(mbox_file, defer_error_buffer);
++
++ fclose(mbox_file);
++
++ if (demime_rc == DEFER) {
++ /* temporary failure (DEFER => DEFER) */
++ log_write(0, LOG_MAIN,
++ "demime acl condition: %s", defer_error_buffer);
++ return DEFER;
++ };
++
++ /* set demime_ok to avoid unpacking again */
++ demime_ok = 1;
++
++ /* check for file extensions, if there */
++ while (option != NULL) {
++ struct file_extension *this_extension = file_extensions;
++
++ /* Look for the wildcard. If it is found, we always return true.
++ The user must then use a custom condition to evaluate demime_errorlevel */
++ if (Ustrcmp(option,"*") == 0) {
++ found_extension = NULL;
++ return OK;
++ };
++
++ /* loop thru extension list */
++ while (this_extension != NULL) {
++ if (strcmpic(option, this_extension->file_extension_string) == 0) {
++ /* found one */
++ found_extension = this_extension->file_extension_string;
++ return OK;
++ };
++ this_extension = this_extension->next;
++ };
++
++ /* grab next extension from option list */
++ option = string_nextinlist(&list, &sep,
++ option_buffer,
++ sizeof(option_buffer));
++ };
++
++ /* nothing found */
++ return FAIL;
++}
++
++
++/*************************************************
++* unpack TNEF in given directory *
++*************************************************/
++
++int mime_unpack_tnef(uschar *directory) {
++ uschar filepath[1024];
++ int n;
++ struct dirent *entry;
++ DIR *tempdir;
++
++ /* open the dir */
++ tempdir = opendir(CS directory);
++ if (tempdir == NULL) {
++ return -2;
++ };
++
++ /* loop thru dir */
++ n = 0;
++ do {
++ entry = readdir(tempdir);
++ /* break on end of list */
++ if (entry == NULL) break;
++ snprintf(CS filepath,1024,"%s/%s",directory,entry->d_name);
++ if ( (Ustrcmp(entry->d_name,"..") != 0) && (Ustrcmp(entry->d_name,".") != 0) && (Ustrcmp(entry->d_name,"winmail.dat") == 0) ) {
++ TNEF_set_path(CS directory);
++ n = TNEF_main(CS filepath);
++ };
++ } while (1);
++
++ closedir(tempdir);
++ return 0;
++}
++
++
++/*************************************************
++* small hex_str -> integer conversion function *
++*************************************************/
++
++/* needed for quoted-printable
++*/
++
++unsigned int mime_hstr_i(uschar *cptr) {
++ unsigned int i, j = 0;
++
++ while (cptr && *cptr && isxdigit(*cptr)) {
++ i = *cptr++ - '0';
++ if (9 < i) i -= 7;
++ j <<= 4;
++ j |= (i & 0x0f);
++ }
++
++ return(j);
++}
++
++
++/*************************************************
++* decode quoted-printable chars *
++*************************************************/
++
++/* gets called when we hit a =
++ returns: new pointer position
++ result code in c:
++ -2 - decode error
++ -1 - soft line break, no char
++ 0-255 - char to write
++*/
++
++uschar *mime_decode_qp(uschar *qp_p,int *c) {
++ uschar hex[] = {0,0,0};
++ int nan = 0;
++ uschar *initial_pos = qp_p;
++
++ /* advance one char */
++ qp_p++;
++
++ REPEAT_FIRST:
++ if ( (*qp_p == '\t') || (*qp_p == ' ') || (*qp_p == '\r') ) {
++ /* tab or whitespace may follow
++ just ignore it, but remember
++ that this is not a valid hex
++ encoding any more */
++ nan = 1;
++ qp_p++;
++ goto REPEAT_FIRST;
++ }
++ else if ( (('0' <= *qp_p) && (*qp_p <= '9')) || (('A' <= *qp_p) && (*qp_p <= 'F')) || (('a' <= *qp_p) && (*qp_p <= 'f')) ) {
++ /* this is a valid hex char, if nan is unset */
++ if (nan) {
++ /* this is illegal */
++ *c = -2;
++ return initial_pos;
++ }
++ else {
++ hex[0] = *qp_p;
++ qp_p++;
++ };
++ }
++ else if (*qp_p == '\n') {
++ /* hit soft line break already, continue */
++ *c = -1;
++ return qp_p;
++ }
++ else {
++ /* illegal char here */
++ *c = -2;
++ return initial_pos;
++ };
++
++ if ( (('0' <= *qp_p) && (*qp_p <= '9')) || (('A' <= *qp_p) && (*qp_p <= 'F')) || (('a' <= *qp_p) && (*qp_p <= 'f')) ) {
++ if (hex[0] > 0) {
++ hex[1] = *qp_p;
++ /* do hex conversion */
++ *c = mime_hstr_i(hex);
++ qp_p++;
++ return qp_p;
++ }
++ else {
++ /* huh ? */
++ *c = -2;
++ return initial_pos;
++ };
++ }
++ else {
++ /* illegal char */
++ *c = -2;
++ return initial_pos;
++ };
++
++}
++
++
++/*************************************************
++* open new dump file *
++*************************************************/
++
++/* open new dump file
++ returns: -2 soft error
++ or file #, FILE * in f
++*/
++
++int mime_get_dump_file(uschar *extension, FILE **f, uschar *info) {
++ uschar file_name[1024];
++ int result;
++ unsigned int file_nr;
++ uschar default_extension[] = ".com";
++ uschar *p;
++
++ if (extension == NULL)
++ extension = default_extension;
++
++ /* scan the proposed extension.
++ if it is longer than 4 chars, or
++ contains exotic chars, use the default extension */
++
++/* if (Ustrlen(extension) > 4) {
++ extension = default_extension;
++ };
++*/
++
++ p = extension+1;
++
++ while (*p != 0) {
++ *p = (uschar)tolower((uschar)*p);
++ if ( (*p < 97) || (*p > 122) ) {
++ extension = default_extension;
++ break;
++ };
++ p++;
++ };
++
++ /* find a new file to write to */
++ file_nr = 0;
++ do {
++ struct stat mystat;
++
++ snprintf(CS file_name,1024,"%s/scan/%s/%s-%05u%s",spool_directory,message_id,message_id,file_nr,extension);
++ file_nr++;
++ if (file_nr >= MIME_SANITY_MAX_DUMP_FILES) {
++ /* max parts reached */
++ mime_trigger_error(MIME_ERRORLEVEL_TOO_MANY_PARTS);
++ break;
++ };
++ result = stat(CS file_name,&mystat);
++ }
++ while(result != -1);
++
++ *f = fopen(CS file_name,"w+");
++ if (*f == NULL) {
++ /* cannot open new dump file, disk full ? -> soft error */
++ snprintf(CS info, 1024,"unable to open dump file");
++ return -2;
++ };
++
++ return file_nr;
++}
++
++
++/*************************************************
++* Find a string in a mime header *
++*************************************************/
++
++/* Find a string in a mime header, and optionally fill in
++ the value associated with it into *value
++
++ returns: 0 - nothing found
++ 1 - found param
++ 2 - found param + value
++*/
++
++int mime_header_find(uschar *header, uschar *param, uschar **value) {
++ uschar *needle;
++
++ needle = strstric(header,param,FALSE);
++ if (needle != NULL) {
++ if (value != NULL) {
++ needle += Ustrlen(param);
++ if (*needle == '=') {
++ uschar *value_start;
++ uschar *value_end;
++
++ value_start = needle + 1;
++ value_end = strstric(value_start,US";",FALSE);
++ if (value_end != NULL) {
++ /* allocate mem for value */
++ *value = (uschar *)malloc((value_end - value_start)+1);
++ if (*value == NULL)
++ return 0;
++
++ Ustrncpy(*value,value_start,(value_end - value_start));
++ (*value)[(value_end - value_start)] = '\0';
++ return 2;
++ };
++ };
++ };
++ return 1;
++ };
++ return 0;
++}
++
++
++/*************************************************
++* Read a line of MIME input *
++*************************************************/
++/* returns status code, one of
++ MIME_READ_LINE_EOF 0
++ MIME_READ_LINE_OK 1
++ MIME_READ_LINE_OVERFLOW 2
++
++ In header mode, the line will be "cooked".
++*/
++
++int mime_read_line(FILE *f, int mime_demux_mode, uschar *buffer, long *num_copied) {
++ int c = EOF;
++ int done = 0;
++ int header_value_mode = 0;
++ int header_open_brackets = 0;
++
++ *num_copied = 0;
++
++ while(!done) {
++
++ c = fgetc(f);
++ if (c == EOF) break;
++
++ /* --------- header mode -------------- */
++ if (mime_demux_mode == MIME_DEMUX_MODE_MIME_HEADERS) {
++
++ /* always skip CRs */
++ if (c == '\r') continue;
++
++ if (c == '\n') {
++ if ((*num_copied) > 0) {
++ /* look if next char is '\t' or ' ' */
++ c = fgetc(f);
++ if (c == EOF) break;
++ if ( (c == '\t') || (c == ' ') ) continue;
++ ungetc(c,f);
++ };
++ /* end of the header, terminate with ';' */
++ c = ';';
++ done = 1;
++ };
++
++ /* skip control characters */
++ if (c < 32) continue;
++
++ /* skip whitespace + tabs */
++ if ( (c == ' ') || (c == '\t') )
++ continue;
++
++ if (header_value_mode) {
++ /* --------- value mode ----------- */
++ /* skip quotes */
++ if (c == '"') continue;
++
++ /* leave value mode on ';' */
++ if (c == ';') {
++ header_value_mode = 0;
++ };
++ /* -------------------------------- */
++ }
++ else {
++ /* -------- non-value mode -------- */
++ if (c == '\\') {
++ /* quote next char. can be used
++ to escape brackets. */
++ c = fgetc(f);
++ if (c == EOF) break;
++ }
++ else if (c == '(') {
++ header_open_brackets++;
++ continue;
++ }
++ else if ((c == ')') && header_open_brackets) {
++ header_open_brackets--;
++ continue;
++ }
++ else if ( (c == '=') && !header_open_brackets ) {
++ /* enter value mode */
++ header_value_mode = 1;
++ };
++
++ /* skip chars while we are in a comment */
++ if (header_open_brackets > 0)
++ continue;
++ /* -------------------------------- */
++ };
++ }
++ /* ------------------------------------ */
++ else {
++ /* ----------- non-header mode -------- */
++ /* break on '\n' */
++ if (c == '\n')
++ done = 1;
++ /* ------------------------------------ */
++ };
++
++ /* copy the char to the buffer */
++ buffer[*num_copied] = (uschar)c;
++ /* raise counter */
++ (*num_copied)++;
++
++ /* break if buffer is full */
++ if (*num_copied > MIME_SANITY_MAX_LINE_LENGTH-1) {
++ done = 1;
++ };
++ }
++
++ /* 0-terminate */
++ buffer[*num_copied] = '\0';
++
++ if (*num_copied > MIME_SANITY_MAX_LINE_LENGTH-1)
++ return MIME_READ_LINE_OVERFLOW;
++ else
++ if (c == EOF)
++ return MIME_READ_LINE_EOF;
++ else
++ return MIME_READ_LINE_OK;
++}
++
++
++/*************************************************
++* Check for a MIME boundary *
++*************************************************/
++
++/* returns: 0 - no boundary found
++ 1 - start boundary found
++ 2 - end boundary found
++*/
++
++int mime_check_boundary(uschar *line, struct boundary *boundaries) {
++ struct boundary *thisboundary = boundaries;
++ uschar workbuf[MIME_SANITY_MAX_LINE_LENGTH+1];
++ unsigned int i,j=0;
++
++ /* check for '--' first */
++ if (Ustrncmp(line,"--",2) == 0) {
++
++ /* strip tab and space */
++ for (i = 2; i < strlen(line); i++) {
++ if ((line[i] != ' ') && (line[i] != '\t')) {
++ workbuf[j] = line[i];
++ j++;
++ };
++ };
++ workbuf[j+1]='\0';
++
++ while(thisboundary != NULL) {
++ if (Ustrncmp(workbuf,thisboundary->boundary_string,Ustrlen(thisboundary->boundary_string)) == 0) {
++ if (Ustrncmp(&workbuf[Ustrlen(thisboundary->boundary_string)],"--",2) == 0) {
++ /* final boundary found */
++ return 2;
++ };
++ return 1;
++ };
++ thisboundary = thisboundary->next;
++ };
++ };
++
++ return 0;
++}
++
++
++/*************************************************
++* Check for start of a UUENCODE block *
++*************************************************/
++
++/* returns 0 for no hit,
++ >0 for hit
++*/
++
++int mime_check_uu_start(uschar *line, uschar *uu_file_extension, int *has_tnef) {
++
++ if ( (strncmpic(line,US"begin ",6) == 0)) {
++ uschar *uu_filename = &line[6];
++
++ /* skip perms, if present */
++ Ustrtoul(&line[6],&uu_filename,10);
++
++ /* advance one char */
++ uu_filename++;
++
++ /* This should be the filename.
++ Check if winmail.dat is present,
++ which indicates TNEF. */
++ if (strncmpic(uu_filename,US"winmail.dat",11) == 0) {
++ *has_tnef = 1;
++ };
++
++ /* reverse to dot if present,
++ copy up to 4 chars for the extension */
++ if (Ustrrchr(uu_filename,'.') != NULL)
++ uu_filename = Ustrrchr(uu_filename,'.');
++
++ return sscanf(CS uu_filename, "%4[.0-9A-Za-z]",CS uu_file_extension);
++ }
++ else {
++ /* nothing found */
++ return 0;
++ };
++}
++
++
++/*************************************************
++* Decode a uu line *
++*************************************************/
++
++/* returns number of decoded bytes
++ -2 for soft errors
++*/
++
++int warned_about_uudec_line_sanity_1 = 0;
++int warned_about_uudec_line_sanity_2 = 0;
++long uu_decode_line(uschar *line, uschar **data, long line_len, uschar *info) {
++ uschar *p;
++ long num_decoded = 0;
++ uschar tmp_c;
++ uschar *work;
++ int uu_decoded_line_len, uu_encoded_line_len;
++
++ /* allocate memory for data and work buffer */
++ *data = (uschar *)malloc(line_len);
++ if (*data == NULL) {
++ snprintf(CS info, 1024,"unable to allocate %lu bytes",line_len);
++ return -2;
++ };
++
++ work = (uschar *)malloc(line_len);
++ if (work == NULL) {
++ snprintf(CS info, 1024,"unable to allocate %lu bytes",line_len);
++ return -2;
++ };
++
++ memcpy(work,line,line_len);
++
++ /* First char is line length
++ This is microsofts way of getting it. Scary. */
++ if (work[0] < 32) {
++ /* ignore this line */
++ return 0;
++ }
++ else {
++ uu_decoded_line_len = uudec[work[0]];
++ };
++
++ p = &work[1];
++
++ while (*p > 32) {
++ *p = uudec[*p];
++ p++;
++ };
++
++ uu_encoded_line_len = (p - &work[1]);
++ p = &work[1];
++
++ /* check that resulting line length is a multiple of 4 */
++ if ( ( uu_encoded_line_len % 4 ) != 0) {
++ if (!warned_about_uudec_line_sanity_1) {
++ mime_trigger_error(MIME_ERRORLEVEL_UU_MISALIGNED);
++ warned_about_uudec_line_sanity_1 = 1;
++ };
++ return -1;
++ };
++
++ /* check that the line length matches */
++ if ( ( (((uu_encoded_line_len/4)*3)-2) > uu_decoded_line_len ) || (((uu_encoded_line_len/4)*3) < uu_decoded_line_len) ) {
++ if (!warned_about_uudec_line_sanity_2) {
++ mime_trigger_error(MIME_ERRORLEVEL_UU_LINE_LENGTH);
++ warned_about_uudec_line_sanity_2 = 1;
++ };
++ return -1;
++ };
++
++ while ( ((p - &work[1]) < uu_encoded_line_len) && (num_decoded < uu_decoded_line_len)) {
++
++ /* byte 0 ---------------------- */
++ if ((p - &work[1] + 1) >= uu_encoded_line_len) {
++ return 0;
++ }
++
++ (*data)[num_decoded] = *p;
++ (*data)[num_decoded] <<= 2;
++
++ tmp_c = *(p+1);
++ tmp_c >>= 4;
++ (*data)[num_decoded] |= tmp_c;
++
++ num_decoded++;
++ p++;
++
++ /* byte 1 ---------------------- */
++ if ((p - &work[1] + 1) >= uu_encoded_line_len) {
++ return 0;
++ }
++
++ (*data)[num_decoded] = *p;
++ (*data)[num_decoded] <<= 4;
++
++ tmp_c = *(p+1);
++ tmp_c >>= 2;
++ (*data)[num_decoded] |= tmp_c;
++
++ num_decoded++;
++ p++;
++
++ /* byte 2 ---------------------- */
++ if ((p - &work[1] + 1) >= uu_encoded_line_len) {
++ return 0;
++ }
++
++ (*data)[num_decoded] = *p;
++ (*data)[num_decoded] <<= 6;
++
++ (*data)[num_decoded] |= *(p+1);
++
++ num_decoded++;
++ p+=2;
++
++ };
++
++ return uu_decoded_line_len;
++}
++
++
++/*************************************************
++* Decode a b64 or qp line *
++*************************************************/
++
++/* returns number of decoded bytes
++ -1 for hard errors
++ -2 for soft errors
++*/
++
++int warned_about_b64_line_length = 0;
++int warned_about_b64_line_sanity = 0;
++int warned_about_b64_illegal_char = 0;
++int warned_about_qp_line_sanity = 0;
++long mime_decode_line(int mime_demux_mode,uschar *line, uschar **data, long max_data_len, uschar *info) {
++ uschar *p;
++ long num_decoded = 0;
++ int offset = 0;
++ uschar tmp_c;
++
++ /* allocate memory for data */
++ *data = (uschar *)malloc(max_data_len);
++ if (*data == NULL) {
++ snprintf(CS info, 1024,"unable to allocate %lu bytes",max_data_len);
++ return -2;
++ };
++
++ if (mime_demux_mode == MIME_DEMUX_MODE_BASE64) {
++ /* ---------------------------------------------- */
++
++ /* NULL out trailing '\r' and '\n' chars */
++ while (Ustrrchr(line,'\r') != NULL) {
++ *(Ustrrchr(line,'\r')) = '\0';
++ };
++ while (Ustrrchr(line,'\n') != NULL) {
++ *(Ustrrchr(line,'\n')) = '\0';
++ };
++
++ /* check maximum base 64 line length */
++ if (Ustrlen(line) > MIME_SANITY_MAX_B64_LINE_LENGTH ) {
++ if (!warned_about_b64_line_length) {
++ mime_trigger_error(MIME_ERRORLEVEL_B64_LINE_LENGTH);
++ warned_about_b64_line_length = 1;
++ };
++ };
++
++ p = line;
++ offset = 0;
++ while (*(p+offset) != '\0') {
++ /* hit illegal char ? */
++ if (b64[*(p+offset)] == 128) {
++ if (!warned_about_b64_illegal_char) {
++ mime_trigger_error(MIME_ERRORLEVEL_B64_ILLEGAL_CHAR);
++ warned_about_b64_illegal_char = 1;
++ };
++ offset++;
++ }
++ else {
++ *p = b64[*(p+offset)];
++ p++;
++ };
++ };
++ *p = 255;
++
++ /* check that resulting line length is a multiple of 4 */
++ if ( ( (p - &line[0]) % 4 ) != 0) {
++ if (!warned_about_b64_line_sanity) {
++ mime_trigger_error(MIME_ERRORLEVEL_B64_MISALIGNED);
++ warned_about_b64_line_sanity = 1;
++ };
++ };
++
++ /* line is translated, start bit shifting */
++ p = line;
++ num_decoded = 0;
++
++ while(*p != 255) {
++
++ /* byte 0 ---------------------- */
++ if (*(p+1) == 255) {
++ break;
++ }
++
++ (*data)[num_decoded] = *p;
++ (*data)[num_decoded] <<= 2;
++
++ tmp_c = *(p+1);
++ tmp_c >>= 4;
++ (*data)[num_decoded] |= tmp_c;
++
++ num_decoded++;
++ p++;
++
++ /* byte 1 ---------------------- */
++ if (*(p+1) == 255) {
++ break;
++ }
++
++ (*data)[num_decoded] = *p;
++ (*data)[num_decoded] <<= 4;
++
++ tmp_c = *(p+1);
++ tmp_c >>= 2;
++ (*data)[num_decoded] |= tmp_c;
++
++ num_decoded++;
++ p++;
++
++ /* byte 2 ---------------------- */
++ if (*(p+1) == 255) {
++ break;
++ }
++
++ (*data)[num_decoded] = *p;
++ (*data)[num_decoded] <<= 6;
++
++ (*data)[num_decoded] |= *(p+1);
++
++ num_decoded++;
++ p+=2;
++
++ };
++ return num_decoded;
++ /* ---------------------------------------------- */
++ }
++ else if (mime_demux_mode == MIME_DEMUX_MODE_QP) {
++ /* ---------------------------------------------- */
++ p = line;
++
++ while (*p != 0) {
++ if (*p == '=') {
++ int decode_qp_result;
++
++ p = mime_decode_qp(p,&decode_qp_result);
++
++ if (decode_qp_result == -2) {
++ /* Error from decoder. p is unchanged. */
++ if (!warned_about_qp_line_sanity) {
++ mime_trigger_error(MIME_ERRORLEVEL_QP_ILLEGAL_CHAR);
++ warned_about_qp_line_sanity = 1;
++ };
++ (*data)[num_decoded] = '=';
++ num_decoded++;
++ p++;
++ }
++ else if (decode_qp_result == -1) {
++ /* End of the line with soft line break.
++ Bail out. */
++ goto QP_RETURN;
++ }
++ else if (decode_qp_result >= 0) {
++ (*data)[num_decoded] = decode_qp_result;
++ num_decoded++;
++ };
++ }
++ else {
++ (*data)[num_decoded] = *p;
++ num_decoded++;
++ p++;
++ };
++ };
++ QP_RETURN:
++ return num_decoded;
++ /* ---------------------------------------------- */
++ };
++
++ return 0;
++}
++
++
++
++/*************************************************
++* Log demime errors and set mime error level *
++*************************************************/
++
++/* This sets the global demime_reason expansion
++variable and the demime_errorlevel gauge. */
++
++void mime_trigger_error(int level, uschar *format, ...) {
++ char *f;
++ va_list ap;
++
++ if( (f = malloc(16384+23)) != NULL ) {
++ /* first log the incident */
++ sprintf(f,"demime acl condition: ");
++ f+=22;
++ va_start(ap, format);
++ vsnprintf(f, 16383,(char *)format, ap);
++ va_end(ap);
++ f-=22;
++ log_write(0, LOG_MAIN, f);
++ /* then copy to demime_reason_buffer if new
++ level is greater than old level */
++ if (level > demime_errorlevel) {
++ demime_errorlevel = level;
++ Ustrcpy(demime_reason_buffer, US f);
++ demime_reason = demime_reason_buffer;
++ };
++ free(f);
++ };
++}
++
++/*************************************************
++* Demultiplex MIME stream. *
++*************************************************/
++
++/* We can handle BASE64, QUOTED-PRINTABLE, and UUENCODE.
++ UUENCODE does not need to have a proper
++ transfer-encoding header, we detect it with "begin"
++
++ This function will report human parsable errors in
++ *info.
++
++ returns DEFER -> soft error (see *info)
++ OK -> EOF hit, all ok
++*/
++
++int mime_demux(FILE *f, uschar *info) {
++ int mime_demux_mode = MIME_DEMUX_MODE_MIME_HEADERS;
++ int uu_mode = MIME_UU_MODE_OFF;
++ FILE *mime_dump_file = NULL;
++ FILE *uu_dump_file = NULL;
++ uschar *line;
++ int mime_read_line_status = MIME_READ_LINE_OK;
++ long line_len;
++ struct boundary *boundaries = NULL;
++ struct mime_part mime_part_p;
++ int has_tnef = 0;
++ int has_rfc822 = 0;
++
++ /* allocate room for our linebuffer */
++ line = (uschar *)malloc(MIME_SANITY_MAX_LINE_LENGTH);
++ if (line == NULL) {
++ snprintf(CS info, 1024,"unable to allocate %u bytes",MIME_SANITY_MAX_LINE_LENGTH);
++ return DEFER;
++ };
++
++ /* clear MIME header structure */
++ memset(&mime_part_p,0,sizeof(mime_part));
++
++ /* ----------------------- start demux loop --------------------- */
++ while (mime_read_line_status == MIME_READ_LINE_OK) {
++
++ /* read a line of input. Depending on the mode we are in,
++ the returned format will differ. */
++ mime_read_line_status = mime_read_line(f,mime_demux_mode,line,&line_len);
++
++ if (mime_read_line_status == MIME_READ_LINE_OVERFLOW) {
++ mime_trigger_error(MIME_ERRORLEVEL_LONG_LINE);
++ /* despite the error, continue .. */
++ mime_read_line_status = MIME_READ_LINE_OK;
++ continue;
++ }
++ else if (mime_read_line_status == MIME_READ_LINE_EOF) {
++ break;
++ };
++
++ if (mime_demux_mode == MIME_DEMUX_MODE_MIME_HEADERS) {
++ /* -------------- header mode --------------------- */
++
++ /* Check for an empty line, which is the end of the headers.
++ In HEADER mode, the line is returned "cooked", with the
++ final '\n' replaced by a ';' */
++ if (line_len == 1) {
++ int tmp;
++
++ /* We have reached the end of the headers. Start decoding
++ with the collected settings. */
++ if (mime_part_p.seen_content_transfer_encoding > 1) {
++ mime_demux_mode = mime_part_p.seen_content_transfer_encoding;
++ }
++ else {
++ /* default to plain mode if no specific encoding type found */
++ mime_demux_mode = MIME_DEMUX_MODE_PLAIN;
++ };
++
++ /* open new dump file */
++ tmp = mime_get_dump_file(mime_part_p.extension, &mime_dump_file, info);
++ if (tmp < 0) {
++ return DEFER;
++ };
++
++ /* clear out mime_part */
++ memset(&mime_part_p,0,sizeof(mime_part));
++ }
++ else {
++ /* Another header to check for file extensions,
++ encoding type and boundaries */
++ if (strncmpic(US"content-type:",line,Ustrlen("content-type:")) == 0) {
++ /* ---------------------------- Content-Type header ------------------------------- */
++ uschar *value = line;
++
++ /* check for message/partial MIME type and reject it */
++ if (mime_header_find(line,US"message/partial",NULL) > 0)
++ mime_trigger_error(MIME_ERRORLEVEL_MESSAGE_PARTIAL);
++
++ /* check for TNEF content type, remember to unpack TNEF later. */
++ if (mime_header_find(line,US"application/ms-tnef",NULL) > 0)
++ has_tnef = 1;
++
++ /* check for message/rfcxxx attachments */
++ if (mime_header_find(line,US"message/rfc822",NULL) > 0)
++ has_rfc822 = 1;
++
++ /* find the file extension, but do not fill it in
++ it is already set, since content-disposition has
++ precedence. */
++ if (mime_part_p.extension == NULL) {
++ if (mime_header_find(line,US"name",&value) == 2) {
++ if (Ustrlen(value) > MIME_SANITY_MAX_FILENAME)
++ mime_trigger_error(MIME_ERRORLEVEL_FILENAME_LENGTH);
++ mime_part_p.extension = value;
++ mime_part_p.extension = Ustrrchr(value,'.');
++ if (mime_part_p.extension == NULL) {
++ /* file without extension, setting
++ NULL will use the default extension later */
++ mime_part_p.extension = NULL;
++ }
++ else {
++ struct file_extension *this_extension =
++ (struct file_extension *)malloc(sizeof(file_extension));
++
++ this_extension->file_extension_string =
++ (uschar *)malloc(Ustrlen(mime_part_p.extension)+1);
++ Ustrcpy(this_extension->file_extension_string,
++ mime_part_p.extension+1);
++ this_extension->next = file_extensions;
++ file_extensions = this_extension;
++ };
++ };
++ };
++
++ /* find a boundary and add it to the list, if present */
++ value = line;
++ if (mime_header_find(line,US"boundary",&value) == 2) {
++ struct boundary *thisboundary;
++
++ if (Ustrlen(value) > MIME_SANITY_MAX_BOUNDARY_LENGTH) {
++ mime_trigger_error(MIME_ERRORLEVEL_BOUNDARY_LENGTH);
++ }
++ else {
++ thisboundary = (struct boundary*)malloc(sizeof(boundary));
++ thisboundary->next = boundaries;
++ thisboundary->boundary_string = value;
++ boundaries = thisboundary;
++ };
++ };
++
++ if (mime_part_p.seen_content_type == 0) {
++ mime_part_p.seen_content_type = 1;
++ }
++ else {
++ mime_trigger_error(MIME_ERRORLEVEL_DOUBLE_HEADERS);
++ };
++ /* ---------------------------------------------------------------------------- */
++ }
++ else if (strncmpic(US"content-transfer-encoding:",line,Ustrlen("content-transfer-encoding:")) == 0) {
++ /* ---------------------------- Content-Transfer-Encoding header -------------- */
++
++ if (mime_part_p.seen_content_transfer_encoding == 0) {
++ if (mime_header_find(line,US"base64",NULL) > 0) {
++ mime_part_p.seen_content_transfer_encoding = MIME_DEMUX_MODE_BASE64;
++ }
++ else if (mime_header_find(line,US"quoted-printable",NULL) > 0) {
++ mime_part_p.seen_content_transfer_encoding = MIME_DEMUX_MODE_QP;
++ }
++ else {
++ mime_part_p.seen_content_transfer_encoding = MIME_DEMUX_MODE_PLAIN;
++ };
++ }
++ else {
++ mime_trigger_error(MIME_ERRORLEVEL_DOUBLE_HEADERS);
++ };
++ /* ---------------------------------------------------------------------------- */
++ }
++ else if (strncmpic(US"content-disposition:",line,Ustrlen("content-disposition:")) == 0) {
++ /* ---------------------------- Content-Disposition header -------------------- */
++ uschar *value = line;
++
++ if (mime_part_p.seen_content_disposition == 0) {
++ mime_part_p.seen_content_disposition = 1;
++
++ if (mime_header_find(line,US"filename",&value) == 2) {
++ if (Ustrlen(value) > MIME_SANITY_MAX_FILENAME)
++ mime_trigger_error(MIME_ERRORLEVEL_FILENAME_LENGTH);
++ mime_part_p.extension = value;
++ mime_part_p.extension = Ustrrchr(value,'.');
++ if (mime_part_p.extension == NULL) {
++ /* file without extension, setting
++ NULL will use the default extension later */
++ mime_part_p.extension = NULL;
++ }
++ else {
++ struct file_extension *this_extension =
++ (struct file_extension *)malloc(sizeof(file_extension));
++
++ this_extension->file_extension_string =
++ (uschar *)malloc(Ustrlen(mime_part_p.extension)+1);
++ Ustrcpy(this_extension->file_extension_string,
++ mime_part_p.extension+1);
++ this_extension->next = file_extensions;
++ file_extensions = this_extension;
++ };
++ };
++ }
++ else {
++ mime_trigger_error(MIME_ERRORLEVEL_DOUBLE_HEADERS);
++ };
++ /* ---------------------------------------------------------------------------- */
++ };
++ }; /* End of header checks */
++ /* ------------------------------------------------ */
++ }
++ else {
++ /* -------------- non-header mode ----------------- */
++ int tmp;
++
++ if (uu_mode == MIME_UU_MODE_OFF) {
++ uschar uu_file_extension[5];
++ /* We are not currently decoding UUENCODE
++ Check for possible UUENCODE start tag. */
++ if (mime_check_uu_start(line,uu_file_extension,&has_tnef)) {
++ /* possible UUENCODING start detected.
++ Set unconfirmed mode first. */
++ uu_mode = MIME_UU_MODE_UNCONFIRMED;
++ /* open new uu dump file */
++ tmp = mime_get_dump_file(uu_file_extension, &uu_dump_file, info);
++ if (tmp < 0) {
++ free(line);
++ return DEFER;
++ };
++ };
++ }
++ else {
++ uschar *data;
++ long data_len = 0;
++
++ if (uu_mode == MIME_UU_MODE_UNCONFIRMED) {
++ /* We are in unconfirmed UUENCODE mode. */
++
++ data_len = uu_decode_line(line,&data,line_len,info);
++
++ if (data_len == -2) {
++ /* temp error, turn off uudecode mode */
++ if (uu_dump_file != NULL) {
++ fclose(uu_dump_file); uu_dump_file = NULL;
++ };
++ uu_mode = MIME_UU_MODE_OFF;
++ return DEFER;
++ }
++ else if (data_len == -1) {
++ if (uu_dump_file != NULL) {
++ fclose(uu_dump_file); uu_dump_file = NULL;
++ };
++ uu_mode = MIME_UU_MODE_OFF;
++ data_len = 0;
++ }
++ else if (data_len > 0) {
++ /* we have at least decoded a valid byte
++ turn on confirmed mode */
++ uu_mode = MIME_UU_MODE_CONFIRMED;
++ };
++ }
++ else if (uu_mode == MIME_UU_MODE_CONFIRMED) {
++ /* If we are in confirmed UU mode,
++ check for single "end" tag on line */
++ if ((strncmpic(line,US"end",3) == 0) && (line[3] < 32)) {
++ if (uu_dump_file != NULL) {
++ fclose(uu_dump_file); uu_dump_file = NULL;
++ };
++ uu_mode = MIME_UU_MODE_OFF;
++ }
++ else {
++ data_len = uu_decode_line(line,&data,line_len,info);
++ if (data_len == -2) {
++ /* temp error, turn off uudecode mode */
++ if (uu_dump_file != NULL) {
++ fclose(uu_dump_file); uu_dump_file = NULL;
++ };
++ uu_mode = MIME_UU_MODE_OFF;
++ return DEFER;
++ }
++ else if (data_len == -1) {
++ /* skip this line */
++ data_len = 0;
++ };
++ };
++ };
++
++ /* write data to dump file, if available */
++ if (data_len > 0) {
++ if (fwrite(data,1,data_len,uu_dump_file) < data_len) {
++ /* short write */
++ snprintf(CS info, 1024,"short write on uudecode dump file");
++ free(line);
++ return DEFER;
++ };
++ };
++ };
++
++ if (mime_demux_mode != MIME_DEMUX_MODE_SCANNING) {
++ /* Non-scanning and Non-header mode. That means
++ we are currently decoding data to the dump
++ file. */
++
++ /* Check for a known boundary. */
++ tmp = mime_check_boundary(line,boundaries);
++ if (tmp == 1) {
++ /* We have hit a known start boundary.
++ That will put us back in header mode. */
++ mime_demux_mode = MIME_DEMUX_MODE_MIME_HEADERS;
++ if (mime_dump_file != NULL) {
++ /* if the attachment was a RFC822 message, recurse into it */
++ if (has_rfc822) {
++ has_rfc822 = 0;
++ rewind(mime_dump_file);
++ mime_demux(mime_dump_file,info);
++ };
++
++ fclose(mime_dump_file); mime_dump_file = NULL;
++ };
++ }
++ else if (tmp == 2) {
++ /* We have hit a known end boundary.
++ That puts us into scanning mode, which will end when we hit another known start boundary */
++ mime_demux_mode = MIME_DEMUX_MODE_SCANNING;
++ if (mime_dump_file != NULL) {
++ /* if the attachment was a RFC822 message, recurse into it */
++ if (has_rfc822) {
++ has_rfc822 = 0;
++ rewind(mime_dump_file);
++ mime_demux(mime_dump_file,info);
++ };
++
++ fclose(mime_dump_file); mime_dump_file = NULL;
++ };
++ }
++ else {
++ uschar *data;
++ long data_len = 0;
++
++ /* decode the line with the appropriate method */
++ if (mime_demux_mode == MIME_DEMUX_MODE_PLAIN) {
++ /* in plain mode, just dump the line */
++ data = line;
++ data_len = line_len;
++ }
++ else if ( (mime_demux_mode == MIME_DEMUX_MODE_QP) || (mime_demux_mode == MIME_DEMUX_MODE_BASE64) ) {
++ data_len = mime_decode_line(mime_demux_mode,line,&data,line_len,info);
++ if (data_len < 0) {
++ /* Error reported from the line decoder. */
++ data_len = 0;
++ };
++ };
++
++ /* write data to dump file */
++ if (data_len > 0) {
++ if (fwrite(data,1,data_len,mime_dump_file) < data_len) {
++ /* short write */
++ snprintf(CS info, 1024,"short write on dump file");
++ free(line);
++ return DEFER;
++ };
++ };
++
++ };
++ }
++ else {
++ /* Scanning mode. We end up here after a end boundary.
++ This will usually be at the end of a message or at
++ the end of a MIME container.
++ We need to look for another start boundary to get
++ back into header mode. */
++ if (mime_check_boundary(line,boundaries) == 1) {
++ mime_demux_mode = MIME_DEMUX_MODE_MIME_HEADERS;
++ };
++
++ };
++ /* ------------------------------------------------ */
++ };
++ };
++ /* ----------------------- end demux loop ----------------------- */
++
++ /* close files, they could still be open */
++ if (mime_dump_file != NULL)
++ fclose(mime_dump_file);
++ if (uu_dump_file != NULL)
++ fclose(uu_dump_file);
++
++ /* release line buffer */
++ free(line);
++
++ /* FIXME: release boundary buffers.
++ Not too much of a problem since
++ this instance of exim is not resident. */
++
++ if (has_tnef) {
++ uschar file_name[1024];
++ /* at least one file could be TNEF encoded.
++ attempt to send all decoded files thru the TNEF decoder */
++
++ snprintf(CS file_name,1024,"%s/scan/%s",spool_directory,message_id);
++ mime_unpack_tnef(file_name);
++ };
++
++ return 0;
++}
++
+diff -urN exim-4.30-orig/src/demime.h exim-4.30/src/demime.h
+--- exim-4.30-orig/src/demime.h Thu Jan 1 01:00:00 1970
++++ exim-4.30/src/demime.h Tue Dec 2 12:15:53 2003
+@@ -0,0 +1,146 @@
++/*************************************************
++* Exim - an Internet mail transport agent *
++*************************************************/
++
++/* This file is part of the exiscan-acl content scanner
++patch. It is NOT part of the standard exim distribution. */
++
++/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003-???? */
++/* License: GPL */
++
++/* demime defines */
++
++#define MIME_DEMUX_MODE_SCANNING 0
++#define MIME_DEMUX_MODE_MIME_HEADERS 1
++#define MIME_DEMUX_MODE_BASE64 2
++#define MIME_DEMUX_MODE_QP 3
++#define MIME_DEMUX_MODE_PLAIN 4
++
++#define MIME_UU_MODE_OFF 0
++#define MIME_UU_MODE_UNCONFIRMED 1
++#define MIME_UU_MODE_CONFIRMED 2
++
++#define MIME_MAX_EXTENSION 128
++
++#define MIME_READ_LINE_EOF 0
++#define MIME_READ_LINE_OK 1
++#define MIME_READ_LINE_OVERFLOW 2
++
++#define MIME_SANITY_MAX_LINE_LENGTH 131071
++#define MIME_SANITY_MAX_FILENAME 512
++#define MIME_SANITY_MAX_HEADER_OPTION_VALUE 1024
++#define MIME_SANITY_MAX_B64_LINE_LENGTH 76
++#define MIME_SANITY_MAX_BOUNDARY_LENGTH 1024
++#define MIME_SANITY_MAX_DUMP_FILES 1024
++
++
++
++/* MIME errorlevel settings */
++
++#define MIME_ERRORLEVEL_LONG_LINE 3,US"line length in message or single header size exceeds %u bytes",MIME_SANITY_MAX_LINE_LENGTH
++#define MIME_ERRORLEVEL_TOO_MANY_PARTS 3,US"too many MIME parts (max %u)",MIME_SANITY_MAX_DUMP_FILES
++#define MIME_ERRORLEVEL_MESSAGE_PARTIAL 3,US"'message/partial' MIME type"
++#define MIME_ERRORLEVEL_FILENAME_LENGTH 3,US"proposed filename exceeds %u characters",MIME_SANITY_MAX_FILENAME
++#define MIME_ERRORLEVEL_BOUNDARY_LENGTH 3,US"boundary length exceeds %u characters",MIME_SANITY_MAX_BOUNDARY_LENGTH
++#define MIME_ERRORLEVEL_DOUBLE_HEADERS 2,US"double headers (content-type, content-disposition or content-transfer-encoding)"
++#define MIME_ERRORLEVEL_UU_MISALIGNED 1,US"uuencoded line length is not a multiple of 4 characters"
++#define MIME_ERRORLEVEL_UU_LINE_LENGTH 1,US"uuencoded line length does not match advertised number of bytes"
++#define MIME_ERRORLEVEL_B64_LINE_LENGTH 1,US"base64 line length exceeds %u characters",MIME_SANITY_MAX_B64_LINE_LENGTH
++#define MIME_ERRORLEVEL_B64_ILLEGAL_CHAR 2,US"base64 line contains illegal character"
++#define MIME_ERRORLEVEL_B64_MISALIGNED 1,US"base64 line length is not a multiple of 4 characters"
++#define MIME_ERRORLEVEL_QP_ILLEGAL_CHAR 1,US"quoted-printable encoding contains illegal character"
++
++
++/* demime structures */
++
++typedef struct mime_part {
++ /* true if there was a content-type header */
++ int seen_content_type;
++ /* true if there was a content-transfer-encoding header
++ contains the encoding type */
++ int seen_content_transfer_encoding;
++ /* true if there was a content-disposition header */
++ int seen_content_disposition;
++ /* pointer to a buffer with the proposed file extension */
++ uschar *extension;
++} mime_part;
++
++typedef struct boundary {
++ struct boundary *next;
++ uschar *boundary_string;
++} boundary;
++
++typedef struct file_extension {
++ struct file_extension *next;
++ uschar *file_extension_string;
++} file_extension;
++
++/* available functions for the TNEF library (tnef.c & tnef.h) */
++
++extern int TNEF_main( char *filename );
++extern int TNEF_set_verbosity( int level );
++extern int TNEF_set_debug( int level );
++extern int TNEF_set_syslogging( int level );
++extern int TNEF_set_stderrlogging( int level );
++extern int TNEF_set_path( char *path );
++
++
++
++/* demime.c prototypes */
++
++int mime_unpack_tnef(uschar *);
++unsigned int mime_hstr_i(uschar *);
++uschar *mime_decode_qp(uschar *, int *);
++int mime_get_dump_file(uschar *, FILE **, uschar *);
++int mime_header_find(uschar *, uschar *, uschar **);
++int mime_read_line(FILE *, int, uschar *, long *);
++int mime_check_boundary(uschar *, struct boundary *);
++int mime_check_uu_start(uschar *, uschar *, int *);
++long uu_decode_line(uschar *, uschar **, long, uschar *);
++long mime_decode_line(int ,uschar *, uschar **, long, uschar *);
++void mime_trigger_error(int, uschar *, ...);
++int mime_demux(FILE *, uschar *);
++
++
++
++/* BASE64 decoder matrix */
++static unsigned char b64[256]={
++/* 0 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++/* 16 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++/* 32 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 62, 128, 128, 128, 63,
++/* 48 */ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 128, 128, 128, 255, 128, 128,
++/* 64 */ 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
++/* 80 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 128, 128, 128, 128, 128,
++/* 96 */ 128, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
++ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 128, 128, 128, 128, 128,
++ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128
++};
++
++
++/* Microsoft-Style uudecode matrix */
++static unsigned char uudec[256]={
++/* 0 */ 0, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
++/* 16 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
++/* 32 */ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
++/* 48 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
++/* 64 */ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
++/* 80 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
++/* 96 */ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
++/* 112 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
++/* 128 */ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
++/* 144 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
++/* 160 */ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
++/* 176 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
++/* 192 */ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
++/* 208 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
++/* 224 */ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
++/* 240 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
++};
++
+diff -urN exim-4.30-orig/src/exim.c exim-4.30/src/exim.c
+--- exim-4.30-orig/src/exim.c Mon Dec 1 11:15:41 2003
++++ exim-4.30/src/exim.c Tue Dec 2 12:15:53 2003
+@@ -1500,6 +1500,7 @@
+ printf("%s\n", CS version_copyright);
+ version_printed = TRUE;
+ show_whats_supported(stdout);
++ printf("Contains exiscan-acl patch revision %s (c) Tom Kistner [http://duncanthrax.net/exiscan/]\n", exiscan_version_string);
+ }
+
+ else badarg = TRUE;
+diff -urN exim-4.30-orig/src/expand.c exim-4.30/src/expand.c
+--- exim-4.30-orig/src/expand.c Mon Dec 1 11:15:41 2003
++++ exim-4.30/src/expand.c Mon Jan 19 23:23:34 2004
+@@ -226,11 +226,14 @@
+ { "caller_uid", vtype_int, &real_uid },
+ { "compile_date", vtype_stringptr, &version_date },
+ { "compile_number", vtype_stringptr, &version_cnumber },
++ { "demime_errorlevel", vtype_int, &demime_errorlevel },
++ { "demime_reason", vtype_stringptr, &demime_reason },
+ { "dnslist_domain", vtype_stringptr, &dnslist_domain },
+ { "dnslist_text", vtype_stringptr, &dnslist_text },
+ { "dnslist_value", vtype_stringptr, &dnslist_value },
+ { "domain", vtype_stringptr, &deliver_domain },
+ { "domain_data", vtype_stringptr, &deliver_domain_data },
++ { "found_extension", vtype_stringptr, &found_extension },
+ { "home", vtype_stringptr, &deliver_home },
+ { "host", vtype_stringptr, &deliver_host },
+ { "host_address", vtype_stringptr, &deliver_host_address },
+@@ -252,6 +255,7 @@
+ { "local_user_uid", vtype_uid, &local_user_uid },
+ { "localhost_number", vtype_int, &host_number },
+ { "mailstore_basename", vtype_stringptr, &mailstore_basename },
++ { "malware_name", vtype_stringptr, &malware_name },
+ { "message_age", vtype_int, &message_age },
+ { "message_body", vtype_msgbody, &message_body },
+ { "message_body_end", vtype_msgbody_end, &message_body_end },
+@@ -259,6 +263,20 @@
+ { "message_headers", vtype_msgheaders, NULL },
+ { "message_id", vtype_stringptr, &message_id },
+ { "message_size", vtype_int, &message_size },
++ { "mime_anomaly_level", vtype_int, &mime_anomaly_level },
++ { "mime_anomaly_text", vtype_stringptr, &mime_anomaly_text },
++ { "mime_boundary", vtype_stringptr, &mime_boundary },
++ { "mime_charset", vtype_stringptr, &mime_charset },
++ { "mime_content_description", vtype_stringptr, &mime_content_description },
++ { "mime_content_disposition", vtype_stringptr, &mime_content_disposition },
++ { "mime_content_id", vtype_stringptr, &mime_content_id },
++ { "mime_content_transfer_encoding",vtype_stringptr, &mime_content_transfer_encoding },
++ { "mime_content_type", vtype_stringptr, &mime_content_type },
++ { "mime_decoded_filename", vtype_stringptr, &mime_decoded_filename },
++ { "mime_filename", vtype_stringptr, &mime_filename },
++ { "mime_is_multipart", vtype_int, &mime_is_multipart },
++ { "mime_is_rfc822", vtype_int, &mime_is_rfc822 },
++ { "mime_part_count", vtype_int, &mime_part_count },
+ { "n0", vtype_filter_int, &filter_n[0] },
+ { "n1", vtype_filter_int, &filter_n[1] },
+ { "n2", vtype_filter_int, &filter_n[2] },
+@@ -287,6 +305,7 @@
+ { "received_protocol", vtype_stringptr, &received_protocol },
+ { "recipients", vtype_recipients, NULL },
+ { "recipients_count", vtype_int, &recipients_count },
++ { "regex_match_string", vtype_stringptr, &regex_match_string },
+ { "reply_address", vtype_reply, NULL },
+ { "return_path", vtype_stringptr, &return_path },
+ { "return_size_limit", vtype_int, &bounce_return_size_limit },
+@@ -314,6 +333,10 @@
+ { "sn7", vtype_filter_int, &filter_sn[7] },
+ { "sn8", vtype_filter_int, &filter_sn[8] },
+ { "sn9", vtype_filter_int, &filter_sn[9] },
++ { "spam_bar", vtype_stringptr, &spam_bar },
++ { "spam_report", vtype_stringptr, &spam_report },
++ { "spam_score", vtype_stringptr, &spam_score },
++ { "spam_score_int", vtype_stringptr, &spam_score_int },
+ { "spool_directory", vtype_stringptr, &spool_directory },
+ { "thisaddress", vtype_stringptr, &filter_thisaddress },
+ { "tls_certificate_verified", vtype_int, &tls_certificate_verified },
+diff -urN exim-4.30-orig/src/functions.h exim-4.30/src/functions.h
+--- exim-4.30-orig/src/functions.h Mon Dec 1 11:15:41 2003
++++ exim-4.30/src/functions.h Tue Dec 2 12:15:53 2003
+@@ -66,6 +66,7 @@
+ extern void deliver_set_expansions(address_item *);
+ extern int deliver_split_address(address_item *);
+ extern void deliver_succeeded(address_item *);
++extern int demime(uschar **);
+ extern BOOL directory_make(uschar *, uschar *, int, BOOL);
+ extern dns_address *dns_address_from_rr(dns_answer *, dns_record *);
+ extern void dns_build_reverse(uschar *, uschar *);
+@@ -118,6 +119,7 @@
+
+ extern void log_close_all(void);
+
++extern int malware(uschar **);
+ extern int match_address_list(uschar *, BOOL, uschar **, unsigned int *,
+ int, int);
+ extern int match_check_list(uschar **, int, tree_node **, unsigned int **,
+@@ -174,6 +176,7 @@
+ extern BOOL receive_check_set_sender(uschar *);
+ extern BOOL receive_msg(BOOL);
+ extern void receive_swallow_smtp(void);
++extern int regex(uschar **);
+ extern BOOL regex_match_and_setup(const pcre *, uschar *, int, int);
+ extern const pcre *regex_must_compile(uschar *, BOOL, BOOL);
+ extern void retry_add_item(address_item *, uschar *, int);
+@@ -231,6 +234,8 @@
+ extern BOOL smtp_start_session(void);
+ extern int smtp_ungetc(int);
+ extern int smtp_write_command(smtp_outblock *, BOOL, char *, ...);
++extern int spam(uschar **);
++extern FILE *spool_mbox(unsigned long long *);
+ extern BOOL spool_move_message(uschar *, uschar *, uschar *, uschar *);
+ extern BOOL spool_open_datafile(uschar *);
+ extern int spool_open_temp(uschar *);
+@@ -281,6 +286,8 @@
+ extern tree_node *tree_search(tree_node *, uschar *);
+ extern void tree_write(tree_node *, FILE *);
+
++extern void unspool_mbox(void);
++
+ extern int verify_address(address_item *, FILE *, int, int, BOOL *);
+ extern int verify_check_dnsbl(uschar **);
+ extern int verify_check_header_address(uschar **, uschar **, int);
+diff -urN exim-4.30-orig/src/globals.c exim-4.30/src/globals.c
+--- exim-4.30-orig/src/globals.c Mon Dec 1 11:15:41 2003
++++ exim-4.30/src/globals.c Fri Jan 16 20:39:49 2004
+@@ -159,6 +159,7 @@
+ uschar *acl_smtp_helo = NULL;
+ uschar *acl_smtp_mail = NULL;
+ uschar *acl_smtp_mailauth = NULL;
++uschar *acl_smtp_mime = NULL;
+ uschar *acl_smtp_rcpt = NULL;
+ uschar *acl_smtp_starttls = NULL;
+ uschar *acl_smtp_vrfy = NULL;
+@@ -179,6 +180,7 @@
+ US"EHLO or HELO",
+ US"MAIL",
+ US"MAILAUTH",
++ US"MIME",
+ US"RCPT",
+ US"STARTTLS",
+ US"VRFY",
+@@ -192,6 +194,7 @@
+ 550, /* HELO/EHLO */
+ 550, /* MAIL */
+ 0, /* MAILAUTH; not relevant */
++ 550, /* MIME */
+ 550, /* RCPT */
+ 550, /* STARTTLS */
+ 252, /* VRFY */
+@@ -294,6 +297,7 @@
+ uschar *auth_defer_msg = US"reason not recorded";
+ uschar *auth_defer_user_msg = US"";
+ int auto_thaw = 0;
++uschar *av_scanner = US"sophie:/var/run/sophie";
+
+ BOOL background_daemon = TRUE;
+ uschar *base62_chars=
+@@ -410,6 +414,9 @@
+ BOOL deliver_selectstring_regex = FALSE;
+ uschar *deliver_selectstring_sender = NULL;
+ BOOL deliver_selectstring_sender_regex = FALSE;
++int demime_errorlevel = 0;
++int demime_ok = 0;
++uschar *demime_reason = NULL;
+ BOOL disable_logging = FALSE;
+
+ uschar *dns_again_means_nonexist = NULL;
+@@ -439,6 +446,7 @@
+ "\0<---------------Space to patch exim_path->";
+ uid_t exim_uid = EXIM_UID;
+ BOOL exim_uid_set = TRUE; /* This uid is always set */
++uschar *exiscan_version_string = US"??";
+ int expand_forbid = 0;
+ int expand_nlength[EXPAND_MAXN+1];
+ int expand_nmax = -1;
+@@ -448,12 +456,14 @@
+ BOOL extract_addresses_remove_arguments = TRUE;
+ uschar *extra_local_interfaces = NULL;
+
++BOOL fake_reject = FALSE;
+ int filter_n[FILTER_VARIABLE_COUNT];
+ BOOL filter_running = FALSE;
+ int filter_sn[FILTER_VARIABLE_COUNT];
+ uschar *filter_test = NULL;
+ uschar *filter_thisaddress = NULL;
+ int finduser_retries = 0;
++uschar *found_extension = NULL;
+ uid_t fixed_never_users[] = { FIXED_NEVER_USERS };
+ uschar *freeze_tell = NULL;
+ uschar *fudged_queue_times = US"";
+@@ -591,6 +601,7 @@
+
+ macro_item *macros = NULL;
+ uschar *mailstore_basename = NULL;
++uschar *malware_name = NULL;
+ int max_username_length = 0;
+ int message_age = 0;
+ uschar *message_body = NULL;
+@@ -611,6 +622,21 @@
+ uschar *message_size_limit = US"50M";
+ uschar message_subdir[2] = { 0, 0 };
+ uschar *message_reference = NULL;
++uschar *mime_anomaly_level = NULL;
++uschar *mime_anomaly_text = NULL;
++uschar *mime_boundary = NULL;
++uschar *mime_charset = NULL;
++uschar *mime_content_description = NULL;
++uschar *mime_content_disposition = NULL;
++uschar *mime_content_id = NULL;
++uschar *mime_content_transfer_encoding = NULL;
++uschar *mime_content_type = NULL;
++uschar *mime_decoded_filename = NULL;
++uschar *mime_filename = NULL;
++int mime_is_multipart = 0;
++int mime_is_rfc822 = 0;
++int mime_part_count = -1;
++
+
+ uid_t *never_users = NULL;
+
+@@ -710,6 +736,7 @@
+ const pcre *regex_PIPELINING = NULL;
+ const pcre *regex_SIZE = NULL;
+ const pcre *regex_ismsgid = NULL;
++uschar *regex_match_string = NULL;
+ int remote_delivery_count = 0;
+ int remote_max_parallel = 2;
+ uschar *remote_sort_domains = NULL;
+@@ -886,6 +913,11 @@
+ int smtp_rlr_threshold = INT_MAX;
+ BOOL smtp_use_pipelining = FALSE;
+ BOOL smtp_use_size = FALSE;
++uschar *spamd_address = US"127.0.0.1 783";
++uschar *spam_bar = NULL;
++uschar *spam_report = NULL;
++uschar *spam_score = NULL;
++uschar *spam_score_int = NULL;
+ BOOL split_spool_directory = FALSE;
+ uschar *spool_directory = US SPOOL_DIRECTORY
+ "\0<--------------Space to patch spool_directory->";
+diff -urN exim-4.30-orig/src/globals.h exim-4.30/src/globals.h
+--- exim-4.30-orig/src/globals.h Mon Dec 1 11:15:41 2003
++++ exim-4.30/src/globals.h Fri Jan 16 20:39:55 2004
+@@ -101,6 +101,7 @@
+ extern uschar *acl_smtp_helo; /* ACL run after HELO/EHLO */
+ extern uschar *acl_smtp_mail; /* ACL run after MAIL */
+ extern uschar *acl_smtp_mailauth; /* ACL run after MAIL AUTH */
++extern uschar *acl_smtp_mime; /* ACL run after DATA, before acl_smtp_data, for each MIME part */
+ extern uschar *acl_smtp_rcpt; /* ACL run after RCPT */
+ extern uschar *acl_smtp_starttls; /* ACL run after STARTTLS */
+ extern uschar *acl_smtp_vrfy; /* ACL run after VRFY */
+@@ -135,6 +136,7 @@
+ extern uschar *auth_defer_msg; /* Error message for log */
+ extern uschar *auth_defer_user_msg; /* Error message for user */
+ extern int auto_thaw; /* Auto-thaw interval */
++extern uschar *av_scanner; /* AntiVirus scanner to use for the malware condition */
+
+ extern BOOL background_daemon; /* Set FALSE to keep in foreground */
+ extern uschar *base62_chars; /* Table of base-62 characters */
+@@ -218,6 +220,9 @@
+ extern BOOL deliver_selectstring_regex; /* String is regex */
+ extern uschar *deliver_selectstring_sender; /* For selecting by sender */
+ extern BOOL deliver_selectstring_sender_regex; /* String is regex */
++extern int demime_errorlevel; /* Severity of MIME error */
++extern int demime_ok; /* Nonzero if message has been demimed */
++extern uschar *demime_reason; /* Reason for broken MIME container */
+ extern BOOL disable_logging; /* Disables log writing when TRUE */
+
+ extern uschar *dns_again_means_nonexist; /* Domains that are badly set up */
+@@ -247,6 +252,7 @@
+ extern uschar *exim_path; /* Path to exec exim */
+ extern uid_t exim_uid; /* Non-root uid for exim */
+ extern BOOL exim_uid_set; /* TRUE if exim_uid set */
++extern uschar *exiscan_version_string; /* Exiscan version string */
+ extern int expand_forbid; /* RDO flags for forbidding things */
+ extern int expand_nlength[]; /* Lengths of numbered strings */
+ extern int expand_nmax; /* Max numerical value */
+@@ -255,6 +261,7 @@
+ extern BOOL extract_addresses_remove_arguments; /* Controls -t behaviour */
+ extern uschar *extra_local_interfaces; /* Local, non-listen interfaces */
+
++extern BOOL fake_reject; /* TRUE if fake reject is to be given */
+ extern int filter_n[FILTER_VARIABLE_COUNT]; /* filter variables */
+ extern BOOL filter_running; /* TRUE while running a filter */
+ extern int filter_sn[FILTER_VARIABLE_COUNT]; /* variables set by system filter */
+@@ -262,6 +269,7 @@
+ extern uschar *filter_thisaddress; /* For address looping */
+ extern int finduser_retries; /* Retry count for getpwnam() */
+ extern uid_t fixed_never_users[]; /* Can't be overridden */
++extern uschar *found_extension; /* demime acl condition: file extension found */
+ extern uschar *freeze_tell; /* Message on (some) freezings */
+ extern uschar *fudged_queue_times; /* For use in test harness */
+
+@@ -339,6 +347,7 @@
+
+ extern macro_item *macros; /* Configuration macros */
+ extern uschar *mailstore_basename; /* For mailstore deliveries */
++extern uschar *malware_name; /* Name of virus or malware ("W32/Klez-H") */
+ extern int max_username_length; /* For systems with broken getpwnam() */
+ extern int message_age; /* In seconds */
+ extern uschar *message_body; /* Start of message body for filter */
+@@ -358,6 +367,21 @@
+ extern uschar *message_size_limit; /* As it says */
+ extern uschar message_subdir[]; /* Subdirectory for messages */
+ extern uschar *message_reference; /* Reference for error messages */
++extern uschar *mime_anomaly_level;
++extern uschar *mime_anomaly_text;
++extern uschar *mime_boundary;
++extern uschar *mime_charset;
++extern uschar *mime_content_description;
++extern uschar *mime_content_disposition;
++extern uschar *mime_content_id;
++extern uschar *mime_content_transfer_encoding;
++extern uschar *mime_content_type;
++extern uschar *mime_decoded_filename;
++extern uschar *mime_filename;
++extern int mime_is_multipart;
++extern int mime_is_rfc822;
++extern int mime_part_count;
++
+
+ extern uid_t *never_users; /* List of uids never to be used */
+
+@@ -442,6 +466,7 @@
+ extern const pcre *regex_PIPELINING; /* For recognizing PIPELINING */
+ extern const pcre *regex_SIZE; /* For recognizing SIZE settings */
+ extern const pcre *regex_ismsgid; /* Compiled r.e. for message it */
++extern uschar *regex_match_string; /* regex that matched a line (regex ACL condition) */
+ extern int remote_delivery_count; /* Number of remote addresses */
+ extern int remote_max_parallel; /* Maximum parallel delivery */
+ extern uschar *remote_sort_domains; /* Remote domain sorting order */
+@@ -530,6 +555,11 @@
+ extern BOOL smtp_use_pipelining; /* Global for passed connections */
+ extern BOOL smtp_use_size; /* Global for passed connections */
+ extern BOOL split_spool_directory; /* TRUE to use multiple subdirs */
++extern uschar *spamd_address; /* address for the spamassassin daemon */
++extern uschar *spam_bar; /* the spam "bar" (textual representation of spam_score) */
++extern uschar *spam_report; /* the spamd report (multiline) */
++extern uschar *spam_score; /* the spam score (float) */
++extern uschar *spam_score_int; /* spam_score * 10 (int) */
+ extern uschar *spool_directory; /* Name of spool directory */
+ extern int string_datestamp_offset;/* After insertion by string_format */
+ extern BOOL strip_excess_angle_brackets; /* Surrounding route-addrs */
+diff -urN exim-4.30-orig/src/macros.h exim-4.30/src/macros.h
+--- exim-4.30-orig/src/macros.h Mon Dec 1 11:15:41 2003
++++ exim-4.30/src/macros.h Mon Jan 5 15:11:30 2004
+@@ -688,7 +688,7 @@
+
+ enum { ACL_WHERE_AUTH, ACL_WHERE_CONNECT, ACL_WHERE_DATA, ACL_WHERE_ETRN,
+ ACL_WHERE_EXPN, ACL_WHERE_HELO, ACL_WHERE_MAIL,
+- ACL_WHERE_MAILAUTH, ACL_WHERE_RCPT,
++ ACL_WHERE_MAILAUTH, ACL_WHERE_MIME, ACL_WHERE_RCPT,
+ ACL_WHERE_STARTTLS, ACL_WHERE_VRFY, ACL_WHERE_NOTSMTP };
+
+ /* Situations for spool_write_header() */
+diff -urN exim-4.30-orig/src/malware.c exim-4.30/src/malware.c
+--- exim-4.30-orig/src/malware.c Thu Jan 1 01:00:00 1970
++++ exim-4.30/src/malware.c Mon Jan 5 14:46:53 2004
+@@ -0,0 +1,1181 @@
++/*************************************************
++* Exim - an Internet mail transport agent *
++*************************************************/
++
++/* This file is part of the exiscan-acl content scanner
++patch. It is NOT part of the standard exim distribution. */
++
++/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003-???? */
++/* License: GPL */
++
++/* Code for calling virus (malware) scanners. Called from acl.c. */
++
++#include "exim.h"
++
++/* declaration of private routines */
++int mksd_scan_packed(int sock);
++int mksd_scan_unpacked(int sock, int maxproc);
++
++/* SHUT_WR seems to be undefined on Unixware ? */
++#ifndef SHUT_WR
++#define SHUT_WR 1
++#endif
++
++#define DRWEBD_SCAN_CMD 0x0001
++#define DRWEBD_RETURN_VIRUSES 0x0001
++
++/* Routine to check whether a system is big- or litte-endian.
++ Ripped from http://www.faqs.org/faqs/graphics/fileformats-faq/part4/section-7.html
++ Needed for proper kavdaemon implementation. Sigh. */
++#define BIG_MY_ENDIAN 0
++#define LITTLE_MY_ENDIAN 1
++int test_byte_order(void);
++int test_byte_order() {
++ short int word = 0x0001;
++ char *byte = (char *) &word;
++ return(byte[0] ? LITTLE_MY_ENDIAN : BIG_MY_ENDIAN);
++}
++
++uschar malware_name_buffer[256];
++int malware_ok = 0;
++
++int malware(uschar **listptr) {
++ int sep = 0;
++ uschar *list = *listptr;
++ uschar *av_scanner_work = av_scanner;
++ uschar *scanner_name;
++ uschar scanner_name_buffer[16];
++ uschar *malware_regex;
++ uschar malware_regex_buffer[64];
++ uschar malware_regex_default[] = ".+";
++ unsigned long long mbox_size;
++ FILE *mbox_file;
++ int roffset;
++ const pcre *re;
++ const uschar *rerror;
++
++ /* make sure the eml mbox file is spooled up */
++ mbox_file = spool_mbox(&mbox_size);
++ if (mbox_file == NULL) {
++ /* error while spooling */
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: error while creating mbox spool file");
++ return DEFER;
++ };
++ /* none of our current scanners need the mbox
++ file as a stream, so we can close it right away */
++ fclose(mbox_file);
++
++ /* extract the malware regex to match against from the option list */
++ if ((malware_regex = string_nextinlist(&list, &sep,
++ malware_regex_buffer,
++ sizeof(malware_regex_buffer))) != NULL) {
++
++ /* parse 1st option */
++ if ( (strcmpic(malware_regex,US"false") == 0) ||
++ (Ustrcmp(malware_regex,"0") == 0) ) {
++ /* explicitly no matching */
++ return FAIL;
++ };
++
++ /* special cases (match anything except empty) */
++ if ( (strcmpic(malware_regex,US"true") == 0) ||
++ (Ustrcmp(malware_regex,"*") == 0) ||
++ (Ustrcmp(malware_regex,"1") == 0) ) {
++ malware_regex = malware_regex_default;
++ };
++ }
++ else {
++ /* empty means "don't match anything" */
++ return FAIL;
++ };
++
++ /* compile the regex, see if it works */
++ re = pcre_compile(CS malware_regex, PCRE_COPT, (const char **)&rerror, &roffset, NULL);
++ if (re == NULL) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: regular expression error in '%s': %s at offset %d", malware_regex, rerror, roffset);
++ return DEFER;
++ };
++
++ /* Do not scan twice. */
++ if (malware_ok == 0) {
++
++ /* find the scanner type from the av_scanner option */
++ if ((scanner_name = string_nextinlist(&av_scanner_work, &sep,
++ scanner_name_buffer,
++ sizeof(scanner_name_buffer))) == NULL) {
++ /* no scanner given */
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: av_scanner configuration variable is empty");
++ return DEFER;
++ };
++
++ /* "drweb" scanner type ----------------------------------------------- */
++ /* v0.1 - added support for tcp sockets */
++ /* v0.0 - initial release -- support for unix sockets */
++ if (strcmpic(scanner_name,US"drweb") == 0) {
++ uschar *drweb_options;
++ uschar drweb_options_buffer[1024];
++ uschar drweb_options_default[] = "/usr/local/drweb/run/drwebd.sock";
++ struct sockaddr_un server;
++ int sock, port, result, ovector[30];
++ unsigned int fsize;
++ uschar tmpbuf[1024], *drweb_fbuf;
++ uschar scanrequest[1024];
++ uschar drweb_match_string[128];
++ int drweb_rc, drweb_cmd, drweb_flags = 0x0000, drweb_fd,
++ drweb_vnum, drweb_slen, drweb_fin = 0x0000;
++ unsigned long bread;
++ uschar hostname[256];
++ struct hostent *he;
++ struct in_addr in;
++ pcre *drweb_re;
++
++ if ((drweb_options = string_nextinlist(&av_scanner_work, &sep,
++ drweb_options_buffer, sizeof(drweb_options_buffer))) == NULL) {
++ /* no options supplied, use default options */
++ drweb_options = drweb_options_default;
++ };
++
++ if (*drweb_options != '/') {
++
++ /* extract host and port part */
++ if( sscanf(CS drweb_options, "%s %u", hostname, &port) != 2 ) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: invalid socket '%s'", drweb_options);
++ return DEFER;
++ }
++
++ /* Lookup the host */
++ if((he = gethostbyname(CS hostname)) == 0) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: failed to lookup host '%s'", hostname);
++ return DEFER;
++ }
++
++ in = *(struct in_addr *) he->h_addr_list[0];
++
++ /* Open the drwebd TCP socket */
++ if ( (sock = ip_socket(SOCK_STREAM, AF_INET)) < 0) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: unable to acquire socket (%s)",
++ strerror(errno));
++ return DEFER;
++ }
++
++ if (ip_connect(sock, AF_INET, (uschar*)inet_ntoa(in), port, 5) < 0) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: connection to %s, port %u failed (%s)",
++ inet_ntoa(in), port, strerror(errno));
++ return DEFER;
++ }
++
++ /* prepare variables */
++ drweb_cmd = htonl(DRWEBD_SCAN_CMD);
++ drweb_flags = htonl(DRWEBD_RETURN_VIRUSES);
++ snprintf(CS scanrequest, 1024,CS"%s/scan/%s/%s.eml",
++ spool_directory, message_id, message_id);
++
++ /* calc file size */
++ drweb_fd = open(scanrequest, O_RDONLY);
++ if (drweb_fd == -1) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: can't open spool file %s: %s",
++ scanrequest, strerror(errno));
++ return DEFER;
++ }
++ fsize = lseek(drweb_fd, 0, SEEK_END);
++ if (fsize == -1) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: can't seek spool file %s: %s",
++ scanrequest, strerror(errno));
++ return DEFER;
++ }
++ drweb_slen = htonl(fsize);
++ lseek(drweb_fd, 0, SEEK_SET);
++
++ /* send scan request */
++ if ((send(sock, &drweb_cmd, sizeof(drweb_cmd), 0) < 0) ||
++ (send(sock, &drweb_flags, sizeof(drweb_flags), 0) < 0) ||
++ (send(sock, &drweb_fin, sizeof(drweb_fin), 0) < 0) ||
++ (send(sock, &drweb_slen, sizeof(drweb_slen), 0) < 0)) {
++ close(sock);
++ close(drweb_fd);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: unable to send commands to socket (%s)", drweb_options);
++ return DEFER;
++ }
++
++ drweb_fbuf = (uschar *) malloc (fsize);
++ if (!drweb_fbuf) {
++ close(sock);
++ close(drweb_fd);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: unable to allocate memory %u for file (%s)",
++ fsize, scanrequest);
++ return DEFER;
++ }
++
++ result = read (drweb_fd, drweb_fbuf, fsize);
++ if (result == -1) {
++ close(sock);
++ close(drweb_fd);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: can't read spool file %s: %s",
++ scanrequest, strerror(errno));
++ return DEFER;
++ }
++
++ /* send file body to socket */
++ if (send(sock, drweb_fbuf, fsize, 0) < 0) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: unable to send file body to socket (%s)", drweb_options);
++ return DEFER;
++ }
++ close(drweb_fd);
++ free(drweb_fbuf);
++ }
++ else {
++ /* open the drwebd UNIX socket */
++ sock = socket(AF_UNIX, SOCK_STREAM, 0);
++ if (sock < 0) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: can't open UNIX socket");
++ return DEFER;
++ }
++ server.sun_family = AF_UNIX;
++ Ustrcpy(server.sun_path, drweb_options);
++ if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: unable to connect to socket (%s). errno=%d", drweb_options, errno);
++ return DEFER;
++ }
++
++ /* prepare variables */
++ drweb_cmd = htonl(DRWEBD_SCAN_CMD);
++ drweb_flags = htonl(DRWEBD_RETURN_VIRUSES);
++ snprintf(CS scanrequest, 1024,CS"%s/scan/%s/%s.eml", spool_directory, message_id, message_id);
++ drweb_slen = htonl(Ustrlen(scanrequest));
++
++ /* send scan request */
++ if ((send(sock, &drweb_cmd, sizeof(drweb_cmd), 0) < 0) ||
++ (send(sock, &drweb_flags, sizeof(drweb_flags), 0) < 0) ||
++ (send(sock, &drweb_slen, sizeof(drweb_slen), 0) < 0) ||
++ (send(sock, scanrequest, Ustrlen(scanrequest), 0) < 0) ||
++ (send(sock, &drweb_fin, sizeof(drweb_fin), 0) < 0)) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: unable to send commands to socket (%s)", drweb_options);
++ return DEFER;
++ }
++ }
++
++ /* wait for result */
++ if ((bread = recv(sock, &drweb_rc, sizeof(drweb_rc), 0) != sizeof(drweb_rc))) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: unable to read return code");
++ return DEFER;
++ }
++ drweb_rc = ntohl(drweb_rc);
++
++ if ((bread = recv(sock, &drweb_vnum, sizeof(drweb_vnum), 0) != sizeof(drweb_vnum))) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: unable to read the number of viruses");
++ return DEFER;
++ }
++ drweb_vnum = ntohl(drweb_vnum);
++
++ /* "virus(es) found" if virus number is > 0 */
++ if (drweb_vnum)
++ {
++ int i;
++ uschar pre_malware_nb[256];
++
++ malware_name = malware_name_buffer;
++
++ /* setup default virus name */
++ Ustrcpy(malware_name_buffer,"unknown");
++
++ /* read and concatenate virus names into one string */
++ for (i=0;i<drweb_vnum;i++)
++ {
++ /* read the size of report */
++ if ((bread = recv(sock, &drweb_slen, sizeof(drweb_slen), 0) != sizeof(drweb_slen))) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: cannot read report size");
++ return DEFER;
++ };
++ drweb_slen = ntohl(drweb_slen);
++
++ /* read report body */
++ if ((bread = recv(sock, tmpbuf, drweb_slen, 0)) != drweb_slen) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: drweb: cannot read report string");
++ return DEFER;
++ };
++ tmpbuf[drweb_slen] = '\0';
++
++ /* set up match regex, depends on retcode */
++ Ustrcpy(drweb_match_string, "infected\\swith\\s*(.+?)$");
++
++ drweb_re = pcre_compile( CS drweb_match_string,
++ PCRE_COPT,
++ (const char **)&rerror,
++ &roffset,
++ NULL );
++
++ /* try matcher on the line, grab substring */
++ result = pcre_exec(drweb_re, NULL, CS tmpbuf, Ustrlen(tmpbuf), 0, 0, ovector, 30);
++ if (result >= 2) {
++ pcre_copy_substring(CS tmpbuf, ovector, result, 1, CS pre_malware_nb, 255);
++ }
++ /* the first name we just copy to malware_name */
++ if (i==0)
++ Ustrcpy(CS malware_name_buffer, CS pre_malware_nb);
++ else {
++ /* concatenate each new virus name to previous */
++ int slen = Ustrlen(malware_name_buffer);
++ if (slen < (slen+Ustrlen(pre_malware_nb))) {
++ Ustrcat(malware_name_buffer, "/");
++ Ustrcat(malware_name_buffer, pre_malware_nb);
++ }
++ }
++ }
++ }
++ else {
++ /* no virus found */
++ malware_name = NULL;
++ };
++ close(sock);
++ }
++ /* ----------------------------------------------------------------------- */
++
++ /* "kavdaemon" scanner type ------------------------------------------------ */
++ else if (strcmpic(scanner_name,US"kavdaemon") == 0) {
++ uschar *kav_options;
++ uschar kav_options_buffer[1024];
++ uschar kav_options_default[] = "/var/run/AvpCtl";
++ struct sockaddr_un server;
++ int sock;
++ time_t t;
++ uschar tmpbuf[1024];
++ uschar scanrequest[1024];
++ uschar kav_match_string[128];
++ int kav_rc;
++ unsigned long kav_reportlen, bread;
++ pcre *kav_re;
++
++ if ((kav_options = string_nextinlist(&av_scanner_work, &sep,
++ kav_options_buffer,
++ sizeof(kav_options_buffer))) == NULL) {
++ /* no options supplied, use default options */
++ kav_options = kav_options_default;
++ };
++
++ /* open the kavdaemon socket */
++ sock = socket(AF_UNIX, SOCK_STREAM, 0);
++ if (sock < 0) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: can't open UNIX socket.");
++ return DEFER;
++ }
++ server.sun_family = AF_UNIX;
++ Ustrcpy(server.sun_path, kav_options);
++ if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: unable to connect to kavdaemon UNIX socket (%s). errno=%d", kav_options, errno);
++ return DEFER;
++ }
++
++ /* get current date and time, build scan request */
++ time(&t);
++ strftime(CS tmpbuf, sizeof(tmpbuf), "<0>%d %b %H:%M:%S:%%s/scan/%%s", localtime(&t));
++ snprintf(CS scanrequest, 1024,CS tmpbuf, spool_directory, message_id);
++
++ /* send scan request */
++ if (send(sock, scanrequest, Ustrlen(scanrequest)+1, 0) < 0) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: unable to write to kavdaemon UNIX socket (%s)", kav_options);
++ return DEFER;
++ }
++
++ /* wait for result */
++ if ((bread = recv(sock, tmpbuf, 2, 0) != 2)) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: unable to read 2 bytes from kavdaemon socket.");
++ return DEFER;
++ }
++
++ /* get errorcode from one nibble */
++ if (test_byte_order() == LITTLE_MY_ENDIAN) {
++ kav_rc = tmpbuf[0] & 0x0F;
++ }
++ else {
++ kav_rc = tmpbuf[1] & 0x0F;
++ };
++
++ /* improper kavdaemon configuration */
++ if ( (kav_rc == 5) || (kav_rc == 6) ) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: please reconfigure kavdaemon to NOT disinfect or remove infected files.");
++ return DEFER;
++ };
++
++ if (kav_rc == 1) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: kavdaemon reported 'scanning not completed' (code 1).");
++ return DEFER;
++ };
++
++ if (kav_rc == 7) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: kavdaemon reported 'kavdaemon damaged' (code 7).");
++ return DEFER;
++ };
++
++ /* code 8 is not handled, since it is ambigous. It appears mostly on
++ bounces where part of a file has been cut off */
++
++ /* "virus found" return codes (2-4) */
++ if ((kav_rc > 1) && (kav_rc < 5)) {
++ int report_flag = 0;
++
++ /* setup default virus name */
++ Ustrcpy(malware_name_buffer,"unknown");
++ malware_name = malware_name_buffer;
++
++ if (test_byte_order() == LITTLE_MY_ENDIAN) {
++ report_flag = tmpbuf[1];
++ }
++ else {
++ report_flag = tmpbuf[0];
++ };
++
++ /* read the report, if available */
++ if( report_flag == 1 ) {
++ /* read report size */
++ if ((bread = recv(sock, &kav_reportlen, 4, 0)) != 4) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: cannot read report size from kavdaemon");
++ return DEFER;
++ };
++
++ /* it's possible that avp returns av_buffer[1] == 1 but the
++ reportsize is 0 (!?) */
++ if (kav_reportlen > 0) {
++ /* set up match regex, depends on retcode */
++ if( kav_rc == 3 )
++ Ustrcpy(kav_match_string, "suspicion:\\s*(.+?)\\s*$");
++ else
++ Ustrcpy(kav_match_string, "infected:\\s*(.+?)\\s*$");
++
++ kav_re = pcre_compile( CS kav_match_string,
++ PCRE_COPT,
++ (const char **)&rerror,
++ &roffset,
++ NULL );
++
++ /* read report, linewise */
++ while (kav_reportlen > 0) {
++ int result = 0;
++ int ovector[30];
++
++ bread = 0;
++ while ( recv(sock, &tmpbuf[bread], 1, 0) == 1 ) {
++ kav_reportlen--;
++ if ( (tmpbuf[bread] == '\n') || (bread > 1021) ) break;
++ bread++;
++ };
++ bread++;
++ tmpbuf[bread] = '\0';
++
++ /* try matcher on the line, grab substring */
++ result = pcre_exec(kav_re, NULL, CS tmpbuf, Ustrlen(tmpbuf), 0, 0, ovector, 30);
++ if (result >= 2) {
++ pcre_copy_substring(CS tmpbuf, ovector, result, 1, CS malware_name_buffer, 255);
++ break;
++ };
++ };
++ };
++ };
++ }
++ else {
++ /* no virus found */
++ malware_name = NULL;
++ };
++
++ close(sock);
++ }
++ /* ----------------------------------------------------------------------- */
++
++
++ /* "cmdline" scanner type ------------------------------------------------ */
++ else if (strcmpic(scanner_name,US"cmdline") == 0) {
++ uschar *cmdline_scanner;
++ uschar cmdline_scanner_buffer[1024];
++ uschar *cmdline_trigger;
++ uschar cmdline_trigger_buffer[1024];
++ const pcre *cmdline_trigger_re;
++ uschar *cmdline_regex;
++ uschar cmdline_regex_buffer[1024];
++ const pcre *cmdline_regex_re;
++ uschar file_name[1024];
++ uschar commandline[1024];
++ FILE *scanner_out = NULL;
++ FILE *scanner_record = NULL;
++ uschar linebuffer[32767];
++ int trigger = 0;
++ int result;
++ int ovector[30];
++
++ /* find scanner command line */
++ if ((cmdline_scanner = string_nextinlist(&av_scanner_work, &sep,
++ cmdline_scanner_buffer,
++ sizeof(cmdline_scanner_buffer))) == NULL) {
++ /* no command line supplied */
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: missing commandline specification for cmdline scanner type.");
++ return DEFER;
++ };
++
++ /* find scanner output trigger */
++ if ((cmdline_trigger = string_nextinlist(&av_scanner_work, &sep,
++ cmdline_trigger_buffer,
++ sizeof(cmdline_trigger_buffer))) == NULL) {
++ /* no trigger regex supplied */
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: missing trigger specification for cmdline scanner type.");
++ return DEFER;
++ };
++
++ /* precompile trigger regex */
++ cmdline_trigger_re = pcre_compile(CS cmdline_trigger, PCRE_COPT, (const char **)&rerror, &roffset, NULL);
++ if (cmdline_trigger_re == NULL) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: regular expression error in '%s': %s at offset %d", cmdline_trigger_re, rerror, roffset);
++ return DEFER;
++ };
++
++ /* find scanner name regex */
++ if ((cmdline_regex = string_nextinlist(&av_scanner_work, &sep,
++ cmdline_regex_buffer,
++ sizeof(cmdline_regex_buffer))) == NULL) {
++ /* no name regex supplied */
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: missing virus name regex specification for cmdline scanner type.");
++ return DEFER;
++ };
++
++ /* precompile name regex */
++ cmdline_regex_re = pcre_compile(CS cmdline_regex, PCRE_COPT, (const char **)&rerror, &roffset, NULL);
++ if (cmdline_regex_re == NULL) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: regular expression error in '%s': %s at offset %d", cmdline_regex_re, rerror, roffset);
++ return DEFER;
++ };
++
++ /* prepare scanner call */
++ snprintf(CS file_name,1024,"%s/scan/%s", spool_directory, message_id);
++ snprintf(CS commandline,1024, CS cmdline_scanner,file_name);
++ /* redirect STDERR too */
++ Ustrcat(commandline," 2>&1");
++
++ scanner_out = popen(CS commandline,"r");
++ if (scanner_out == NULL) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: calling cmdline scanner (%s) failed: %s.", commandline, strerror(errno));
++ return DEFER;
++ };
++
++ snprintf(CS file_name,1024,"%s/scan/%s/%s_scanner_output", spool_directory, message_id, message_id);
++ scanner_record = fopen(CS file_name,"w");
++
++ if (scanner_record == NULL) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: opening scanner output file (%s) failed: %s.", file_name, strerror(errno));
++ pclose(scanner_out);
++ return DEFER;
++ };
++
++ /* look for trigger while recording output */
++ while(fgets(CS linebuffer,32767,scanner_out) != NULL) {
++ if ( Ustrlen(linebuffer) > fwrite(linebuffer, 1, Ustrlen(linebuffer), scanner_record) ) {
++ /* short write */
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: short write on scanner output file (%s).", file_name);
++ pclose(scanner_out);
++ return DEFER;
++ };
++ /* try trigger match */
++ if (!trigger && regex_match_and_setup(cmdline_trigger_re, linebuffer, 0, -1))
++ trigger = 1;
++ };
++
++ fclose(scanner_record);
++ pclose(scanner_out);
++
++ if (trigger) {
++ /* setup default virus name */
++ Ustrcpy(malware_name_buffer,"unknown");
++ malware_name = malware_name_buffer;
++
++ /* re-open the scanner output file, look for name match */
++ scanner_record = fopen(CS file_name,"r");
++ while(fgets(CS linebuffer,32767,scanner_record) != NULL) {
++ /* try match */
++ result = pcre_exec(cmdline_regex_re, NULL, CS linebuffer, Ustrlen(linebuffer), 0, 0, ovector, 30);
++ if (result >= 2) {
++ pcre_copy_substring(CS linebuffer, ovector, result, 1, CS malware_name_buffer, 255);
++ };
++ };
++ fclose(scanner_record);
++ }
++ else {
++ /* no virus found */
++ malware_name = NULL;
++ };
++ }
++ /* ----------------------------------------------------------------------- */
++
++
++ /* "sophie" scanner type ------------------------------------------------- */
++ else if (strcmpic(scanner_name,US"sophie") == 0) {
++ uschar *sophie_options;
++ uschar sophie_options_buffer[1024];
++ uschar sophie_options_default[] = "/var/run/sophie";
++ int bread = 0;
++ struct sockaddr_un server;
++ int sock;
++ uschar file_name[1024];
++ uschar av_buffer[1024];
++
++ if ((sophie_options = string_nextinlist(&av_scanner_work, &sep,
++ sophie_options_buffer,
++ sizeof(sophie_options_buffer))) == NULL) {
++ /* no options supplied, use default options */
++ sophie_options = sophie_options_default;
++ };
++
++ /* open the sophie socket */
++ sock = socket(AF_UNIX, SOCK_STREAM, 0);
++ if (sock < 0) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: can't open UNIX socket.");
++ return DEFER;
++ }
++ server.sun_family = AF_UNIX;
++ Ustrcpy(server.sun_path, sophie_options);
++ if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: unable to connect to sophie UNIX socket (%s). errno=%d", sophie_options, errno);
++ return DEFER;
++ }
++
++ /* pass the scan directory to sophie */
++ snprintf(CS file_name,1024,"%s/scan/%s", spool_directory, message_id);
++ if (write(sock, file_name, Ustrlen(file_name)) < 0) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: unable to write to sophie UNIX socket (%s)", sophie_options);
++ return DEFER;
++ };
++
++ write(sock, "\n", 1);
++
++ /* wait for result */
++ memset(av_buffer, 0, sizeof(av_buffer));
++ if ((!(bread = read(sock, av_buffer, sizeof(av_buffer))) > 0)) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: unable to read from sophie UNIX socket (%s)", sophie_options);
++ return DEFER;
++ };
++
++ close(sock);
++
++ /* infected ? */
++ if (av_buffer[0] == '1') {
++ if (Ustrchr(av_buffer, '\n')) *Ustrchr(av_buffer, '\n') = '\0';
++ Ustrcpy(malware_name_buffer,&av_buffer[2]);
++ malware_name = malware_name_buffer;
++ }
++ else if (!strncmp(CS av_buffer, "-1", 2)) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: malware acl condition: sophie reported error");
++ return DEFER;
++ }
++ else {
++ /* all ok, no virus */
++ malware_name = NULL;
++ };
++ }
++ /* ----------------------------------------------------------------------- */
++
++
++ /* "clamd" scanner type ------------------------------------------------- */
++ /* This code was contributed by David Saez <david@ols.es> */
++ else if (strcmpic(scanner_name,US"clamd") == 0) {
++ uschar *clamd_options;
++ uschar clamd_options_buffer[1024];
++ uschar clamd_options_default[] = "/tmp/clamd";
++ uschar *p,*vname;
++ struct sockaddr_un server;
++ int sock,port,bread=0;
++ uschar file_name[1024];
++ uschar av_buffer[1024];
++ uschar hostname[256];
++ struct hostent *he;
++ struct in_addr in;
++
++ if ((clamd_options = string_nextinlist(&av_scanner_work, &sep,
++ clamd_options_buffer,
++ sizeof(clamd_options_buffer))) == NULL) {
++ /* no options supplied, use default options */
++ clamd_options = clamd_options_default;
++ }
++
++ /* socket does not start with '/' -> network socket */
++ if (*clamd_options != '/') {
++
++ /* extract host and port part */
++ if( sscanf(CS clamd_options, "%s %u", hostname, &port) != 2 ) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: clamd: invalid socket '%s'", clamd_options);
++ return DEFER;
++ };
++
++ /* Lookup the host */
++ if((he = gethostbyname(CS hostname)) == 0) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: clamd: failed to lookup host '%s'", hostname);
++ return DEFER;
++ }
++
++ in = *(struct in_addr *) he->h_addr_list[0];
++
++ /* Open the ClamAV Socket */
++ if ( (sock = ip_socket(SOCK_STREAM, AF_INET)) < 0) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: clamd: unable to acquire socket (%s)",
++ strerror(errno));
++ return DEFER;
++ }
++
++ if (ip_connect(sock, AF_INET, (uschar*)inet_ntoa(in), port, 5) < 0) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: clamd: connection to %s, port %u failed (%s)",
++ inet_ntoa(in), port, strerror(errno));
++ return DEFER;
++ }
++ }
++ else {
++ /* open the local socket */
++ if ((sock = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: clamd: unable to acquire socket (%s)",
++ strerror(errno));
++ return DEFER;
++ }
++
++ server.sun_family = AF_UNIX;
++ Ustrcpy(server.sun_path, clamd_options);
++
++ if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: clamd: unable to connect to UNIX socket %s (%s)",
++ clamd_options, strerror(errno) );
++ return DEFER;
++ }
++ }
++
++ /* Pass the string to ClamAV (7 = "SCAN \n" + \0) */
++
++ snprintf(CS file_name,1024,"SCAN %s/scan/%s\n", spool_directory, message_id);
++
++ if (send(sock, file_name, Ustrlen(file_name), 0) < 0) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,"malware acl condition: clamd: unable to write to socket (%s)",
++ strerror(errno));
++ return DEFER;
++ }
++
++ /* we're done sending, close socket for writing */
++ shutdown(sock, SHUT_WR);
++
++ /* Read the result */
++ memset(av_buffer, 0, sizeof(av_buffer));
++ bread = read(sock, av_buffer, sizeof(av_buffer));
++ close(sock);
++
++ if (!(bread > 0)) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: clamd: unable to read from socket (%s)",
++ strerror(errno));
++ return DEFER;
++ }
++
++ if (bread == sizeof(av_buffer)) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: clamd: buffer too small");
++ return DEFER;
++ }
++
++ /* Check the result. ClamAV Returns
++ infected: -> "<filename>: <virusname> FOUND"
++ not-infected: -> "<filename>: OK"
++ error: -> "<filename>: <errcode> ERROR */
++
++ if (!(*av_buffer)) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: clamd: ClamAV returned null");
++ return DEFER;
++ }
++
++ /* colon in returned output? */
++ if((p = Ustrrchr(av_buffer,':')) == NULL) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: clamd: ClamAV returned malformed result: %s",
++ av_buffer);
++ return DEFER;
++ }
++
++ /* strip filename strip CR at the end */
++ ++p;
++ while (*p == ' ') ++p;
++ vname = p;
++ p = vname + Ustrlen(vname) - 1;
++ if( *p == '\n' ) *p = '\0';
++
++ if ((p = Ustrstr(vname, "FOUND"))!=NULL) {
++ *p=0;
++ for (--p;p>vname && *p<=32;p--) *p=0;
++ for (;*vname==32;vname++);
++ Ustrcpy(malware_name_buffer,vname);
++ malware_name = malware_name_buffer;
++ }
++ else {
++ if (Ustrstr(vname, "ERROR")!=NULL) {
++ /* ClamAV reports ERROR
++ Find line start */
++ for (;*vname!='\n' && vname>av_buffer; vname--);
++ if (*vname=='\n') vname++;
++
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: clamd: ClamAV returned %s",vname);
++ return DEFER;
++ }
++ else {
++ /* Everything should be OK */
++ malware_name = NULL;
++ }
++ }
++ }
++ /* ----------------------------------------------------------------------- */
++
++
++ /* "mksd" scanner type --------------------------------------------------- */
++ else if (strcmpic(scanner_name,US"mksd") == 0) {
++ uschar *mksd_options;
++ char *mksd_options_end;
++ uschar mksd_options_buffer[32];
++ int mksd_maxproc = 1; /* default, if no option supplied */
++ struct sockaddr_un server;
++ int sock;
++ int retval;
++
++ if ((mksd_options = string_nextinlist(&av_scanner_work, &sep,
++ mksd_options_buffer,
++ sizeof(mksd_options_buffer))) != NULL) {
++ mksd_maxproc = (int) strtol(CS mksd_options, &mksd_options_end, 10);
++ if ((*mksd_options == '\0') || (*mksd_options_end != '\0') ||
++ (mksd_maxproc < 1) || (mksd_maxproc > 32)) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: mksd: invalid option '%s'", mksd_options);
++ return DEFER;
++ }
++ }
++
++ /* open the mksd socket */
++ sock = socket(AF_UNIX, SOCK_STREAM, 0);
++ if (sock < 0) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: can't open UNIX socket.");
++ return DEFER;
++ }
++ server.sun_family = AF_UNIX;
++ Ustrcpy(server.sun_path, "/var/run/mksd/socket");
++ if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) {
++ close(sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: unable to connect to mksd UNIX socket (/var/run/mksd/socket). errno=%d", errno);
++ return DEFER;
++ }
++
++ malware_name = NULL;
++
++ /* choose the appropriate scan routine */
++ retval = demime_ok ?
++ mksd_scan_unpacked(sock, mksd_maxproc) :
++ mksd_scan_packed(sock);
++
++ if (retval != OK)
++ return retval;
++ }
++ /* ----------------------------------------------------------------------- */
++
++
++
++ /* "unknown" scanner type ------------------------------------------------- */
++ else {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware condition: unknown scanner type '%s'", scanner_name);
++ return DEFER;
++ };
++ /* ----------------------------------------------------------------------- */
++
++ /* set "been here, done that" marker */
++ malware_ok = 1;
++ };
++
++ /* match virus name against pattern (caseless ------->----------v) */
++ if ( (malware_name != NULL) &&
++ (regex_match_and_setup(re, malware_name, 0, -1)) ) {
++ return OK;
++ }
++ else {
++ return FAIL;
++ };
++}
++
++/* ============= private routines for the "mksd" scanner type ============== */
++
++#include <sys/uio.h>
++
++int mksd_writev (int sock, struct iovec *iov, int iovcnt)
++{
++ int i;
++
++ for (;;) {
++ do
++ i = writev (sock, iov, iovcnt);
++ while ((i < 0) && (errno == EINTR));
++ if (i <= 0) {
++ close (sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: unable to write to mksd UNIX socket (/var/run/mksd/socket)");
++ return -1;
++ }
++
++ for (;;)
++ if (i >= iov->iov_len) {
++ if (--iovcnt == 0)
++ return 0;
++ i -= iov->iov_len;
++ iov++;
++ } else {
++ iov->iov_len -= i;
++ iov->iov_base = CS iov->iov_base + i;
++ break;
++ }
++ }
++ return 0;
++}
++
++int mksd_read_lines (int sock, uschar *av_buffer, int av_buffer_size)
++{
++ int offset = 0;
++ int i;
++
++ do {
++ if ((i = recv (sock, av_buffer+offset, av_buffer_size-offset, 0)) <= 0) {
++ close (sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: unable to read from mksd UNIX socket (/var/run/mksd/socket)");
++ return -1;
++ }
++
++ offset += i;
++ /* offset == av_buffer_size -> buffer full */
++ if (offset == av_buffer_size) {
++ close (sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: malformed reply received from mksd");
++ return -1;
++ }
++ } while (av_buffer[offset-1] != '\n');
++
++ av_buffer[offset] = '\0';
++ return offset;
++}
++
++int mksd_parse_line (char *line)
++{
++ char *p;
++
++ switch (*line) {
++ case 'O':
++ /* OK */
++ return OK;
++ case 'E':
++ case 'A':
++ /* ERR */
++ if ((p = strchr (line, '\n')) != NULL)
++ (*p) = '\0';
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: mksd scanner failed: %s", line);
++ return DEFER;
++ default:
++ /* VIR */
++ if ((p = strchr (line, '\n')) != NULL) {
++ (*p) = '\0';
++ if (((p-line) > 5) && ((p-line) < sizeof (malware_name_buffer)) && (line[3] == ' '))
++ if (((p = strchr (line+4, ' ')) != NULL) && ((p-line) > 4)) {
++ (*p) = '\0';
++ Ustrcpy (malware_name_buffer, line+4);
++ malware_name = malware_name_buffer;
++ return OK;
++ }
++ }
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: malformed reply received from mksd: %s", line);
++ return DEFER;
++ }
++}
++
++int mksd_scan_packed (int sock)
++{
++ struct iovec iov[7];
++ char *cmd = "MSQ/scan/.eml\n";
++ uschar av_buffer[1024];
++
++ iov[0].iov_base = cmd;
++ iov[0].iov_len = 3;
++ iov[1].iov_base = CS spool_directory;
++ iov[1].iov_len = Ustrlen (spool_directory);
++ iov[2].iov_base = cmd + 3;
++ iov[2].iov_len = 6;
++ iov[3].iov_base = iov[5].iov_base = CS message_id;
++ iov[3].iov_len = iov[5].iov_len = Ustrlen (message_id);
++ iov[4].iov_base = cmd + 3;
++ iov[4].iov_len = 1;
++ iov[6].iov_base = cmd + 9;
++ iov[6].iov_len = 5;
++
++ if (mksd_writev (sock, iov, 7) < 0)
++ return DEFER;
++
++ if (mksd_read_lines (sock, av_buffer, sizeof (av_buffer)) < 0)
++ return DEFER;
++
++ close (sock);
++
++ return mksd_parse_line (CS av_buffer);
++}
++
++int mksd_scan_unpacked (int sock, int maxproc)
++{
++ struct iovec iov[5];
++ char *cmd = "\nSQ/";
++ DIR *unpdir;
++ struct dirent *entry;
++ int pending = 0;
++ uschar *line;
++ int i, offset;
++ uschar mbox_name[1024];
++ uschar unpackdir[1024];
++ uschar av_buffer[16384];
++
++ snprintf (CS mbox_name, sizeof (mbox_name), "%s.eml", CS message_id);
++ snprintf (CS unpackdir, sizeof (unpackdir), "%s/scan/%s", CS spool_directory, CS message_id);
++
++ if ((unpdir = opendir (CS unpackdir)) == NULL) {
++ close (sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: unable to scan spool directory");
++ return DEFER;
++ }
++
++ iov[0].iov_base = cmd;
++ iov[0].iov_len = 3;
++ iov[1].iov_base = CS unpackdir;
++ iov[1].iov_len = Ustrlen (unpackdir);
++ iov[2].iov_base = cmd + 3;
++ iov[2].iov_len = 1;
++ iov[4].iov_base = cmd;
++ iov[4].iov_len = 1;
++
++ /* main loop */
++ while ((unpdir != NULL) || (pending > 0)) {
++
++ /* write loop */
++ while ((pending < maxproc) && (unpdir != NULL)) {
++ if ((entry = readdir (unpdir)) != NULL) {
++ if ((Ustrcmp (entry->d_name, ".") != 0) &&
++ (Ustrcmp (entry->d_name, "..") != 0) &&
++ (Ustrcmp (entry->d_name, mbox_name) != 0)) {
++ iov[3].iov_base = entry->d_name;
++ iov[3].iov_len = strlen (entry->d_name);
++ if (mksd_writev (sock, iov, 5) < 0) {
++ closedir (unpdir);
++ return DEFER;
++ }
++ iov[0].iov_base = cmd + 1;
++ iov[0].iov_len = 2;
++ pending++;
++ }
++ } else {
++ closedir (unpdir);
++ unpdir = NULL;
++ }
++ }
++
++ /* read and parse */
++ if (pending > 0) {
++ if ((offset = mksd_read_lines (sock, av_buffer, sizeof (av_buffer))) < 0) {
++ if (unpdir != NULL)
++ closedir (unpdir);
++ return DEFER;
++ }
++ line = av_buffer;
++ do {
++ if (((i = mksd_parse_line (CS line)) != OK) || (malware_name != NULL)) {
++ close (sock);
++ if (unpdir != NULL)
++ closedir (unpdir);
++ return i;
++ }
++ pending--;
++ if ((line = Ustrchr (line, '\n')) == NULL) {
++ close (sock);
++ if (unpdir != NULL)
++ closedir (unpdir);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: unterminated line received from mksd");
++ return DEFER;
++ }
++ } while (++line != (av_buffer + offset));
++ offset = 0;
++ }
++ }
++
++ close (sock);
++ return OK;
++}
+diff -urN exim-4.30-orig/src/mime.c exim-4.30/src/mime.c
+--- exim-4.30-orig/src/mime.c Thu Jan 1 01:00:00 1970
++++ exim-4.30/src/mime.c Sat Jan 17 00:05:54 2004
+@@ -0,0 +1,661 @@
++/*************************************************
++* Exim - an Internet mail transport agent *
++*************************************************/
++
++/* This file is part of the exiscan-acl content scanner
++patch. It is NOT part of the standard exim distribution. */
++
++/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2004 */
++/* License: GPL */
++
++#include "exim.h"
++#include "mime.h"
++#include <sys/stat.h>
++
++FILE *mime_stream = NULL;
++uschar *mime_current_boundary = NULL;
++
++
++/*************************************************
++* decode quoted-printable chars *
++*************************************************/
++
++/* gets called when we hit a =
++ returns: new pointer position
++ result code in c:
++ -2 - decode error
++ -1 - soft line break, no char
++ 0-255 - char to write
++*/
++
++unsigned int mime_qp_hstr_i(uschar *cptr) {
++ unsigned int i, j = 0;
++ while (cptr && *cptr && isxdigit(*cptr)) {
++ i = *cptr++ - '0';
++ if (9 < i) i -= 7;
++ j <<= 4;
++ j |= (i & 0x0f);
++ }
++ return(j);
++}
++
++uschar *mime_decode_qp_char(uschar *qp_p,int *c) {
++ uschar hex[] = {0,0,0};
++ int nan = 0;
++ uschar *initial_pos = qp_p;
++
++ /* advance one char */
++ qp_p++;
++
++ REPEAT_FIRST:
++ if ( (*qp_p == '\t') || (*qp_p == ' ') || (*qp_p == '\r') ) {
++ /* tab or whitespace may follow
++ just ignore it, but remember
++ that this is not a valid hex
++ encoding any more */
++ nan = 1;
++ qp_p++;
++ goto REPEAT_FIRST;
++ }
++ else if ( (('0' <= *qp_p) && (*qp_p <= '9')) || (('A' <= *qp_p) && (*qp_p <= 'F')) || (('a' <= *qp_p) && (*qp_p <= 'f')) ) {
++ /* this is a valid hex char, if nan is unset */
++ if (nan) {
++ /* this is illegal */
++ *c = -2;
++ return initial_pos;
++ }
++ else {
++ hex[0] = *qp_p;
++ qp_p++;
++ };
++ }
++ else if (*qp_p == '\n') {
++ /* hit soft line break already, continue */
++ *c = -1;
++ return qp_p;
++ }
++ else {
++ /* illegal char here */
++ *c = -2;
++ return initial_pos;
++ };
++
++ if ( (('0' <= *qp_p) && (*qp_p <= '9')) || (('A' <= *qp_p) && (*qp_p <= 'F')) || (('a' <= *qp_p) && (*qp_p <= 'f')) ) {
++ if (hex[0] > 0) {
++ hex[1] = *qp_p;
++ /* do hex conversion */
++ *c = mime_qp_hstr_i(hex);
++ qp_p++;
++ return qp_p;
++ }
++ else {
++ /* huh ? */
++ *c = -2;
++ return initial_pos;
++ };
++ }
++ else {
++ /* illegal char */
++ *c = -2;
++ return initial_pos;
++ };
++}
++
++
++uschar *mime_parse_line(uschar *buffer, uschar *encoding, int *num_decoded) {
++ uschar *data = NULL;
++
++ data = (uschar *)malloc(Ustrlen(buffer)+2);
++
++ if (encoding == NULL) {
++ /* no encoding type at all */
++ NO_DECODING:
++ memcpy(data, buffer, Ustrlen(buffer));
++ data[(Ustrlen(buffer))] = 0;
++ *num_decoded = Ustrlen(data);
++ return data;
++ }
++ else if (Ustrcmp(encoding,"base64") == 0) {
++ uschar *p = buffer;
++ int offset = 0;
++
++ /* ----- BASE64 ---------------------------------------------------- */
++ /* NULL out '\r' and '\n' chars */
++ while (Ustrrchr(p,'\r') != NULL) {
++ *(Ustrrchr(p,'\r')) = '\0';
++ };
++ while (Ustrrchr(p,'\n') != NULL) {
++ *(Ustrrchr(p,'\n')) = '\0';
++ };
++
++ while (*(p+offset) != '\0') {
++ /* hit illegal char ? */
++ if (mime_b64[*(p+offset)] == 128) {
++ offset++;
++ }
++ else {
++ *p = mime_b64[*(p+offset)];
++ p++;
++ };
++ };
++ *p = 255;
++
++ /* line is translated, start bit shifting */
++ p = buffer;
++ *num_decoded = 0;
++ while(*p != 255) {
++ uschar tmp_c;
++
++ /* byte 0 ---------------------- */
++ if (*(p+1) == 255) {
++ break;
++ }
++ data[(*num_decoded)] = *p;
++ data[(*num_decoded)] <<= 2;
++ tmp_c = *(p+1);
++ tmp_c >>= 4;
++ data[(*num_decoded)] |= tmp_c;
++ (*num_decoded)++;
++ p++;
++ /* byte 1 ---------------------- */
++ if (*(p+1) == 255) {
++ break;
++ }
++ data[(*num_decoded)] = *p;
++ data[(*num_decoded)] <<= 4;
++ tmp_c = *(p+1);
++ tmp_c >>= 2;
++ data[(*num_decoded)] |= tmp_c;
++ (*num_decoded)++;
++ p++;
++ /* byte 2 ---------------------- */
++ if (*(p+1) == 255) {
++ break;
++ }
++ data[(*num_decoded)] = *p;
++ data[(*num_decoded)] <<= 6;
++ data[(*num_decoded)] |= *(p+1);
++ (*num_decoded)++;
++ p+=2;
++
++ };
++ return data;
++ /* ----------------------------------------------------------------- */
++ }
++ else if (Ustrcmp(encoding,"quoted-printable") == 0) {
++ uschar *p = buffer;
++
++ /* ----- QP -------------------------------------------------------- */
++ *num_decoded = 0;
++ while (*p != 0) {
++ if (*p == '=') {
++ int decode_qp_result;
++
++ p = mime_decode_qp_char(p,&decode_qp_result);
++
++ if (decode_qp_result == -2) {
++ /* Error from decoder. p is unchanged. */
++ data[(*num_decoded)] = '=';
++ (*num_decoded)++;
++ p++;
++ }
++ else if (decode_qp_result == -1) {
++ break;
++ }
++ else if (decode_qp_result >= 0) {
++ data[(*num_decoded)] = decode_qp_result;
++ (*num_decoded)++;
++ };
++ }
++ else {
++ data[(*num_decoded)] = *p;
++ (*num_decoded)++;
++ p++;
++ };
++ };
++ return data;
++ /* ----------------------------------------------------------------- */
++ }
++ /* unknown encoding type, just dump as-is */
++ else goto NO_DECODING;
++};
++
++
++FILE *mime_get_decode_file(uschar *pname, uschar *fname) {
++ FILE *f;
++ uschar *filename;
++
++ filename = (uschar *)malloc(2048);
++
++ if ((pname != NULL) && (fname != NULL)) {
++ snprintf(filename, 2048, "%s/%s", pname, fname);
++ f = fopen(filename,"w+");
++ }
++ else if (pname == NULL) {
++ f = fopen(fname,"w+");
++ }
++ else if (fname == NULL) {
++ int file_nr = 0;
++ int result = 0;
++
++ /* must find first free sequential filename */
++ do {
++ struct stat mystat;
++ snprintf(CS filename,2048,"%s/%s-%05u", pname, message_id, file_nr);
++ file_nr++;
++ /* security break */
++ if (file_nr >= 1024)
++ break;
++ result = stat(CS filename,&mystat);
++ }
++ while(result != -1);
++ f = fopen(filename,"w+");
++ };
++
++ /* set expansion variable */
++ mime_decoded_filename = filename;
++
++ return f;
++};
++
++
++int mime_decode(uschar **listptr) {
++ int sep = 0;
++ uschar *list = *listptr;
++ uschar *option;
++ uschar option_buffer[1024];
++ uschar decode_path[1024];
++ FILE *decode_file = NULL;
++ uschar *buffer = NULL;
++ long f_pos = 0;
++
++ if (mime_stream == NULL)
++ return FAIL;
++
++ f_pos = ftell(mime_stream);
++
++ /* build default decode path (will exist since MBOX must be spooled up) */
++ snprintf(CS decode_path,1024,"%s/scan/%s",spool_directory,message_id);
++
++ /* reserve a line buffer to work in */
++ buffer = (uschar *)malloc(MIME_MAX_LINE_LENGTH+1);
++ if (buffer == NULL) {
++ log_write(0, LOG_PANIC,
++ "decode ACL condition: can't allocate %d bytes of memory.", MIME_MAX_LINE_LENGTH+1);
++ return DEFER;
++ };
++
++ /* try to find 1st option */
++ if ((option = string_nextinlist(&list, &sep,
++ option_buffer,
++ sizeof(option_buffer))) != NULL) {
++
++ /* parse 1st option */
++ if ( (Ustrcmp(option,"false") == 0) || (Ustrcmp(option,"0") == 0) ) {
++ /* explicitly no decoding */
++ return FAIL;
++ };
++
++ if (Ustrcmp(option,"default") == 0) {
++ /* explicit default path + file names */
++ goto DEFAULT_PATH;
++ };
++
++ if (option[0] == '/') {
++ struct stat statbuf;
++
++ memset(&statbuf,0,sizeof(statbuf));
++
++ /* assume either path or path+file name */
++ if ( (stat(CS option, &statbuf) == 0) && S_ISDIR(statbuf.st_mode) )
++ /* is directory, use it as decode_path */
++ decode_file = mime_get_decode_file(option, NULL);
++ else
++ /* does not exist or is a file, use as full file name */
++ decode_file = mime_get_decode_file(NULL, option);
++ }
++ else
++ /* assume file name only, use default path */
++ decode_file = mime_get_decode_file(decode_path, option);
++ }
++ else
++ /* no option? patch default path */
++ DEFAULT_PATH: decode_file = mime_get_decode_file(decode_path, NULL);
++
++ if (decode_file == NULL)
++ return DEFER;
++
++ /* read data linewise and dump it to the file,
++ while looking for the current boundary */
++ while(fgets(buffer, MIME_MAX_LINE_LENGTH, mime_stream) != NULL) {
++ uschar *decoded_line = NULL;
++ int decoded_line_length = 0;
++
++ if (mime_current_boundary != NULL) {
++ /* boundary line must start with 2 dashes */
++ if (Ustrncmp(buffer,"--",2) == 0) {
++ if (Ustrncmp((buffer+2),mime_current_boundary,Ustrlen(mime_current_boundary)) == 0)
++ break;
++ };
++ };
++
++ decoded_line = mime_parse_line(buffer, mime_content_transfer_encoding, &decoded_line_length);
++ /* write line to decode file */
++ if (fwrite(decoded_line, 1, decoded_line_length, decode_file) < decoded_line_length) {
++ /* error/short write */
++ clearerr(mime_stream);
++ fseek(mime_stream,f_pos,SEEK_SET);
++ return DEFER;
++ };
++ free(decoded_line);
++ }
++
++ fclose(decode_file);
++
++ clearerr(mime_stream);
++ fseek(mime_stream,f_pos,SEEK_SET);
++
++ return OK;
++};
++
++int mime_get_header(FILE *f, uschar *header) {
++ int c = EOF;
++ int done = 0;
++ int header_value_mode = 0;
++ int header_open_brackets = 0;
++ int num_copied = 0;
++
++ while(!done) {
++
++ c = fgetc(f);
++ if (c == EOF) break;
++
++ /* always skip CRs */
++ if (c == '\r') continue;
++
++ if (c == '\n') {
++ if (num_copied > 0) {
++ /* look if next char is '\t' or ' ' */
++ c = fgetc(f);
++ if (c == EOF) break;
++ if ( (c == '\t') || (c == ' ') ) continue;
++ ungetc(c,f);
++ };
++ /* end of the header, terminate with ';' */
++ c = ';';
++ done = 1;
++ };
++
++ /* skip control characters */
++ if (c < 32) continue;
++
++ if (header_value_mode) {
++ /* --------- value mode ----------- */
++ /* skip quotes */
++ if (c == '"') continue;
++
++ /* leave value mode on ';' */
++ if (c == ';') {
++ header_value_mode = 0;
++ };
++ /* -------------------------------- */
++ }
++ else {
++ /* -------- non-value mode -------- */
++ /* skip whitespace + tabs */
++ if ( (c == ' ') || (c == '\t') )
++ continue;
++ if (c == '\\') {
++ /* quote next char. can be used
++ to escape brackets. */
++ c = fgetc(f);
++ if (c == EOF) break;
++ }
++ else if (c == '(') {
++ header_open_brackets++;
++ continue;
++ }
++ else if ((c == ')') && header_open_brackets) {
++ header_open_brackets--;
++ continue;
++ }
++ else if ( (c == '=') && !header_open_brackets ) {
++ /* enter value mode */
++ header_value_mode = 1;
++ };
++
++ /* skip chars while we are in a comment */
++ if (header_open_brackets > 0)
++ continue;
++ /* -------------------------------- */
++ };
++
++ /* copy the char to the buffer */
++ header[num_copied] = (uschar)c;
++ /* raise counter */
++ num_copied++;
++
++ /* break if header buffer is full */
++ if (num_copied > MIME_MAX_HEADER_SIZE-1) {
++ done = 1;
++ };
++ };
++
++ if (header[num_copied-1] != ';') {
++ header[num_copied-1] = ';';
++ };
++
++ /* 0-terminate */
++ header[num_copied] = '\0';
++
++ /* return 0 for EOF or empty line */
++ if ((c == EOF) || (num_copied == 1))
++ return 0;
++ else
++ return 1;
++};
++
++
++int mime_acl_check(FILE *f, uschar *boundary, uschar **user_msgptr, uschar **log_msgptr) {
++ int rc = OK;
++ uschar *header = NULL;
++ uschar *this_boundary = NULL;
++
++ /* reserve a line buffer to work in */
++ header = (uschar *)malloc(MIME_MAX_HEADER_SIZE+1);
++ if (header == NULL) {
++ log_write(0, LOG_PANIC,
++ "acl_smtp_mime: can't allocate %d bytes of memory.", MIME_MAX_HEADER_SIZE+1);
++ return DEFER;
++ };
++
++ /* loop through parts */
++ while(1) {
++
++ /* reset all per-part mime variables */
++ mime_anomaly_level = NULL;
++ mime_anomaly_text = NULL;
++ mime_boundary = NULL;
++ mime_charset = NULL;
++ mime_decoded_filename = NULL;
++ mime_filename = NULL;
++ mime_content_description = NULL;
++ mime_content_disposition = NULL;
++ mime_content_id = NULL;
++ mime_content_transfer_encoding = NULL;
++ mime_content_type = NULL;
++ mime_is_multipart = 0;
++
++ /*
++ If boundary is null, we assume that *f is positioned on the start of headers (for example,
++ at the very beginning of a message.
++ If a boundary is given, we must first advance to it to reach the start of the next header
++ block.
++ */
++
++ if (boundary != NULL) {
++ while(fgets(header, MIME_MAX_HEADER_SIZE, f) != NULL) {
++ /* boundary line must start with 2 dashes */
++ if (Ustrncmp(header,"--",2) == 0) {
++ if (Ustrncmp((header+2),boundary,Ustrlen(boundary)) == 0) {
++ /* found boundary */
++ if (Ustrncmp((header+2+Ustrlen(boundary)),"--",2) == 0) {
++ /* END boundary found */
++ debug_printf("End boundary found %s\n", boundary);
++ return rc;
++ }
++ else {
++ debug_printf("Next part with boundary %s\n", boundary);
++ };
++ /* can't use break here */
++ goto DECODE_HEADERS;
++ }
++ };
++ }
++ /* Hit EOF or read error. Ugh. */
++ debug_printf("Hit EOF ...\n");
++ return rc;
++ };
++
++ DECODE_HEADERS:
++ /* parse headers, set up expansion variables */
++ while(mime_get_header(f,header)) {
++ int i;
++ /* loop through header list */
++ for (i = 0; i < mime_header_list_size; i++) {
++ uschar *header_value = NULL;
++ int header_value_len = 0;
++
++ /* found an interesting header? */
++ if (strncmpic(mime_header_list[i].name,header,mime_header_list[i].namelen) == 0) {
++ uschar *p = header + mime_header_list[i].namelen;
++ /* yes, grab the value (normalize to lower case)
++ and copy to its corresponding expansion variable */
++ while(*p != ';') {
++ *p = tolower(*p);
++ p++;
++ };
++ header_value_len = (p - (header + mime_header_list[i].namelen));
++ header_value = (uschar *)malloc(header_value_len+1);
++ memset(header_value,0,header_value_len+1);
++ p = header + mime_header_list[i].namelen;
++ Ustrncpy(header_value, p, header_value_len);
++ debug_printf("Found %s MIME header, value is '%s'\n", mime_header_list[i].name, header_value);
++ *((uschar **)(mime_header_list[i].value)) = header_value;
++
++ /* make p point to the next character after the closing ';' */
++ p += (header_value_len+1);
++
++ /* grab all param=value tags on the remaining line, check if they are interesting */
++ NEXT_PARAM_SEARCH: while (*p != 0) {
++ int j;
++ for (j = 0; j < mime_parameter_list_size; j++) {
++ uschar *param_value = NULL;
++ int param_value_len = 0;
++
++ /* found an interesting parameter? */
++ if (strncmpic(mime_parameter_list[j].name,p,mime_parameter_list[j].namelen) == 0) {
++ uschar *q = p + mime_parameter_list[j].namelen;
++ /* yes, grab the value and copy to its corresponding expansion variable */
++ while(*q != ';') q++;
++ param_value_len = (q - (p + mime_parameter_list[j].namelen));
++ param_value = (uschar *)malloc(param_value_len+1);
++ memset(param_value,0,param_value_len+1);
++ q = p + mime_parameter_list[j].namelen;
++ Ustrncpy(param_value, q, param_value_len);
++ param_value = rfc2047_decode(param_value, TRUE, NULL, 32, &param_value_len, &q);
++ debug_printf("Found %s MIME parameter in %s header, value is '%s'\n", mime_parameter_list[j].name, mime_header_list[i].name, param_value);
++ *((uschar **)(mime_parameter_list[j].value)) = param_value;
++ p += (mime_parameter_list[j].namelen + param_value_len + 1);
++ goto NEXT_PARAM_SEARCH;
++ };
++ }
++ /* There is something, but not one of our interesting parameters.
++ Advance to the next semicolon */
++ while(*p != ';') p++;
++ p++;
++ };
++ };
++ };
++ };
++
++ /* set additional flag variables (easier access) */
++ if ( (mime_content_type != NULL) &&
++ (Ustrncmp(mime_content_type,"multipart",9) == 0) )
++ mime_is_multipart = 1;
++
++ /* Make a copy of the boundary pointer.
++ Required since mime_boundary is global
++ and can be overwritten further down in recursion */
++ this_boundary = mime_boundary;
++
++ /* raise global counter */
++ mime_part_count++;
++
++ /* copy current file handle to global variable */
++ mime_stream = f;
++ mime_current_boundary = boundary;
++
++ /* call ACL handling function */
++ rc = acl_check(ACL_WHERE_MIME, NULL, acl_smtp_mime, user_msgptr, log_msgptr);
++
++ mime_stream = NULL;
++ mime_current_boundary = NULL;
++
++ if (rc != OK) break;
++
++ /* If we have a multipart entity and a boundary, go recursive */
++ if ( (mime_content_type != NULL) &&
++ (this_boundary != NULL) &&
++ (Ustrncmp(mime_content_type,"multipart",9) == 0) ) {
++ debug_printf("Entering multipart recursion, boundary '%s'\n", this_boundary);
++ rc = mime_acl_check(f, this_boundary, user_msgptr, log_msgptr);
++ if (rc != OK) break;
++ }
++ else if ( (mime_content_type != NULL) &&
++ (Ustrncmp(mime_content_type,"message/rfc822",14) == 0) ) {
++ uschar *rfc822name = NULL;
++ uschar filename[2048];
++ int file_nr = 0;
++ int result = 0;
++
++ /* must find first free sequential filename */
++ do {
++ struct stat mystat;
++ snprintf(CS filename,2048,"%s/scan/%s/__rfc822_%05u", spool_directory, message_id, file_nr);
++ file_nr++;
++ /* security break */
++ if (file_nr >= 128)
++ goto NO_RFC822;
++ result = stat(CS filename,&mystat);
++ }
++ while(result != -1);
++
++ rfc822name = filename;
++
++ /* decode RFC822 attachment */
++ mime_decoded_filename = NULL;
++ mime_stream = f;
++ mime_current_boundary = boundary;
++ mime_decode(&rfc822name);
++ mime_stream = NULL;
++ mime_current_boundary = NULL;
++ if (mime_decoded_filename == NULL) {
++ /* decoding failed */
++ log_write(0, LOG_MAIN,
++ "mime_regex acl condition warning - could not decode RFC822 MIME part to file.");
++ return DEFER;
++ };
++ mime_decoded_filename = NULL;
++ };
++
++ NO_RFC822:
++ /* If the boundary of this instance is NULL, we are finished here */
++ if (boundary == NULL) break;
++
++ };
++
++ return rc;
++};
++
++
+diff -urN exim-4.30-orig/src/mime.h exim-4.30/src/mime.h
+--- exim-4.30-orig/src/mime.h Thu Jan 1 01:00:00 1970
++++ exim-4.30/src/mime.h Tue Jan 13 11:39:14 2004
+@@ -0,0 +1,66 @@
++/*************************************************
++* Exim - an Internet mail transport agent *
++*************************************************/
++
++/* This file is part of the exiscan-acl content scanner
++patch. It is NOT part of the standard exim distribution. */
++
++/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2004 */
++/* License: GPL */
++
++
++#define MIME_MAX_HEADER_SIZE 8192
++#define MIME_MAX_LINE_LENGTH 32768
++
++typedef struct mime_header {
++ uschar *name;
++ int namelen;
++ void *value;
++} mime_header;
++
++static mime_header mime_header_list[] = {
++ { US"content-type:", 13, &mime_content_type },
++ { US"content-disposition:", 20, &mime_content_disposition },
++ { US"content-transfer-encoding:", 26, &mime_content_transfer_encoding },
++ { US"content-id:", 11, &mime_content_id },
++ { US"content-description:", 20 , &mime_content_description }
++};
++
++static int mime_header_list_size = sizeof(mime_header_list)/sizeof(mime_header);
++
++
++
++typedef struct mime_parameter {
++ uschar *name;
++ int namelen;
++ void *value;
++} mime_parameter;
++
++static mime_parameter mime_parameter_list[] = {
++ { US"name=", 5, &mime_filename },
++ { US"filename=", 9, &mime_filename },
++ { US"charset=", 8, &mime_charset },
++ { US"boundary=", 9, &mime_boundary }
++};
++
++static int mime_parameter_list_size = sizeof(mime_parameter_list)/sizeof(mime_parameter);
++
++/* BASE64 decoder matrix */
++static unsigned char mime_b64[256]={
++/* 0 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++/* 16 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++/* 32 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 62, 128, 128, 128, 63,
++/* 48 */ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 128, 128, 128, 255, 128, 128,
++/* 64 */ 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
++/* 80 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 128, 128, 128, 128, 128,
++/* 96 */ 128, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
++/* 112 */ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 128, 128, 128, 128, 128,
++/* 128 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++/* 144 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++/* 160 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++/* 176 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++/* 192 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++/* 208 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++/* 224 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
++/* 240 */ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128
++};
+diff -urN exim-4.30-orig/src/readconf.c exim-4.30/src/readconf.c
+--- exim-4.30-orig/src/readconf.c Mon Dec 1 11:15:41 2003
++++ exim-4.30/src/readconf.c Fri Jan 16 20:40:12 2004
+@@ -141,6 +141,7 @@
+ { "acl_smtp_helo", opt_stringptr, &acl_smtp_helo },
+ { "acl_smtp_mail", opt_stringptr, &acl_smtp_mail },
+ { "acl_smtp_mailauth", opt_stringptr, &acl_smtp_mailauth },
++ { "acl_smtp_mime", opt_stringptr, &acl_smtp_mime },
+ { "acl_smtp_rcpt", opt_stringptr, &acl_smtp_rcpt },
+ #ifdef SUPPORT_TLS
+ { "acl_smtp_starttls", opt_stringptr, &acl_smtp_starttls },
+@@ -152,6 +153,7 @@
+ { "allow_utf8_domains", opt_bool, &allow_utf8_domains },
+ { "auth_advertise_hosts", opt_stringptr, &auth_advertise_hosts },
+ { "auto_thaw", opt_time, &auto_thaw },
++ { "av_scanner", opt_stringptr, &av_scanner },
+ { "bi_command", opt_stringptr, &bi_command },
+ { "bounce_message_file", opt_stringptr, &bounce_message_file },
+ { "bounce_message_text", opt_stringptr, &bounce_message_text },
+@@ -311,6 +313,7 @@
+ { "smtp_receive_timeout", opt_time, &smtp_receive_timeout },
+ { "smtp_reserve_hosts", opt_stringptr, &smtp_reserve_hosts },
+ { "smtp_return_error_details",opt_bool, &smtp_return_error_details },
++ { "spamd_address", opt_stringptr, &spamd_address },
+ { "split_spool_directory", opt_bool, &split_spool_directory },
+ { "spool_directory", opt_stringptr, &spool_directory },
+ { "strip_excess_angle_brackets", opt_bool, &strip_excess_angle_brackets },
+diff -urN exim-4.30-orig/src/receive.c exim-4.30/src/receive.c
+--- exim-4.30-orig/src/receive.c Mon Dec 1 11:15:41 2003
++++ exim-4.30/src/receive.c Tue Mar 2 12:46:37 2004
+@@ -2478,6 +2478,122 @@
+
+ if (smtp_input && !smtp_batched_input)
+ {
++ if (acl_smtp_mime != NULL && recipients_count > 0)
++ {
++ FILE *mbox_file;
++ uschar rfc822_file_path[2048];
++ unsigned long long mbox_size;
++ header_line *my_headerlist;
++ uschar *user_msg, *log_msg;
++ int mime_part_count_buffer = -1;
++
++ memset(CS rfc822_file_path,0,2048);
++
++ /* check if it is a MIME message */
++ my_headerlist = header_list;
++ while (my_headerlist != NULL) {
++ /* skip deleted headers */
++ if (my_headerlist->type == '*') {
++ my_headerlist = my_headerlist->next;
++ continue;
++ };
++ if (strncmpic(my_headerlist->text, US"MIME-Version:", 13) == 0) {
++ DEBUG(D_receive) debug_printf("Found MIME-Version: header - executing acl_smtp_mime.\n");
++ goto DO_MIME_ACL;
++ };
++ my_headerlist = my_headerlist->next;
++ };
++
++ DEBUG(D_receive) debug_printf("No MIME-Version: header - not a MIME message.\n");
++ goto NO_MIME_ACL;
++
++ DO_MIME_ACL:
++ /* make sure the eml mbox file is spooled up */
++ mbox_file = spool_mbox(&mbox_size);
++ if (mbox_file == NULL) {
++ /* error while spooling */
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "acl_smtp_mime: error while creating mbox spool file, message temporarily rejected.");
++ Uunlink(spool_name);
++ unspool_mbox();
++ smtp_respond(451, TRUE, US"temporary local problem");
++ message_id[0] = 0; /* Indicate no message accepted */
++ smtp_reply = US""; /* Indicate reply already sent */
++ goto TIDYUP; /* Skip to end of function */
++ };
++ mime_is_rfc822 = 0;
++
++
++ MIME_ACL_CHECK:
++ mime_part_count = -1;
++ rc = mime_acl_check(mbox_file, NULL, &user_msg, &log_msg);
++ fclose(mbox_file);
++ if (Ustrlen(rfc822_file_path) > 0) {
++ mime_part_count = mime_part_count_buffer;
++ if (unlink(CS rfc822_file_path) == -1) {
++ log_write(0, LOG_PANIC,
++ "acl_smtp_mime: can't unlink RFC822 spool file, skipping.");
++ goto END_MIME_ACL;
++ };
++ };
++
++ /* check if we must check any message/rfc822 attachments */
++ if (rc == OK) {
++ uschar temp_path[1024];
++ int n;
++ struct dirent *entry;
++ DIR *tempdir;
++
++ snprintf(CS temp_path, 1024, "%s/scan/%s", spool_directory, message_id);
++
++ tempdir = opendir(CS temp_path);
++ n = 0;
++ do {
++ entry = readdir(tempdir);
++ if (entry == NULL) break;
++ if (strncmpic(entry->d_name,"__rfc822_",9) == 0) {
++ snprintf(CS rfc822_file_path, 2048,"%s/scan/%s/%s", spool_directory, message_id, entry->d_name);
++ debug_printf("RFC822 attachment detected: running MIME ACL for '%s'\n", rfc822_file_path);
++ break;
++ };
++ } while (1);
++ closedir(tempdir);
++
++ if (entry != NULL) {
++ mbox_file = Ufopen(rfc822_file_path,"r");
++ if (mbox_file == NULL) {
++ log_write(0, LOG_PANIC,
++ "acl_smtp_mime: can't open RFC822 spool file, skipping.");
++ unlink(CS rfc822_file_path);
++ goto END_MIME_ACL;
++ };
++ /* set RFC822 expansion variable */
++ mime_is_rfc822 = 1;
++ mime_part_count_buffer = mime_part_count;
++ goto MIME_ACL_CHECK;
++ };
++ };
++
++ END_MIME_ACL:
++ add_acl_headers(US"MIME");
++ if (rc == DISCARD)
++ {
++ recipients_count = 0;
++ blackholed_by = US"MIME ACL";
++ }
++ else if (rc != OK)
++ {
++ Uunlink(spool_name);
++ unspool_mbox();
++ if (smtp_handle_acl_fail(ACL_WHERE_MIME, rc, user_msg, log_msg) != 0)
++ smtp_yield = FALSE; /* No more messsages after dropped connection */
++ smtp_reply = US""; /* Indicate reply already sent */
++ message_id[0] = 0; /* Indicate no message accepted */
++ goto TIDYUP; /* Skip to end of function */
++ };
++ }
++
++ NO_MIME_ACL:
+ if (acl_smtp_data != NULL && recipients_count > 0)
+ {
+ uschar *user_msg, *log_msg;
+@@ -2491,6 +2607,7 @@
+ else if (rc != OK)
+ {
+ Uunlink(spool_name);
++ unspool_mbox();
+ if (smtp_handle_acl_fail(ACL_WHERE_DATA, rc, user_msg, log_msg) != 0)
+ smtp_yield = FALSE; /* No more messsages after dropped connection */
+ smtp_reply = US""; /* Indicate reply already sent */
+@@ -2500,6 +2617,7 @@
+ }
+ }
+
++
+ /* Handle non-SMTP and batch SMTP (i.e. non-interactive) messages. Note that
+ we cannot take different actions for permanent and temporary rejections. */
+
+@@ -2540,6 +2658,8 @@
+ enable_dollar_recipients = FALSE;
+ }
+
++ unspool_mbox();
++
+ /* The final check on the message is to run the scan_local() function. The
+ version supplied with Exim always accepts, but this is a hook for sysadmins to
+ supply their own checking code. The local_scan() function is run even when all
+@@ -2952,6 +3072,7 @@
+ if this happens? */
+
+ TIDYUP:
++
+ process_info[process_info_len] = 0; /* Remove message id */
+ if (data_file != NULL) fclose(data_file); /* Frees the lock */
+
+@@ -2978,12 +3099,31 @@
+ {
+ if (smtp_reply == NULL)
+ {
+- smtp_printf("250 OK id=%s\r\n", message_id);
++ if (fake_reject)
++ {
++ smtp_printf("550-FAKE_REJECT id=%s\r\n", message_id);
++ smtp_printf("550-Your message has been rejected but is being kept for evaluation.\r\n");
++ smtp_printf("550 If it was a legit message, it may still be delivered to the target recipient(s).\r\n");
++ }
++ else
++ smtp_printf("250 OK id=%s\r\n", message_id);
++
+ if (host_checking)
+ fprintf(stdout,
+ "\n**** SMTP testing: that is not a real message id!\n\n");
++
+ }
+- else if (smtp_reply[0] != 0) smtp_printf("%.1024s\r\n", smtp_reply);
++ else if (smtp_reply[0] != 0)
++ {
++ if (fake_reject && (smtp_reply[0] == '2'))
++ {
++ smtp_printf("550-FAKE_REJECT id=%s\r\n", message_id);
++ smtp_printf("550-Your message has been rejected but is being kept for evaluation.\r\n");
++ smtp_printf("550 If it was a legit message, it may still be delivered to the target recipient(s).\r\n");
++ }
++ else
++ smtp_printf("%.1024s\r\n", smtp_reply);
++ };
+ }
+
+ /* For batched SMTP, generate an error message on failure, and do
+diff -urN exim-4.30-orig/src/regex.c exim-4.30/src/regex.c
+--- exim-4.30-orig/src/regex.c Thu Jan 1 01:00:00 1970
++++ exim-4.30/src/regex.c Sat Jan 17 00:05:11 2004
+@@ -0,0 +1,243 @@
++/*************************************************
++* Exim - an Internet mail transport agent *
++*************************************************/
++
++/* This file is part of the exiscan-acl content scanner
++patch. It is NOT part of the standard exim distribution. */
++
++/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003-???? */
++/* License: GPL */
++
++/* Code for matching regular expressions against headers and body.
++ Called from acl.c. */
++
++#include "exim.h"
++#include <unistd.h>
++#include <sys/mman.h>
++
++/* Structure to hold a list of Regular expressions */
++typedef struct pcre_list {
++ pcre *re;
++ uschar *pcre_text;
++ struct pcre_list *next;
++} pcre_list;
++
++uschar regex_match_string_buffer[1024];
++
++extern FILE *mime_stream;
++extern uschar *mime_current_boundary;
++
++int regex(uschar **listptr) {
++ int sep = 0;
++ uschar *list = *listptr;
++ uschar *regex_string;
++ uschar regex_string_buffer[1024];
++ unsigned long long mbox_size;
++ FILE *mbox_file;
++ pcre *re;
++ pcre_list *re_list_head = NULL;
++ pcre_list *re_list_item;
++ const char *pcre_error;
++ int pcre_erroffset;
++ uschar *linebuffer;
++ long f_pos = 0;
++
++ /* reset expansion variable */
++ regex_match_string = NULL;
++
++ if (mime_stream == NULL) {
++ /* We are in the DATA ACL */
++ mbox_file = spool_mbox(&mbox_size);
++ if (mbox_file == NULL) {
++ /* error while spooling */
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "regex acl condition: error while creating mbox spool file");
++ return DEFER;
++ };
++ }
++ else {
++ f_pos = ftell(mime_stream);
++ mbox_file = mime_stream;
++ };
++
++ /* precompile our regexes */
++ while ((regex_string = string_nextinlist(&list, &sep,
++ regex_string_buffer,
++ sizeof(regex_string_buffer))) != NULL) {
++
++ /* parse option */
++ if ( (strcmpic(regex_string,US"false") == 0) ||
++ (Ustrcmp(regex_string,"0") == 0) ) {
++ /* explicitly no matching */
++ continue;
++ };
++
++ /* compile our regular expression */
++ re = pcre_compile( CS regex_string,
++ 0,
++ &pcre_error,
++ &pcre_erroffset,
++ NULL );
++
++ if (re == NULL) {
++ log_write(0, LOG_MAIN,
++ "regex acl condition warning - error in regex '%s': %s at offset %d, skipped.", regex_string, pcre_error, pcre_erroffset);
++ continue;
++ }
++ else {
++ re_list_item = store_get(sizeof(pcre_list));
++ re_list_item->re = re;
++ re_list_item->pcre_text = string_copy(regex_string);
++ re_list_item->next = re_list_head;
++ re_list_head = re_list_item;
++ };
++ };
++
++ /* no regexes -> nothing to do */
++ if (re_list_head == NULL) {
++ return FAIL;
++ };
++
++ /* match each line against all regexes */
++ linebuffer = store_get(32767);
++ while (fgets(CS linebuffer, 32767, mbox_file) != NULL) {
++ if ( (mime_stream != NULL) && (mime_current_boundary != NULL) ) {
++ /* check boundary */
++ if (Ustrncmp(linebuffer,"--",2) == 0) {
++ if (Ustrncmp((linebuffer+2),mime_current_boundary,Ustrlen(mime_current_boundary)) == 0)
++ /* found boundary */
++ break;
++ };
++ };
++ re_list_item = re_list_head;
++ do {
++ /* try matcher on the line */
++ if (pcre_exec(re_list_item->re, NULL, CS linebuffer,
++ (int)Ustrlen(linebuffer), 0, 0, NULL, 0) >= 0) {
++ Ustrncpy(regex_match_string_buffer, re_list_item->pcre_text, 1023);
++ regex_match_string = regex_match_string_buffer;
++ if (mime_stream == NULL)
++ fclose(mbox_file);
++ else {
++ clearerr(mime_stream);
++ fseek(mime_stream,f_pos,SEEK_SET);
++ };
++ return OK;
++ };
++ re_list_item = re_list_item->next;
++ } while (re_list_item != NULL);
++ };
++
++ if (mime_stream == NULL)
++ fclose(mbox_file);
++ else {
++ clearerr(mime_stream);
++ fseek(mime_stream,f_pos,SEEK_SET);
++ };
++
++ /* no matches ... */
++ return FAIL;
++}
++
++
++int mime_regex(uschar **listptr) {
++ int sep = 0;
++ uschar *list = *listptr;
++ uschar *regex_string;
++ uschar regex_string_buffer[1024];
++ pcre *re;
++ pcre_list *re_list_head = NULL;
++ pcre_list *re_list_item;
++ const char *pcre_error;
++ int pcre_erroffset;
++ FILE *f;
++ uschar *mime_subject = NULL;
++ int mime_subject_len = 0;
++
++ /* reset expansion variable */
++ regex_match_string = NULL;
++
++ /* precompile our regexes */
++ while ((regex_string = string_nextinlist(&list, &sep,
++ regex_string_buffer,
++ sizeof(regex_string_buffer))) != NULL) {
++
++ /* parse option */
++ if ( (strcmpic(regex_string,US"false") == 0) ||
++ (Ustrcmp(regex_string,"0") == 0) ) {
++ /* explicitly no matching */
++ continue;
++ };
++
++ /* compile our regular expression */
++ re = pcre_compile( CS regex_string,
++ 0,
++ &pcre_error,
++ &pcre_erroffset,
++ NULL );
++
++ if (re == NULL) {
++ log_write(0, LOG_MAIN,
++ "regex acl condition warning - error in regex '%s': %s at offset %d, skipped.", regex_string, pcre_error, pcre_erroffset);
++ continue;
++ }
++ else {
++ re_list_item = store_get(sizeof(pcre_list));
++ re_list_item->re = re;
++ re_list_item->pcre_text = string_copy(regex_string);
++ re_list_item->next = re_list_head;
++ re_list_head = re_list_item;
++ };
++ };
++
++ /* no regexes -> nothing to do */
++ if (re_list_head == NULL) {
++ return FAIL;
++ };
++
++ /* check if the file is already decoded */
++ if (mime_decoded_filename == NULL) {
++ uschar *empty = US"";
++ /* no, decode it first */
++ mime_decode(&empty);
++ if (mime_decoded_filename == NULL) {
++ /* decoding failed */
++ log_write(0, LOG_MAIN,
++ "mime_regex acl condition warning - could not decode MIME part to file.");
++ return DEFER;
++ };
++ };
++
++
++ /* open file */
++ f = fopen(CS mime_decoded_filename, "r");
++ if (f == NULL) {
++ /* open failed */
++ log_write(0, LOG_MAIN,
++ "mime_regex acl condition warning - can't open '%s' for reading.", mime_decoded_filename);
++ return DEFER;
++ };
++
++ /* get 32k memory */
++ mime_subject = (uschar *)store_get(32767);
++
++ /* read max 32k chars from file */
++ mime_subject_len = fread(mime_subject, 1, 32766, f);
++
++ re_list_item = re_list_head;
++ do {
++ /* try matcher on the mmapped file */
++ debug_printf("Matching '%s'\n", re_list_item->pcre_text);
++ if (pcre_exec(re_list_item->re, NULL, CS mime_subject,
++ mime_subject_len, 0, 0, NULL, 0) >= 0) {
++ Ustrncpy(regex_match_string_buffer, re_list_item->pcre_text, 1023);
++ regex_match_string = regex_match_string_buffer;
++ return OK;
++ };
++ re_list_item = re_list_item->next;
++ } while (re_list_item != NULL);
++
++ /* no matches ... */
++ return FAIL;
++}
++
+diff -urN exim-4.30-orig/src/smtp_in.c exim-4.30/src/smtp_in.c
+--- exim-4.30-orig/src/smtp_in.c Mon Dec 1 11:15:41 2003
++++ exim-4.30/src/smtp_in.c Wed Jan 7 16:27:33 2004
+@@ -790,6 +790,7 @@
+ acl_warn_headers = NULL;
+ queue_only_policy = FALSE;
+ deliver_freeze = FALSE; /* Can be set by ACL */
++fake_reject = FALSE; /* Can be set by ACL */
+ sender_address = NULL;
+ raw_sender = NULL; /* After SMTP rewrite, before qualifying */
+ sender_address_unrewritten = NULL; /* Set only after verify rewrite */
+@@ -1719,8 +1720,10 @@
+ BOOL drop = rc == FAIL_DROP;
+ uschar *lognl;
+ uschar *sender_info = US"";
+-uschar *what = (where == ACL_WHERE_DATA)? US"after DATA" :
+- string_sprintf("%s %s", acl_wherenames[where], smtp_data);
++uschar *what = string_sprintf("%s %s", acl_wherenames[where], smtp_data);
++
++if (where == ACL_WHERE_DATA) what = US"after DATA";
++if (where == ACL_WHERE_MIME) what = US"during MIME ACL checks";
+
+ if (drop) rc = FAIL;
+
+@@ -1730,7 +1733,7 @@
+ this is what should be logged, so I've changed to logging the unrewritten
+ address to retain backward compatibility. */
+
+-if (where == ACL_WHERE_RCPT || where == ACL_WHERE_DATA)
++if (where == ACL_WHERE_RCPT || where == ACL_WHERE_DATA || where == ACL_WHERE_MIME)
+ {
+ sender_info = string_sprintf("F=<%s> ", (sender_address_unrewritten != NULL)?
+ sender_address_unrewritten : sender_address);
+diff -urN exim-4.30-orig/src/spam.c exim-4.30/src/spam.c
+--- exim-4.30-orig/src/spam.c Thu Jan 1 01:00:00 1970
++++ exim-4.30/src/spam.c Mon Jan 5 14:41:54 2004
+@@ -0,0 +1,285 @@
++/*************************************************
++* Exim - an Internet mail transport agent *
++*************************************************/
++
++/* This file is part of the exiscan-acl content scanner
++patch. It is NOT part of the standard exim distribution. */
++
++/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003-???? */
++/* License: GPL */
++
++/* Code for calling spamassassin's spamd. Called from acl.c. */
++
++#include "exim.h"
++#include "spam.h"
++
++uschar spam_score_buffer[16];
++uschar spam_score_int_buffer[16];
++uschar spam_bar_buffer[128];
++uschar spam_report_buffer[32600];
++uschar prev_user_name[128];
++int spam_ok = 0;
++int spam_rc = 0;
++
++int spam(uschar **listptr) {
++ int sep = 0;
++ uschar *list = *listptr;
++ uschar *user_name;
++ uschar user_name_buffer[128];
++ unsigned long long mbox_size;
++ FILE *mbox_file;
++ int spamd_sock;
++ uschar tcp_addr[24];
++ unsigned int tcp_port;
++ uschar spamd_buffer[32600];
++ int i, j, offset;
++ uschar spamd_version[8];
++ uschar spamd_score_char;
++ double spamd_threshold, spamd_score;
++ int spamd_report_offset;
++ uschar *p,*q;
++ int override = 0;
++ struct sockaddr_un server;
++
++ /* find the username from the option list */
++ if ((user_name = string_nextinlist(&list, &sep,
++ user_name_buffer,
++ sizeof(user_name_buffer))) == NULL) {
++ /* no username given, this means no scanning should be done */
++ return FAIL;
++ };
++
++ /* if username is "0" or "false", do not scan */
++ if ( (Ustrcmp(user_name,"0") == 0) ||
++ (strcmpic(user_name,US"false") == 0) ) {
++ return FAIL;
++ };
++
++ /* if there is an additional option, check if it is "true" */
++ if (strcmpic(list,US"true") == 0) {
++ /* in that case, always return true later */
++ override = 1;
++ };
++
++ /* if we scanned for this username last time, just return */
++ if ( spam_ok && ( Ustrcmp(prev_user_name, user_name) == 0 ) ) {
++ if (override)
++ return OK;
++ else
++ return spam_rc;
++ };
++
++ /* make sure the eml mbox file is spooled up */
++ mbox_file = spool_mbox(&mbox_size);
++
++ if (mbox_file == NULL) {
++ /* error while spooling */
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "spam acl condition: error while creating mbox spool file");
++ return DEFER;
++ };
++
++ /* socket does not start with '/' -> network socket */
++ if (*spamd_address != '/') {
++
++ /* grok spamd address and port */
++ if( sscanf(CS spamd_address, "%s %u", tcp_addr, &tcp_port) != 2 ) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "spam acl condition: invalid spamd address: '%s'", spamd_address);
++ fclose(mbox_file);
++ return DEFER;
++ };
++
++ /* contact spamd */
++ if ( (spamd_sock = ip_socket(SOCK_STREAM, AF_INET)) < 0) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "spam acl condition: error creating IP socket for spamd");
++ fclose(mbox_file);
++ return DEFER;
++ };
++
++ if (ip_connect(spamd_sock, AF_INET, tcp_addr, tcp_port, 5) < 0) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "spam acl condition: spamd connection to %s, port %u failed: %s", tcp_addr, tcp_port, strerror(errno));
++ fclose(mbox_file);
++ close(spamd_sock);
++ return DEFER;
++ };
++
++ }
++ else {
++ /* open the local socket */
++
++ if ((spamd_sock = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: spamd: unable to acquire socket (%s)",
++ strerror(errno));
++ fclose(mbox_file);
++ return DEFER;
++ }
++
++ server.sun_family = AF_UNIX;
++ Ustrcpy(server.sun_path, spamd_address);
++
++ if (connect(spamd_sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "malware acl condition: spamd: unable to connect to UNIX socket %s (%s)",
++ spamd_address, strerror(errno) );
++ fclose(mbox_file);
++ close(spamd_sock);
++ return DEFER;
++ }
++
++ }
++
++ /* now we are connected to spamd on spamd_sock */
++ snprintf(CS spamd_buffer,
++ sizeof(spamd_buffer),
++ "REPORT SPAMC/1.2\r\nUser: %s\r\nContent-length: %lld\r\n\r\n",
++ user_name,
++ mbox_size);
++
++ /* send our request */
++ if (send(spamd_sock, spamd_buffer, Ustrlen(spamd_buffer), 0) < 0) {
++ close(spamd_sock);
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "spam acl condition: spamd send failed: %s", strerror(errno));
++ fclose(mbox_file);
++ close(spamd_sock);
++ return DEFER;
++ };
++
++ /* now send the file */
++ do {
++ j = fread(spamd_buffer,1,sizeof(spamd_buffer),mbox_file);
++ if (j > 0) {
++ i = send(spamd_sock,spamd_buffer,j,0);
++ if (i != j) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "spam acl condition: error/short send to spamd");
++ close(spamd_sock);
++ fclose(mbox_file);
++ return DEFER;
++ };
++ };
++ }
++ while (j > 0);
++
++ fclose(mbox_file);
++
++ /* we're done sending, close socket for writing */
++ shutdown(spamd_sock,SHUT_WR);
++
++ /* read spamd response */
++ memset(spamd_buffer, 0, sizeof(spamd_buffer));
++ offset = 0;
++ while((i = ip_recv(spamd_sock,
++ spamd_buffer + offset,
++ sizeof(spamd_buffer) - offset - 1,
++ SPAMD_READ_TIMEOUT)) > 0 ) {
++ offset += i;
++ }
++
++ /* error handling */
++ if((i <= 0) && (errno != 0)) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "spam acl condition: error reading from spamd socket: %s", strerror(errno));
++ close(spamd_sock);
++ return DEFER;
++ }
++
++ /* reading done */
++ close(spamd_sock);
++
++ /* dig in the spamd output and put the report in a multiline header, if requested */
++ if( sscanf(CS spamd_buffer,"SPAMD/%s 0 EX_OK\r\nContent-length: %*u\r\n\r\n%lf/%lf\r\n%n",
++ spamd_version,&spamd_score,&spamd_threshold,&spamd_report_offset) != 3 ) {
++
++ /* try to fall back to pre-2.50 spamd output */
++ if( sscanf(CS spamd_buffer,"SPAMD/%s 0 EX_OK\r\nSpam: %*s ; %lf / %lf\r\n\r\n%n",
++ spamd_version,&spamd_score,&spamd_threshold,&spamd_report_offset) != 3 ) {
++ log_write(0, LOG_MAIN|LOG_PANIC,
++ "spam acl condition: cannot parse spamd output");
++ return DEFER;
++ };
++ };
++
++ /* Create report. Since this is a multiline string,
++ we must hack it into shape first */
++ p = &spamd_buffer[spamd_report_offset];
++ q = spam_report_buffer;
++ while (*p != '\0') {
++ /* skip \r */
++ if (*p == '\r') {
++ p++;
++ continue;
++ };
++ *q = *p;
++ q++;
++ if (*p == '\n') {
++ *q = '\t';
++ q++;
++ /* eat whitespace */
++ while( (*p <= ' ') && (*p != '\0') ) {
++ p++;
++ };
++ p--;
++ };
++ p++;
++ };
++ /* NULL-terminate */
++ *q = '\0';
++ q--;
++ /* cut off trailing leftovers */
++ while (*q <= ' ') {
++ *q = '\0';
++ q--;
++ };
++ spam_report = spam_report_buffer;
++
++ /* create spam bar */
++ spamd_score_char = spamd_score > 0 ? '+' : '-';
++ j = abs((int)(spamd_score));
++ i = 0;
++ if( j != 0 ) {
++ while((i < j) && (i <= MAX_SPAM_BAR_CHARS))
++ spam_bar_buffer[i++] = spamd_score_char;
++ }
++ else{
++ spam_bar_buffer[0] = '/';
++ i = 1;
++ }
++ spam_bar_buffer[i] = '\0';
++ spam_bar = spam_bar_buffer;
++
++ /* create "float" spam score */
++ snprintf(CS spam_score_buffer, sizeof(spam_score_buffer),"%.1f", spamd_score);
++ spam_score = spam_score_buffer;
++
++ /* create "int" spam score */
++ j = (int)(spamd_score*10);
++ snprintf(CS spam_score_int_buffer, sizeof(spam_score_int_buffer), "%d", j);
++ spam_score_int = spam_score_int_buffer;
++
++ /* compare threshold against score */
++ if (spamd_score >= spamd_threshold) {
++ /* spam as determined by user's threshold */
++ spam_rc = OK;
++ }
++ else {
++ /* not spam */
++ spam_rc = FAIL;
++ };
++
++ /* remember user name and "been here" for it */
++ Ustrcpy(prev_user_name, user_name);
++ spam_ok = 1;
++
++ if (override) {
++ /* always return OK, no matter what the score */
++ return OK;
++ }
++ else {
++ return spam_rc;
++ };
++}
+diff -urN exim-4.30-orig/src/spam.h exim-4.30/src/spam.h
+--- exim-4.30-orig/src/spam.h Thu Jan 1 01:00:00 1970
++++ exim-4.30/src/spam.h Tue Dec 2 12:15:53 2003
+@@ -0,0 +1,23 @@
++/*************************************************
++* Exim - an Internet mail transport agent *
++*************************************************/
++
++/* This file is part of the exiscan-acl content scanner
++patch. It is NOT part of the standard exim distribution. */
++
++/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003-???? */
++/* License: GPL */
++
++/* spam defines */
++
++/* timeout for reading from spamd */
++#define SPAMD_READ_TIMEOUT 3600
++
++/* maximum length of the spam bar */
++#define MAX_SPAM_BAR_CHARS 50
++
++/* SHUT_WR seems to be undefined on Unixware ? */
++#ifndef SHUT_WR
++#define SHUT_WR 1
++#endif
++
+diff -urN exim-4.30-orig/src/spool_in.c exim-4.30/src/spool_in.c
+--- exim-4.30-orig/src/spool_in.c Mon Dec 1 11:15:41 2003
++++ exim-4.30/src/spool_in.c Tue Dec 2 12:15:53 2003
+@@ -241,6 +241,7 @@
+ body_linecount = 0;
+ deliver_firsttime = FALSE;
+ deliver_freeze = FALSE;
++fake_reject = FALSE;
+ deliver_frozen_at = 0;
+ deliver_manual_thaw = FALSE;
+ /* dont_deliver must NOT be reset */
+@@ -250,6 +251,7 @@
+ interface_port = 0;
+ local_error_message = FALSE;
+ local_scan_data = NULL;
++spam_score_int = NULL;
+ message_linecount = 0;
+ received_protocol = NULL;
+ recipients_list = NULL;
+@@ -363,6 +365,8 @@
+ local_error_message = TRUE;
+ else if (Ustrncmp(big_buffer, "-local_scan ", 12) == 0)
+ local_scan_data = string_copy(big_buffer + 12);
++ else if (Ustrncmp(big_buffer, "-spam_score_int ", 16) == 0)
++ spam_score_int = string_copy(big_buffer + 16);
+ else if (Ustrcmp(big_buffer, "-host_lookup_failed") == 0)
+ host_lookup_failed = TRUE;
+ else if (Ustrncmp(big_buffer, "-body_linecount", 15) == 0)
+diff -urN exim-4.30-orig/src/spool_mbox.c exim-4.30/src/spool_mbox.c
+--- exim-4.30-orig/src/spool_mbox.c Thu Jan 1 01:00:00 1970
++++ exim-4.30/src/spool_mbox.c Tue Mar 2 12:58:26 2004
+@@ -0,0 +1,164 @@
++/*************************************************
++* Exim - an Internet mail transport agent *
++*************************************************/
++
++/* This file is part of the exiscan-acl content scanner
++patch. It is NOT part of the standard exim distribution. */
++
++/* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2003-???? */
++/* License: GPL */
++
++/* Code for setting up a MBOX style spool file inside a /scan/<msgid>
++sub directory of exim's spool directory. */
++
++#include "exim.h"
++
++/* externals, we must reset them on unspooling */
++extern int demime_ok;
++extern int malware_ok;
++extern int spam_ok;
++extern struct file_extension *file_extensions;
++
++int spool_mbox_ok = 0;
++uschar spooled_message_id[17];
++
++/* returns a pointer to the FILE, and puts the size in bytes into mbox_file_size */
++
++FILE *spool_mbox(unsigned long long *mbox_file_size) {
++ uschar mbox_path[1024];
++ uschar message_subdir[2];
++ uschar data_buffer[65535];
++ FILE *mbox_file;
++ FILE *data_file = NULL;
++ header_line *my_headerlist;
++ struct stat statbuf;
++ int i,j;
++
++ if (!spool_mbox_ok) {
++ /* create scan directory, if not present */
++ if (!directory_make(spool_directory, US "scan", 0750, FALSE)) {
++ debug_printf("unable to create directory: %s/scan\n", spool_directory);
++ return NULL;
++ };
++
++ /* create temp directory inside scan dir */
++ snprintf(CS mbox_path, 1024, "%s/scan/%s", spool_directory, message_id);
++ if (!directory_make(NULL, mbox_path, 0750, FALSE)) {
++ debug_printf("unable to create directory: %s/scan/%s\n", spool_directory, message_id);
++ return NULL;
++ };
++
++ /* open [message_id].eml file for writing */
++ snprintf(CS mbox_path, 1024, "%s/scan/%s/%s.eml", spool_directory, message_id, message_id);
++ mbox_file = Ufopen(mbox_path,"w");
++
++ if (mbox_file == NULL) {
++ debug_printf("unable to open file for writing: %s\n", mbox_path);
++ return NULL;
++ };
++
++ /* write all header lines to mbox file */
++ my_headerlist = header_list;
++ while (my_headerlist != NULL) {
++
++ /* skip deleted headers */
++ if (my_headerlist->type == '*') {
++ my_headerlist = my_headerlist->next;
++ continue;
++ };
++
++ i = fwrite(my_headerlist->text, 1, my_headerlist->slen, mbox_file);
++ if (i != my_headerlist->slen) {
++ debug_printf("error/short write on writing in: %s", mbox_path);
++ fclose(mbox_file);
++ return NULL;
++ };
++
++ my_headerlist = my_headerlist->next;
++ };
++
++ /* copy body file */
++ message_subdir[1] = '\0';
++ for (i = 0; i < 2; i++) {
++ message_subdir[0] = (split_spool_directory == (i == 0))? message_id[5] : 0;
++ sprintf(CS mbox_path, "%s/input/%s/%s-D", spool_directory, message_subdir, message_id);
++ data_file = Ufopen(mbox_path,"r");
++ if (data_file != NULL)
++ break;
++ };
++
++ fread(data_buffer, 1, 18, data_file);
++
++ do {
++ j = fread(data_buffer, 1, sizeof(data_buffer), data_file);
++ if (j > 0) {
++ i = fwrite(data_buffer, 1, j, mbox_file);
++ if (i != j) {
++ debug_printf("error/short write on writing in: %s", mbox_path);
++ fclose(mbox_file);
++ fclose(data_file);
++ return NULL;
++ };
++ };
++ } while (j > 0);
++
++ fclose(data_file);
++ fclose(mbox_file);
++ Ustrcpy(spooled_message_id, message_id);
++ spool_mbox_ok = 1;
++ };
++
++ snprintf(CS mbox_path, 1024, "%s/scan/%s/%s.eml", spool_directory, message_id, message_id);
++
++ /* get the size of the mbox message */
++ stat(CS mbox_path, &statbuf);
++ *mbox_file_size = statbuf.st_size;
++
++ /* open [message_id].eml file for reading */
++ mbox_file = Ufopen(mbox_path,"r");
++
++ return mbox_file;
++}
++
++/* remove mbox spool file, demimed files and temp directory */
++void unspool_mbox(void) {
++
++ /* reset all exiscan state variables */
++ demime_ok = 0;
++ demime_errorlevel = 0;
++ demime_reason = NULL;
++ file_extensions = NULL;
++ spam_ok = 0;
++ malware_ok = 0;
++
++
++ if (spool_mbox_ok) {
++ uschar mbox_path[1024];
++ uschar file_path[1024];
++ int n;
++ struct dirent *entry;
++ DIR *tempdir;
++
++ spool_mbox_ok = 0;
++
++ snprintf(CS mbox_path, 1024, "%s/scan/%s", spool_directory, spooled_message_id);
++
++ tempdir = opendir(CS mbox_path);
++ /* loop thru dir & delete entries */
++ n = 0;
++ do {
++ entry = readdir(tempdir);
++ if (entry == NULL) break;
++ snprintf(CS file_path, 1024,"%s/scan/%s/%s", spool_directory, spooled_message_id, entry->d_name);
++ if ( (Ustrcmp(entry->d_name,"..") != 0) && (Ustrcmp(entry->d_name,".") != 0) ) {
++ debug_printf("unspool_mbox(): unlinking '%s'\n", file_path);
++ n = unlink(CS file_path);
++ };
++ } while (n > -1);
++
++ closedir(tempdir);
++
++ /* remove directory */
++ n = rmdir(CS mbox_path);
++ };
++}
+diff -urN exim-4.30-orig/src/spool_out.c exim-4.30/src/spool_out.c
+--- exim-4.30-orig/src/spool_out.c Mon Dec 1 11:15:41 2003
++++ exim-4.30/src/spool_out.c Tue Dec 2 12:15:53 2003
+@@ -209,6 +209,7 @@
+ if (sender_local) fprintf(f, "-local\n");
+ if (local_error_message) fprintf(f, "-localerror\n");
+ if (local_scan_data != NULL) fprintf(f, "-local_scan %s\n", local_scan_data);
++if (spam_score_int != NULL) fprintf(f,"-spam_score_int %s\n", spam_score_int);
+ if (deliver_manual_thaw) fprintf(f, "-manual_thaw\n");
+ if (sender_set_untrusted) fprintf(f, "-sender_set_untrusted\n");
+
+diff -urN exim-4.30-orig/src/tnef.c exim-4.30/src/tnef.c
+--- exim-4.30-orig/src/tnef.c Thu Jan 1 01:00:00 1970
++++ exim-4.30/src/tnef.c Tue Dec 2 12:15:53 2003
+@@ -0,0 +1,757 @@
++/*************************************************
++* Exim - an Internet mail transport agent *
++*************************************************/
++
++/* This file is part of the exiscan-acl content scanner
++patch. It is NOT part of the standard exim distribution. */
++
++/* Code for unpacking TNEF containers. Called from demime.c. */
++
++/***************************************************************************
++ * tnef2txt
++* A program to decode application/ms-tnef MIME attachments into text
++* for those fortunate enough not to be running either a Microsoft
++* operating system or mailer.
++*
++ * 18/10/2001
++* Brutally cropped by Paul L Daniels (pldaniels@pldaniels.com) in order
++* to accommodate the needs of ripMIME/Xamime/Inflex without carrying too
++* much excess baggage.
++*
++ * Brandon Long (blong@uiuc.edu), April 1997
++* 1.0 Version
++* Supports most types, but doesn't decode properties. Maybe some other
++* time.
++*
++ * 1.1 Version (7/1/97)
++* Supports saving of attAttachData to a file given by attAttachTitle
++* start of property decoding support
++*
++ * 1.2 Version (7/19/97)
++* Some architectures don't like reading 16/32 bit data on unaligned
++* boundaries. Fixed, losing efficiency, but this doesn't really
++* need efficiency anyways. (Still...)
++* Also, the #pragma pack from the MSVC include file wasn't liked
++* by most Unix compilers, replaced with a GCCism. This should work
++* with GCC, but other compilers I don't know.
++*
++ * 1.3 Version (7/22/97)
++* Ok, take out the DTR over the stream, now uses read_16.
++*
++ * NOTE: THIS SOFTWARE IS FOR YOUR PERSONAL GRATIFICATION ONLY. I DON'T
++* IMPLY IN ANY LEGAL SENSE THAT THIS SOFTWARE DOES ANYTHING OR THAT IT WILL
++* BE USEFULL IN ANY WAY. But, you can send me fixes to it, I don't mind.
++***************************************************************************/
++
++#include <stdio.h>
++#include <sys/stat.h>
++#include <stdlib.h>
++#include <errno.h>
++#include <string.h>
++#include <netinet/in.h>
++#include "tnef.h"
++
++
++#define VERSION "pldtnef/0.0.1"
++
++int _TNEF_syslogging = 0;
++int _TNEF_stderrlogging = 0;
++int _TNEF_verbose = 0;
++int _TNEF_debug = 0;
++
++int Verbose = FALSE;
++int SaveData = FALSE;
++
++char _TNEF_path[1024]="";
++
++uint8 *tnef_home;
++uint8 *tnef_limit;
++
++/*------------------------------------------------------------------------
++Procedure: TNEF_set_path ID:1
++Purpose:
++Input:
++Output:
++Errors:
++------------------------------------------------------------------------*/
++int TNEF_set_path( char *path )
++{
++ snprintf(_TNEF_path,1023,"%s",path);
++
++ return 0;
++}
++
++
++/*------------------------------------------------------------------------
++Procedure: TNEF_set_verbosity ID:1
++Purpose:
++Input:
++Output:
++Errors:
++------------------------------------------------------------------------*/
++int TNEF_set_verbosity( int level )
++{
++ _TNEF_verbose = level;
++ return _TNEF_verbose;
++}
++
++
++
++
++/*------------------------------------------------------------------------
++Procedure: TNEF_set_debug ID:1
++Purpose:
++Input:
++Output:
++Errors:
++------------------------------------------------------------------------*/
++int TNEF_set_debug( int level )
++{
++ _TNEF_debug = level;
++ TNEF_set_verbosity( level );
++ return _TNEF_debug;
++}
++
++
++
++/*------------------------------------------------------------------------
++Procedure: TNEF_set_syslogging ID:1
++Purpose: Turns on/off the syslog feature for TNEF error messages
++Input:
++Output:
++Errors:
++------------------------------------------------------------------------*/
++int TNEF_set_syslogging( int level )
++{
++ _TNEF_syslogging = level;
++ return _TNEF_syslogging;
++}
++
++
++
++
++/*------------------------------------------------------------------------
++Procedure: TNEF_set_stderrlogging ID:1
++Purpose: Turns on/off the stderr feature for TNEF error messages
++Input:
++Output:
++Errors:
++------------------------------------------------------------------------*/
++int TNEF_set_stderrlogging( int level )
++{
++ _TNEF_stderrlogging = level;
++ return _TNEF_stderrlogging;
++}
++
++
++/* Some systems don't like to read unaligned data */
++/*------------------------------------------------------------------------
++Procedure: read_32 ID:1
++Purpose:
++Input:
++Output:
++Errors:
++------------------------------------------------------------------------*/
++uint32 read_32(uint8 *tsp)
++{
++ uint8 a,b,c,d;
++ uint32 ret;
++
++ if (tsp > tnef_limit)
++ {
++ if ((_TNEF_verbose)||(_TNEF_stderrlogging)||(_TNEF_debug)) fprintf(stderr,"TNEF read_32() Attempting to read past end\n");
++ return -1;
++ }
++
++ a = *tsp;
++ b = *(tsp+1);
++ c = *(tsp+2);
++ d = *(tsp+3);
++
++ ret = long_little_endian(a<<24 | b<<16 | c<<8 | d);
++
++ return ret;
++}
++
++/*------------------------------------------------------------------------
++Procedure: read_16 ID:1
++Purpose:
++Input:
++Output:
++Errors:
++------------------------------------------------------------------------*/
++uint16 read_16(uint8 *tsp)
++{
++ uint8 a,b;
++ uint16 ret;
++
++ if (tsp > tnef_limit)
++ {
++ if ((_TNEF_verbose)||(_TNEF_stderrlogging)||(_TNEF_debug)) fprintf(stderr,"TNEF read_16() Attempting to read past end\n");
++ return -1;
++ }
++
++
++ a = *tsp;
++ b = *(tsp + 1);
++
++ ret = little_endian(a<<8 | b);
++
++ return ret;
++}
++
++
++
++/*------------------------------------------------------------------------
++Procedure: make_string ID:1
++Purpose:
++Input:
++Output:
++Errors:
++------------------------------------------------------------------------*/
++char *make_string(uint8 *tsp, int size)
++{
++ static char s[256] = "";
++ int len = (size>sizeof(s)-1) ? sizeof(s)-1 : size;
++
++ strncpy(s,(char *)tsp, len);
++ s[len] = '\0';
++ return s;
++}
++
++
++/*------------------------------------------------------------------------
++Procedure: handle_props ID:1
++Purpose:
++Input:
++Output:
++Errors:
++------------------------------------------------------------------------*/
++
++int save_attach_data(char *, uint8 *, uint32);
++
++int handle_props(uint8 *tsp)
++{
++ int bytes = 0;
++ uint32 num_props = 0;
++ uint32 x = 0;
++
++
++ num_props = read_32(tsp);
++ bytes += sizeof(num_props);
++
++ while (x < num_props)
++ {
++ uint32 prop_tag;
++ uint32 num;
++ char filename[256];
++ static int file_num = 0;
++
++ prop_tag = read_32(tsp+bytes);
++ bytes += sizeof(prop_tag);
++
++ switch (prop_tag & PROP_TYPE_MASK)
++ {
++ case PT_BINARY:
++ num = read_32(tsp+bytes);
++ bytes += sizeof(num);
++ num = read_32(tsp+bytes);
++ bytes += sizeof(num);
++ if (prop_tag == PR_RTF_COMPRESSED)
++ {
++ sprintf (filename, "XAM_%d.rtf", file_num);
++ file_num++;
++ save_attach_data(filename, tsp+bytes, num);
++ }
++ /* num + PAD */
++ bytes += num + ((num % 4) ? (4 - num%4) : 0);
++ break;
++ case PT_STRING8:
++ num = read_32(tsp+bytes);
++ bytes += sizeof(num);
++ num = read_32(tsp+bytes);
++ bytes += sizeof(num);
++ make_string(tsp+bytes,num);
++ bytes += num + ((num % 4) ? (4 - num%4) : 0);
++ break;
++ case PT_UNICODE:
++ case PT_OBJECT:
++ break;
++ case PT_I2:
++ bytes += 2;
++ break;
++ case PT_LONG:
++ bytes += 4;
++ break;
++ case PT_R4:
++ bytes += 4;
++ break;
++ case PT_DOUBLE:
++ bytes += 8;
++ break;
++ case PT_CURRENCY:
++ case PT_APPTIME:
++ case PT_ERROR:
++ bytes += 4;
++ break;
++ case PT_BOOLEAN:
++ bytes += 4;
++ break;
++ case PT_I8:
++ bytes += 8;
++ case PT_SYSTIME:
++ bytes += 8;
++ break;
++ }
++ x++;
++ }
++
++ return 0;
++}
++
++
++
++
++/*------------------------------------------------------------------------
++Procedure: save_attach_data ID:1
++Purpose:
++Input:
++Output:
++Errors:
++------------------------------------------------------------------------*/
++int save_attach_data(char *title, uint8 *tsp, uint32 size)
++{
++ FILE *out;
++ char filename[1024];
++
++ /*
++ if ((*tsp +size) > _TNEF_size)
++ {
++ return -1;
++ }
++ */
++ snprintf(filename,1023,"%s/%s",_TNEF_path,title);
++
++ out = fopen(filename, "w");
++ if (!out)
++ {
++ if (_TNEF_stderrlogging > 0) fprintf(stderr, "Error openning file %s for writing\n", filename);
++ return -1;
++ }
++
++ fwrite(tsp, sizeof(uint8), size, out);
++ fclose(out);
++ return 0;
++}
++
++
++
++
++/*------------------------------------------------------------------------
++Procedure: default_handler ID:1
++Purpose:
++Input:
++Output:
++Errors:
++------------------------------------------------------------------------*/
++int default_handler(uint32 attribute, uint8 *tsp, uint32 size)
++{
++ uint16 type = ATT_TYPE(attribute);
++
++ switch (type) {
++ case atpTriples:
++ break;
++ case atpString:
++ case atpText:
++ break;
++ case atpDate:
++ break;
++ case atpShort:
++ break;
++ case atpLong:
++ break;
++ case atpByte:
++ break;
++ case atpWord:
++ break;
++ case atpDword:
++ break;
++ default:
++ break;
++ }
++ return 0;
++
++}
++
++
++
++
++/*------------------------------------------------------------------------
++Procedure: read_attribute ID:1
++Purpose:
++Input:
++Output:
++Errors:
++------------------------------------------------------------------------*/
++int read_attribute(uint8 *tsp)
++{
++
++ int bytes = 0, header = 0;
++ uint32 attribute;
++ uint8 component = 0;
++ uint32 size = 0;
++ uint16 checksum = 0;
++ static char attach_title[256] = {
++ 0 };
++ static uint32 attach_size = 0;
++ static uint32 attach_loc = 0;
++
++ /* What component are we look at? */
++ component = *tsp;
++
++ bytes += sizeof(uint8);
++
++ /* Read the attributes of this component */
++
++ if (_TNEF_debug) fprintf(stderr,"read_attribute: Reading Attribute...\n");
++ attribute = read_32(tsp+bytes);
++ if (attribute == -1) return -1;
++ bytes += sizeof(attribute);
++
++ /* Read the size of the information we have to read */
++
++ if (_TNEF_debug) fprintf(stderr,"read_attribute: Reading Size...\n");
++ size = read_32(tsp+bytes);
++ if (size == -1) return -1;
++ bytes += sizeof(size);
++
++ /* The header size equals the sum of all the things we've read
++ so far. */
++
++ header = bytes;
++
++ /* The is a bit of a tricky one [if you're being slow
++ it moves the number of bytes ahead by the amount of data of
++ the attribute we're about to read, so that for next
++ "read_attribute()"
++ call starts in the right place.
++ */
++
++ bytes += size;
++
++ /* Read in the checksum for this component
++
++ AMMENDMENT - 19/07/02 - 17H01
++ Small code change to deal with strange sitations that occur with non
++ english characters. - Submitted by wtcheuk@netvigator.com @ 19/07/02
++ */
++
++ if ( bytes < 0 ) return -1;
++
++ /* --END of ammendment. */
++
++ if (_TNEF_debug) fprintf(stderr,"read_attribute: Reading Checksum...(offset %d, bytes=%d)\n", tsp -tnef_home, bytes);
++ checksum = read_16(tsp+bytes);
++ bytes += sizeof(checksum);
++
++ if (_TNEF_debug) fprintf(stderr,"Decoding attribute %d\n",attribute);
++
++ switch (attribute) {
++ case attNull:
++ default_handler(attribute, tsp+header, size);
++ break;
++ case attFrom:
++ default_handler(attribute, tsp+header, size);
++ break;
++ case attSubject:
++ break;
++ case attDateSent:
++ break;
++ case attDateRecd:
++ break;
++ case attMessageStatus:
++ break;
++ case attMessageClass:
++ break;
++ case attMessageID:
++ break;
++ case attParentID:
++ break;
++ case attConversationID:
++ break;
++ case attBody:
++ default_handler(attribute, tsp+header, size);
++ break;
++ case attPriority:
++ break;
++ case attAttachData:
++ attach_size=size;
++ attach_loc =(int)tsp+header;
++ if (SaveData && strlen(attach_title)>0 && attach_size > 0) {
++ if (!save_attach_data(attach_title, (uint8 *)attach_loc,attach_size))
++ {
++ if (_TNEF_verbose) fprintf(stdout,"Decoding %s\n", attach_title);
++ }
++ else
++ {
++ if (_TNEF_syslogging > 0) syslog(1,"TNEF: Error saving attachment %s\n",attach_title);
++ }
++ }
++ break;
++ case attAttachTitle:
++ strncpy(attach_title, make_string(tsp+header,size),255);
++ if (SaveData && strlen(attach_title)>0 && attach_size > 0) {
++ if (!save_attach_data(attach_title, (uint8 *)attach_loc,attach_size))
++ {
++ if (_TNEF_verbose) fprintf(stdout,"Decoding %s\n", attach_title);
++ }
++ else
++ {
++ if (_TNEF_syslogging > 0) syslog(1,"TNEF: Error saving attachment %s\n",attach_title);
++ }
++ }
++ break;
++ case attAttachMetaFile:
++ default_handler(attribute, tsp+header, size);
++ break;
++ case attAttachCreateDate:
++ break;
++ case attAttachModifyDate:
++ break;
++ case attDateModified:
++ break;
++ case attAttachTransportFilename:
++ default_handler(attribute, tsp+header, size);
++ break;
++ case attAttachRenddata:
++ attach_title[0]=0;
++ attach_size=0;
++ attach_loc=0;
++ default_handler(attribute, tsp+header, size);
++ break;
++ case attMAPIProps:
++ handle_props(tsp+header);
++ break;
++ case attRecipTable:
++ default_handler(attribute, tsp+header, size);
++ break;
++ case attAttachment:
++ default_handler(attribute, tsp+header, size);
++ break;
++ case attTnefVersion:
++ {
++ uint32 version;
++ version = read_32(tsp+header);
++ if (version == -1) return -1;
++ }
++ break;
++ case attOemCodepage:
++ default_handler(attribute, tsp+header, size);
++ break;
++ case attOriginalMessageClass:
++ break;
++ case attOwner:
++ default_handler(attribute, tsp+header, size);
++ break;
++ case attSentFor:
++ default_handler(attribute, tsp+header, size);
++ break;
++ case attDelegate:
++ default_handler(attribute, tsp+header, size);
++ break;
++ case attDateStart:
++ break;
++ case attDateEnd:
++ break;
++ case attAidOwner:
++ default_handler(attribute, tsp+header, size);
++ break;
++ case attRequestRes:
++ default_handler(attribute, tsp+header, size);
++ break;
++ default:
++ default_handler(attribute, tsp+header, size);
++ break;
++ }
++ return bytes;
++
++}
++
++
++
++
++/*------------------------------------------------------------------------
++Procedure: decode_tnef ID:1
++Purpose:
++Input:
++Output:
++Errors:
++------------------------------------------------------------------------*/
++int TNEF_decode_tnef(uint8 *tnef_stream, int size)
++{
++
++ int ra_response;
++ uint8 *tsp;
++
++ if (_TNEF_debug) fprintf(stderr,"TNEF_decode_tnef: Start. Size = %d\n",size);
++
++ if (size < 4)
++ {
++ if (_TNEF_debug) fprintf(stderr,"TNEF_decode_tnef: Skipping short file\n");
++ return 0;
++ }
++
++ /* TSP == TNEF Stream Pointer (well memory block actually!)
++ */
++ tsp = tnef_stream;
++
++ /* Read in the signature of this TNEF
++ */
++ if (TNEF_SIGNATURE == read_32(tsp))
++ {
++ if (_TNEF_debug) fprintf(stderr,"TNEF signature is good\n");
++ }
++ else
++ {
++ if (_TNEF_stderrlogging > 0) fprintf(stderr,"TNEF_decode_tnef: Bad TNEF signature, expecting %x got %lx\n",TNEF_SIGNATURE,read_32(tsp));
++ }
++
++ /* Move tsp pointer along
++ */
++ tsp += sizeof(TNEF_SIGNATURE);
++
++ /* This extra check is here just in case we're running with
++ * _TNEF_debug set and try to calculate TNEF Attach Key
++ * when we shouldn't.
++ */
++ if (tsp + sizeof(uint16) - tnef_stream > size)
++ {
++ if (_TNEF_debug) fprintf(stderr,"TNEF_decode_tnef: Skipping short file\n");
++ return 0;
++ }
++
++ if (_TNEF_debug) fprintf(stderr,"TNEF Attach Key: %x\n",read_16(tsp));
++ /* Move tsp pointer along
++ */
++ tsp += sizeof(uint16);
++
++ /* While we still have more bytes to process,
++ go through entire memory block and extract
++ all the required attributes and files
++ */
++ if (_TNEF_debug) fprintf(stderr,"TNEF - Commence reading attributes\n");
++ while ((tsp - tnef_stream) < size)
++ {
++ if (_TNEF_debug) fprintf(stderr,"Offset = %d\n",tsp -tnef_home);
++ ra_response = read_attribute(tsp);
++ if ( ra_response > 0 )
++ {
++ tsp += ra_response;
++ } else {
++
++ /* Must find out /WHY/ this happens, and, how to rectify the issue. */
++
++ tsp++;
++ if (_TNEF_debug) fprintf(stderr,"TNEF - Attempting to read attribute resulted in a sub-zero response, ending decoding to be safe\n");
++ break;
++ }
++ }
++
++ if (_TNEF_debug) fprintf(stderr,"TNEF - DONE.\n");
++
++ return 0;
++}
++
++
++
++
++
++
++/*------------------------------------------------------------------------
++Procedure: TNEF_main ID:1
++Purpose: Decodes a given TNEF encoded file
++Input:
++Output:
++Errors:
++------------------------------------------------------------------------*/
++int TNEF_main( char *filename )
++{
++ FILE *fp;
++ struct stat sb;
++ uint8 *tnef_stream;
++ int size, nread;
++
++ if (_TNEF_debug) fprintf(stderr,"TNEF_main: Start, decoding %s\n",filename);
++
++ SaveData = TRUE;
++
++ /* Test to see if the file actually exists
++ */
++ if (stat(filename,&sb) == -1)
++ {
++ if (_TNEF_stderrlogging > 0) fprintf(stderr,"Error stating file %s (%s)\n", filename,strerror(errno));
++ return -1;
++ }
++
++ /* Get the filesize */
++
++ size = sb.st_size;
++
++ /* Allocate enough memory to read in the ENTIRE file
++ FIXME - This could be a real consumer if multiple
++ instances of TNEF decoding is going on
++ */
++
++ tnef_home = tnef_stream = (uint8 *)malloc(size);
++ tnef_limit = tnef_home +size;
++
++ /* If we were unable to allocate enough memory, then we
++ should report this */
++
++ if (tnef_stream == NULL)
++ {
++ if (_TNEF_stderrlogging > 0) fprintf(stderr,"Error allocating %d bytes for loading file (%s)\n", size,strerror(errno));
++ return -1;
++ }
++
++ /* Attempt to open up the TNEF encoded file... if it fails
++ then report the failed condition to syslog */
++
++ if ((fp = fopen(filename,"r")) == NULL)
++ {
++ if (_TNEF_stderrlogging > 0) fprintf(stderr,"Error opening file %s for reading (%s)\n", filename,strerror(errno));
++ return -1;
++ }
++
++ /* Attempt to read in the entire file */
++
++ nread = fread(tnef_stream, sizeof(uint8), size, fp);
++
++ if (_TNEF_debug) fprintf(stderr,"TNEF: Read %d bytes\n",nread);
++
++ /* If we did not read in all the bytes, then let syslogs know! */
++
++ if (nread < size)
++ {
++ return -1;
++ }
++
++ /* Close the file */
++
++ fclose(fp);
++
++ /* Proceed to decode the file */
++
++ TNEF_decode_tnef(tnef_stream,size);
++
++
++ if (_TNEF_debug) fprintf(stderr,"TNEF - finished decoding.\n");
++
++ return 0;
++}
++
++
++/* --------------------------END. */
++
++
++
+diff -urN exim-4.30-orig/src/tnef.h exim-4.30/src/tnef.h
+--- exim-4.30-orig/src/tnef.h Thu Jan 1 01:00:00 1970
++++ exim-4.30/src/tnef.h Tue Dec 2 12:15:53 2003
+@@ -0,0 +1,1841 @@
++/*************************************************
++* Exim - an Internet mail transport agent *
++*************************************************/
++
++/* This file is part of the exiscan-acl content scanner
++patch. It is NOT part of the standard exim distribution. */
++
++/***************************************************************************
++ *
++ * config.h for tnef decoder by Brandon Long
++ * Based on config.h from S3MOD by Dan Marks and David Jeske
++ *
++ * (C) 1994,1995 By Daniel Marks and David Jeske
++ *
++ * While we retain the copyright to this code, this source code is FREE.
++ * You may use it in any way you wish, in any product you wish. You may
++ * NOT steal the copyright for this code from us.
++ *
++ * We respectfully ask that you email one of us, if possible, if you
++ * produce something significant with this code, or if you have any bug
++ * fixes to contribute. We also request that you give credit where
++ * credit is due if you include part of this code in a program of your own.
++ *
++ ***************************************************************************
++ *
++ * config.h - compile time configuration options and system specific defines
++ *
++ */
++
++/* 2003-02-03 Merged all TNEF and MAPI related headers in this file to reduce
++ clutter
++ - Tom Kistner
++*/
++
++#include <exim.h>
++
++#ifndef _CONFIG_H
++#define _CONFIG_H 1
++
++/***************************************************************************/
++/* The following are system specific settings */
++/***************************************************************************/
++
++#if defined(SUN)
++#define BIT_32
++#define ___TNEF_BYTE_ORDER 4321
++#undef NEAR_FAR_PTR
++
++#elif defined (HPUX)
++#define BIT_32
++#define ___TNEF_BYTE_ORDER 4321
++#undef NEAR_FAR_PTR
++
++#elif defined(DEC)
++#undef NEAR_FAR_PTR
++
++#elif defined(__sgi)
++#define BIT_32
++#define ___TNEF_BYTE_ORDER 4321
++#undef NEAR_FAR_PTR
++
++#elif defined(AIX)
++#undef NEAR_FAR_PTR
++#define ___TNEF_BYTE_ORDER 4321
++#define BIT_32
++
++#elif defined(LINUX)
++#define BIT_32
++#undef NEAR_FAR_PTR
++
++#elif defined(MSDOS)
++#define NEAR_FAR_PTR
++#undef BIT_32
++
++#else
++#undef NEAR_FAR_PTR
++#define BIT_32
++
++
++#endif /* OS/MACH TYPE */
++
++/***************************************************************************/
++/* 16/32 Bit and Byte Order hacks */
++/***************************************************************************/
++
++#ifdef BIT_32
++typedef short int int16;
++typedef unsigned short int uint16;
++typedef int int32;
++typedef unsigned int uint32;
++/* typedef char int8; */
++typedef unsigned char uint8;
++#else
++typedef int int16;
++typedef unsigned int uint16;
++typedef long int int32;
++typedef unsigned long int uint32;
++typedef char int8;
++typedef unsigned char uint8;
++#endif /* BIT_32 */
++
++#ifndef WIN32_TYPES
++#define ULONG uint32
++#define SCODE uint32
++#define FAR
++#define LPVOID void *
++#define WORD uint16
++#define DWORD uint32
++#define LONG int32
++#define BYTE uint8
++#endif /* !WIN32_TYPES */
++
++#define endian_switch(x) (((((uint16)(x)) & 0xFF00) >> 8) | \
++ ((((uint16)(x)) & 0xFF) << 8))
++
++#define long_endian_switch(x) ( ((((uint32)(x)) & 0xFF00UL) << 8) | \
++ ((((uint32)(x)) & 0xFFUL) << 24) | \
++ ((((uint32)(x)) & 0xFF0000UL) >> 8) | \
++ ((((uint32)(x)) & 0xFF000000UL) >> 24))
++
++#if ___TNEF_BYTE_ORDER == 4321
++#define big_endian(x) (x)
++#define long_big_endian(x) (x)
++#define little_endian(x) (endian_switch(x))
++#define long_little_endian(x) (long_endian_switch(x))
++#else
++#define big_endian(x) (endian_switch(x))
++#define long_big_endian(x) (long_endian_switch(x))
++#define little_endian(x) (x)
++#define long_little_endian(x) (x)
++#endif /* ___TNEF_BYTE_ORDER */
++
++#ifndef TRUE
++#define TRUE 1
++#endif
++#ifndef FALSE
++#define FALSE 0
++#endif
++
++
++#endif /* _CONFIG_H */
++/*
++ * Taken from the Win32 SDK or the MSVC4 include files, I'm not sure which.
++ * The document describing the TNEF format alludes to this document for more
++ * information. This file was stripped a bit to allow it to compile with
++ * GCC and without random other Windows header files so it could be used
++ * to decode TNEF bitstreams with tnef2txt.
++ *
++ * T N E F . H
++ *
++ *
++ * This file contains structure and function definitions for the
++ * MAPI implementation of the Transport Neutral Encapsilation Format
++ * used by MAPI providers for the neutral serialization of a MAPI
++ * message. This implementation sits on top of the IStream object as
++ * documented in the OLE 2 Specs.
++ *
++ * Copyright 1986-1996 Microsoft Corporation. All Rights Reserved.
++ */
++
++#ifndef TNEF_H
++#define TNEF_H
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++
++#ifndef BEGIN_INTERFACE
++#define BEGIN_INTERFACE
++#endif
++
++#ifndef MAPI_DIM
++#define MAPI_DIM 1
++#endif
++
++#define TNTNoffsetof(s,m) (unsigned long)&(((s *)0)->m)
++
++/* ------------------------------------ */
++/* TNEF Problem and TNEF Problem Arrays */
++/* ------------------------------------ */
++
++typedef struct _STnefProblem
++{
++ ULONG ulComponent;
++ ULONG ulAttribute;
++ ULONG ulPropTag;
++ SCODE scode;
++} STnefProblem;
++
++typedef struct _STnefProblemArray
++{
++ ULONG cProblem;
++ STnefProblem aProblem[MAPI_DIM];
++} STnefProblemArray, FAR * LPSTnefProblemArray;
++
++#if 0
++#define CbNewSTnefProblemArray(_cprob) \
++ (TNoffsetof(STnefProblemArray,aProblem) + (_cprob)*sizeof(STnefProblem))
++#define CbSTnefProblemArray(_lparray) \
++ (TNoffsetof(STnefProblemArray,aProblem) + \
++ (UINT) ((_lparray)->cProblem*sizeof(STnefProblem)))
++#endif
++
++/* Pointers to TNEF Interface ---------------------------------------- */
++
++#if 0
++DECLARE_MAPI_INTERFACE_PTR(ITnef, LPITNEF);
++#endif
++
++/* OpenTNEFStream */
++
++#define TNEF_DECODE ((ULONG) 0)
++#define TNEF_ENCODE ((ULONG) 2)
++
++#define TNEF_PURE ((ULONG) 0x00010000)
++#define TNEF_COMPATIBILITY ((ULONG) 0x00020000)
++#define TNEF_BEST_DATA ((ULONG) 0x00040000)
++#define TNEF_COMPONENT_ENCODING ((ULONG) 0x80000000)
++
++/* AddProps, ExtractProps */
++
++#define TNEF_PROP_INCLUDE ((ULONG) 0x00000001)
++#define TNEF_PROP_EXCLUDE ((ULONG) 0x00000002)
++#define TNEF_PROP_CONTAINED ((ULONG) 0x00000004)
++#define TNEF_PROP_MESSAGE_ONLY ((ULONG) 0x00000008)
++#define TNEF_PROP_ATTACHMENTS_ONLY ((ULONG) 0x00000010)
++#define TNEF_PROP_CONTAINED_TNEF ((ULONG) 0x00000040)
++
++/* FinishComponent */
++
++#define TNEF_COMPONENT_MESSAGE ((ULONG) 0x00001000)
++#define TNEF_COMPONENT_ATTACHMENT ((ULONG) 0x00002000)
++
++#if 0
++#define MAPI_ITNEF_METHODS(IPURE) \
++ MAPIMETHOD(AddProps) \
++ (THIS_ ULONG ulFlags, \
++ ULONG ulElemID, \
++ LPVOID lpvData, \
++ LPSPropTagArray lpPropList) IPURE; \
++ MAPIMETHOD(ExtractProps) \
++ (THIS_ ULONG ulFlags, \
++ LPSPropTagArray lpPropList, \
++ LPSTnefProblemArray FAR * lpProblems) IPURE; \
++ MAPIMETHOD(Finish) \
++ (THIS_ ULONG ulFlags, \
++ WORD FAR * lpKey, \
++ LPSTnefProblemArray FAR * lpProblems) IPURE; \
++ MAPIMETHOD(OpenTaggedBody) \
++ (THIS_ LPMESSAGE lpMessage, \
++ ULONG ulFlags, \
++ LPSTREAM FAR * lppStream) IPURE; \
++ MAPIMETHOD(SetProps) \
++ (THIS_ ULONG ulFlags, \
++ ULONG ulElemID, \
++ ULONG cValues, \
++ LPSPropValue lpProps) IPURE; \
++ MAPIMETHOD(EncodeRecips) \
++ (THIS_ ULONG ulFlags, \
++ LPMAPITABLE lpRecipientTable) IPURE; \
++ MAPIMETHOD(FinishComponent) \
++ (THIS_ ULONG ulFlags, \
++ ULONG ulComponentID, \
++ LPSPropTagArray lpCustomPropList, \
++ LPSPropValue lpCustomProps, \
++ LPSPropTagArray lpPropList, \
++ LPSTnefProblemArray FAR * lpProblems) IPURE; \
++
++#undef INTERFACE
++#define INTERFACE ITnef
++DECLARE_MAPI_INTERFACE_(ITnef, IUnknown)
++{
++ BEGIN_INTERFACE
++ MAPI_IUNKNOWN_METHODS(PURE)
++ MAPI_ITNEF_METHODS(PURE)
++};
++
++STDMETHODIMP OpenTnefStream(
++ LPVOID lpvSupport,
++ LPSTREAM lpStream,
++ LPTSTR lpszStreamName,
++ ULONG ulFlags,
++ LPMESSAGE lpMessage,
++ WORD wKeyVal,
++ LPITNEF FAR * lppTNEF);
++
++typedef HRESULT (STDMETHODCALLTYPE FAR * LPOPENTNEFSTREAM) (
++ LPVOID lpvSupport,
++ LPSTREAM lpStream,
++ LPTSTR lpszStreamName,
++ ULONG ulFlags,
++ LPMESSAGE lpMessage,
++ WORD wKeyVal,
++ LPITNEF FAR * lppTNEF);
++
++STDMETHODIMP OpenTnefStreamEx(
++ LPVOID lpvSupport,
++ LPSTREAM lpStream,
++ LPTSTR lpszStreamName,
++ ULONG ulFlags,
++ LPMESSAGE lpMessage,
++ WORD wKeyVal,
++ LPADRBOOK lpAdressBook,
++ LPITNEF FAR * lppTNEF);
++
++typedef HRESULT (STDMETHODCALLTYPE FAR * LPOPENTNEFSTREAMEX) (
++ LPVOID lpvSupport,
++ LPSTREAM lpStream,
++ LPTSTR lpszStreamName,
++ ULONG ulFlags,
++ LPMESSAGE lpMessage,
++ WORD wKeyVal,
++ LPADRBOOK lpAdressBook,
++ LPITNEF FAR * lppTNEF);
++
++STDMETHODIMP GetTnefStreamCodepage (
++ LPSTREAM lpStream,
++ ULONG FAR * lpulCodepage,
++ ULONG FAR * lpulSubCodepage);
++
++typedef HRESULT (STDMETHODCALLTYPE FAR * LPGETTNEFSTREAMCODEPAGE) (
++ LPSTREAM lpStream,
++ ULONG FAR * lpulCodepage,
++ ULONG FAR * lpulSubCodepage);
++
++#define OPENTNEFSTREAM "OpenTnefStream"
++#define OPENTNEFSTREAMEX "OpenTnefStreamEx"
++#define GETTNEFSTREAMCODEPAGE "GetTnefStreamCodePage"
++#endif
++
++/* -------------------------- */
++/* TNEF Signature and Version */
++/* -------------------------- */
++
++#define MAKE_TNEF_VERSION(_mj,_mn) (((ULONG)(0x0000FFFF & _mj) << 16) | (ULONG)(0x0000FFFF & _mn))
++#define TNEF_SIGNATURE ((ULONG) 0x223E9F78)
++#define TNEF_VERSION ((ULONG) MAKE_TNEF_VERSION(1,0))
++
++
++/* ------------------------------------------- */
++/* TNEF Down-level Attachment Types/Structures */
++/* ------------------------------------------- */
++
++typedef WORD ATYP;
++enum { atypNull, atypFile, atypOle, atypPicture, atypMax };
++
++#define MAC_BINARY ((DWORD) 0x00000001)
++
++typedef struct _renddata
++{
++ ATYP atyp;
++ ULONG ulPosition;
++ WORD dxWidth;
++ WORD dyHeight;
++ DWORD dwFlags;
++
++} RENDDATA, *PRENDDATA;
++
++/* ----------------------------------- */
++/* TNEF Down-level Date/Time Structure */
++/* ----------------------------------- */
++
++typedef struct _dtr
++{
++ WORD wYear;
++ WORD wMonth;
++ WORD wDay;
++ WORD wHour;
++ WORD wMinute;
++ WORD wSecond;
++ WORD wDayOfWeek;
++
++} DTR;
++
++
++/* ----------------------------- */
++/* TNEF Down-level Message Flags */
++/* ----------------------------- */
++
++#define fmsNull ((BYTE) 0x00)
++#define fmsModified ((BYTE) 0x01)
++#define fmsLocal ((BYTE) 0x02)
++#define fmsSubmitted ((BYTE) 0x04)
++#define fmsRead ((BYTE) 0x20)
++#define fmsHasAttach ((BYTE) 0x80)
++
++
++/* ----------------------------------------- */
++/* TNEF Down-level Triple Address Structures */
++/* ----------------------------------------- */
++
++#define trpidNull ((WORD) 0x0000)
++#define trpidUnresolved ((WORD) 0x0001)
++#define trpidResolvedNSID ((WORD) 0x0002)
++#define trpidResolvedAddress ((WORD) 0x0003)
++#define trpidOneOff ((WORD) 0x0004)
++#define trpidGroupNSID ((WORD) 0x0005)
++#define trpidOffline ((WORD) 0x0006)
++#define trpidIgnore ((WORD) 0x0007)
++#define trpidClassEntry ((WORD) 0x0008)
++#define trpidResolvedGroupAddress ((WORD) 0x0009)
++typedef struct _trp
++{
++ WORD trpid;
++ WORD cbgrtrp;
++ WORD cch;
++ WORD cbRgb;
++
++} TRP, *PTRP, *PGRTRP, FAR * LPTRP;
++#define CbOfTrp(_p) (sizeof(TRP) + (_p)->cch + (_p)->cbRgb)
++#define LpszOfTrp(_p) ((LPSTR)(((LPTRP) (_p)) + 1))
++#define LpbOfTrp(_p) (((LPBYTE)(((LPTRP)(_p)) + 1)) + (_p)->cch)
++#define LptrpNext(_p) ((LPTRP)((LPBYTE)(_p) + CbOfTrp(_p)))
++
++typedef DWORD XTYPE;
++#define xtypeUnknown ((XTYPE) 0)
++#define xtypeInternet ((XTYPE) 6)
++
++#define cbDisplayName 41
++#define cbEmailName 11
++#define cbSeverName 12
++typedef struct _ADDR_ALIAS
++{
++ char rgchName[cbDisplayName];
++ char rgchEName[cbEmailName];
++ char rgchSrvr[cbSeverName];
++ ULONG dibDetail;
++ WORD type;
++
++} ADDRALIAS, FAR * LPADDRALIAS;
++#define cbALIAS sizeof(ALIAS)
++
++#define cbTYPE 16
++#define cbMaxIdData 200
++typedef struct _NSID
++{
++ DWORD dwSize;
++ unsigned char uchType[cbTYPE];
++ XTYPE xtype;
++ LONG lTime;
++
++ union
++ {
++ ADDRALIAS alias;
++ char rgchInterNet[1];
++
++ } address;
++
++} NSID, * LPNSID;
++#define cbNSID sizeof(NSID)
++
++
++/* -------------------------- */
++/* TNEF Down-level Priorities */
++/* -------------------------- */
++
++#define prioLow 3
++#define prioNorm 2
++#define prioHigh 1
++
++
++/* ------------------------------------- */
++/* TNEF Down-level Attributes/Properties */
++/* ------------------------------------- */
++
++#define atpTriples ((WORD) 0x0000)
++#define atpString ((WORD) 0x0001)
++#define atpText ((WORD) 0x0002)
++#define atpDate ((WORD) 0x0003)
++#define atpShort ((WORD) 0x0004)
++#define atpLong ((WORD) 0x0005)
++#define atpByte ((WORD) 0x0006)
++#define atpWord ((WORD) 0x0007)
++#define atpDword ((WORD) 0x0008)
++#define atpMax ((WORD) 0x0009)
++
++#define LVL_MESSAGE ((BYTE) 0x01)
++#define LVL_ATTACHMENT ((BYTE) 0x02)
++
++#define ATT_ID(_att) ((WORD) ((_att) & 0x0000FFFF))
++#define ATT_TYPE(_att) ((WORD) (((_att) >> 16) & 0x0000FFFF))
++#define ATT(_atp, _id) ((((DWORD) (_atp)) << 16) | ((WORD) (_id)))
++
++#define attNull ATT( 0, 0x0000)
++#define attFrom ATT( atpTriples, 0x8000) /* PR_ORIGINATOR_RETURN_ADDRESS */
++#define attSubject ATT( atpString, 0x8004) /* PR_SUBJECT */
++#define attDateSent ATT( atpDate, 0x8005) /* PR_CLIENT_SUBMIT_TIME */
++#define attDateRecd ATT( atpDate, 0x8006) /* PR_MESSAGE_DELIVERY_TIME */
++#define attMessageStatus ATT( atpByte, 0x8007) /* PR_MESSAGE_FLAGS */
++#define attMessageClass ATT( atpWord, 0x8008) /* PR_MESSAGE_CLASS */
++#define attMessageID ATT( atpString, 0x8009) /* PR_MESSAGE_ID */
++#define attParentID ATT( atpString, 0x800A) /* PR_PARENT_ID */
++#define attConversationID ATT( atpString, 0x800B) /* PR_CONVERSATION_ID */
++#define attBody ATT( atpText, 0x800C) /* PR_BODY */
++#define attPriority ATT( atpShort, 0x800D) /* PR_IMPORTANCE */
++#define attAttachData ATT( atpByte, 0x800F) /* PR_ATTACH_DATA_xxx */
++#define attAttachTitle ATT( atpString, 0x8010) /* PR_ATTACH_FILENAME */
++#define attAttachMetaFile ATT( atpByte, 0x8011) /* PR_ATTACH_RENDERING */
++#define attAttachCreateDate ATT( atpDate, 0x8012) /* PR_CREATION_TIME */
++#define attAttachModifyDate ATT( atpDate, 0x8013) /* PR_LAST_MODIFICATION_TIME */
++#define attDateModified ATT( atpDate, 0x8020) /* PR_LAST_MODIFICATION_TIME */
++#define attAttachTransportFilename ATT( atpByte, 0x9001) /* PR_ATTACH_TRANSPORT_NAME */
++#define attAttachRenddata ATT( atpByte, 0x9002)
++#define attMAPIProps ATT( atpByte, 0x9003)
++#define attRecipTable ATT( atpByte, 0x9004) /* PR_MESSAGE_RECIPIENTS */
++#define attAttachment ATT( atpByte, 0x9005)
++#define attTnefVersion ATT( atpDword, 0x9006)
++#define attOemCodepage ATT( atpByte, 0x9007)
++#define attOriginalMessageClass ATT( atpWord, 0x0006) /* PR_ORIG_MESSAGE_CLASS */
++
++#define attOwner ATT( atpByte, 0x0000) /* PR_RCVD_REPRESENTING_xxx or
++ PR_SENT_REPRESENTING_xxx */
++#define attSentFor ATT( atpByte, 0x0001) /* PR_SENT_REPRESENTING_xxx */
++#define attDelegate ATT( atpByte, 0x0002) /* PR_RCVD_REPRESENTING_xxx */
++#define attDateStart ATT( atpDate, 0x0006) /* PR_DATE_START */
++#define attDateEnd ATT( atpDate, 0x0007) /* PR_DATE_END */
++#define attAidOwner ATT( atpLong, 0x0008) /* PR_OWNER_APPT_ID */
++#define attRequestRes ATT( atpShort, 0x0009) /* PR_RESPONSE_REQUESTED */
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* defined TNEF_H */
++/*
++ * M A P I D E F S . H
++ *
++ * Definitions used by MAPI clients and service providers.
++ *
++ * Copyright 1986-1996 Microsoft Corporation. All Rights Reserved.
++ */
++
++#ifndef MAPIDEFS_H
++#define MAPIDEFS_H
++
++
++/* Array dimension for structures with variable-sized arrays at the end. */
++
++/* Simple data types */
++
++
++typedef WORD WCHAR;
++
++#ifdef UNICODE
++typedef WCHAR TCHAR;
++#else
++typedef char TCHAR;
++#endif
++
++typedef WCHAR * LPWSTR;
++typedef const WCHAR * LPCWSTR;
++typedef TCHAR * LPTSTR;
++typedef const TCHAR * LPCTSTR;
++typedef BYTE * LPBYTE;
++
++typedef ULONG * LPULONG;
++
++#ifndef __LHANDLE
++#define __LHANDLE
++typedef unsigned long LHANDLE, * LPLHANDLE;
++#endif
++
++#if !defined(_WINBASE_) && !defined(_FILETIME_)
++#define _FILETIME_
++typedef struct _FILETIME
++{
++ DWORD dwLowDateTime;
++ DWORD dwHighDateTime;
++} FILETIME, * LPFILETIME;
++#endif
++
++/*
++ * This flag is used in many different MAPI calls to signify that
++ * the object opened by the call should be modifiable (MAPI_MODIFY).
++ * If the flag MAPI_MAX_ACCESS is set, the object returned should be
++ * returned at the maximum access level allowed. An additional
++ * property available on the object (PR_ACCESS_LEVEL) uses the same
++ * MAPI_MODIFY flag to say just what this new access level is.
++ */
++
++#define MAPI_MODIFY ((ULONG) 0x00000001)
++
++/*
++ * The following flags are used to indicate to the client what access
++ * level is permissible in the object. They appear in PR_ACCESS in
++ * message and folder objects as well as in contents and associated
++ * contents tables
++ */
++
++#define MAPI_ACCESS_MODIFY ((ULONG) 0x00000001)
++#define MAPI_ACCESS_READ ((ULONG) 0x00000002)
++#define MAPI_ACCESS_DELETE ((ULONG) 0x00000004)
++#define MAPI_ACCESS_CREATE_HIERARCHY ((ULONG) 0x00000008)
++#define MAPI_ACCESS_CREATE_CONTENTS ((ULONG) 0x00000010)
++#define MAPI_ACCESS_CREATE_ASSOCIATED ((ULONG) 0x00000020)
++
++/*
++ * The MAPI_UNICODE flag is used in many different MAPI calls to signify
++ * that strings passed through the interface are in Unicode (a 16-bit
++ * character set). The default is an 8-bit character set.
++ *
++ * The value fMapiUnicode can be used as the 'normal' value for
++ * that bit, given the application's default character set.
++ */
++
++#define MAPI_UNICODE ((ULONG) 0x80000000)
++
++#ifdef UNICODE
++#define fMapiUnicode MAPI_UNICODE
++#else
++#define fMapiUnicode 0
++#endif
++
++/* successful HRESULT */
++#define hrSuccess 0
++
++
++
++/* Recipient types */
++#ifndef MAPI_ORIG /* also defined in mapi.h */
++#define MAPI_ORIG 0 /* Recipient is message originator */
++#define MAPI_TO 1 /* Recipient is a primary recipient */
++#define MAPI_CC 2 /* Recipient is a copy recipient */
++#define MAPI_BCC 3 /* Recipient is blind copy recipient */
++#define MAPI_P1 0x10000000 /* Recipient is a P1 resend recipient */
++#define MAPI_SUBMITTED 0x80000000 /* Recipient is already processed */
++/* #define MAPI_AUTHORIZE 4 recipient is a CMC authorizing user */
++/*#define MAPI_DISCRETE 0x10000000 Recipient is a P1 resend recipient */
++#endif
++
++/* Bit definitions for abFlags[0] of ENTRYID */
++#define MAPI_SHORTTERM 0x80
++#define MAPI_NOTRECIP 0x40
++#define MAPI_THISSESSION 0x20
++#define MAPI_NOW 0x10
++#define MAPI_NOTRESERVED 0x08
++
++/* Bit definitions for abFlags[1] of ENTRYID */
++#define MAPI_COMPOUND 0x80
++
++/* ENTRYID */
++typedef struct
++{
++ BYTE abFlags[4];
++ BYTE ab[MAPI_DIM];
++} ENTRYID, *LPENTRYID;
++
++#define CbNewENTRYID(_cb) (offsetof(ENTRYID,ab) + (_cb))
++#define CbENTRYID(_cb) (offsetof(ENTRYID,ab) + (_cb))
++
++/* Byte-order-independent version of GUID (world-unique identifier) */
++typedef struct _MAPIUID
++{
++ BYTE ab[16];
++} MAPIUID, * LPMAPIUID;
++
++/* Note: need to include C run-times (memory.h) to use this macro */
++
++#define IsEqualMAPIUID(lpuid1, lpuid2) (!memcmp(lpuid1, lpuid2, sizeof(MAPIUID)))
++
++/*
++ * Constants for one-off entry ID:
++ * The MAPIUID that identifies the one-off provider;
++ * the flag that defines whether the embedded strings are Unicode;
++ * the flag that specifies whether the recipient gets TNEF or not.
++ */
++
++#define MAPI_ONE_OFF_UID { 0x81, 0x2b, 0x1f, 0xa4, 0xbe, 0xa3, 0x10, 0x19, 0x9d, 0x6e, 0x00, 0xdd, 0x01, 0x0f, 0x54, 0x02 }
++#define MAPI_ONE_OFF_UNICODE 0x8000
++#define MAPI_ONE_OFF_NO_RICH_INFO 0x0001
++
++/* Object type */
++
++#define MAPI_STORE ((ULONG) 0x00000001) /* Message Store */
++#define MAPI_ADDRBOOK ((ULONG) 0x00000002) /* Address Book */
++#define MAPI_FOLDER ((ULONG) 0x00000003) /* Folder */
++#define MAPI_ABCONT ((ULONG) 0x00000004) /* Address Book Container */
++#define MAPI_MESSAGE ((ULONG) 0x00000005) /* Message */
++#define MAPI_MAILUSER ((ULONG) 0x00000006) /* Individual Recipient */
++#define MAPI_ATTACH ((ULONG) 0x00000007) /* Attachment */
++#define MAPI_DISTLIST ((ULONG) 0x00000008) /* Distribution List Recipient */
++#define MAPI_PROFSECT ((ULONG) 0x00000009) /* Profile Section */
++#define MAPI_STATUS ((ULONG) 0x0000000A) /* Status Object */
++#define MAPI_SESSION ((ULONG) 0x0000000B) /* Session */
++#define MAPI_FORMINFO ((ULONG) 0x0000000C) /* Form Information */
++
++
++/*
++ * Maximum length of profile names and passwords, not including
++ * the null termination character.
++ */
++#ifndef cchProfileNameMax
++#define cchProfileNameMax 64
++#define cchProfilePassMax 64
++#endif
++
++
++/* Property Types */
++
++#define MV_FLAG 0x1000 /* Multi-value flag */
++
++#define PT_UNSPECIFIED ((ULONG) 0) /* (Reserved for interface use) type doesn't matter to caller */
++#define PT_NULL ((ULONG) 1) /* NULL property value */
++#define PT_I2 ((ULONG) 2) /* Signed 16-bit value */
++#define PT_LONG ((ULONG) 3) /* Signed 32-bit value */
++#define PT_R4 ((ULONG) 4) /* 4-byte floating point */
++#define PT_DOUBLE ((ULONG) 5) /* Floating point double */
++#define PT_CURRENCY ((ULONG) 6) /* Signed 64-bit int (decimal w/ 4 digits right of decimal pt) */
++#define PT_APPTIME ((ULONG) 7) /* Application time */
++#define PT_ERROR ((ULONG) 10) /* 32-bit error value */
++#define PT_BOOLEAN ((ULONG) 11) /* 16-bit boolean (non-zero true) */
++#define PT_OBJECT ((ULONG) 13) /* Embedded object in a property */
++#define PT_I8 ((ULONG) 20) /* 8-byte signed integer */
++#define PT_STRING8 ((ULONG) 30) /* Null terminated 8-bit character string */
++#define PT_UNICODE ((ULONG) 31) /* Null terminated Unicode string */
++#define PT_SYSTIME ((ULONG) 64) /* FILETIME 64-bit int w/ number of 100ns periods since Jan 1,1601 */
++#define PT_CLSID ((ULONG) 72) /* OLE GUID */
++#define PT_BINARY ((ULONG) 258) /* Uninterpreted (counted byte array) */
++/* Changes are likely to these numbers, and to their structures. */
++
++/* Alternate property type names for ease of use */
++#define PT_SHORT PT_I2
++#define PT_I4 PT_LONG
++#define PT_FLOAT PT_R4
++#define PT_R8 PT_DOUBLE
++#define PT_LONGLONG PT_I8
++
++/*
++ * The type of a MAPI-defined string property is indirected, so
++ * that it defaults to Unicode string on a Unicode platform and to
++ * String8 on an ANSI or DBCS platform.
++ *
++ * Macros are defined here both for the property type, and for the
++ * field of the property value structure which should be
++ * dereferenced to obtain the string pointer.
++ */
++
++#ifdef UNICODE
++#define PT_TSTRING PT_UNICODE
++#define PT_MV_TSTRING (MV_FLAG|PT_UNICODE)
++#define LPSZ lpszW
++#define LPPSZ lppszW
++#define MVSZ MVszW
++#else
++#define PT_TSTRING PT_STRING8
++#define PT_MV_TSTRING (MV_FLAG|PT_STRING8)
++#define LPSZ lpszA
++#define LPPSZ lppszA
++#define MVSZ MVszA
++#endif
++
++
++/* Property Tags
++ *
++ * By convention, MAPI never uses 0 or FFFF as a property ID.
++ * Use as null values, initializers, sentinels, or what have you.
++ */
++
++#define PROP_TYPE_MASK ((ULONG)0x0000FFFF) /* Mask for Property type */
++#define PROP_TYPE(ulPropTag) (((ULONG)(ulPropTag))&PROP_TYPE_MASK)
++#define PROP_ID(ulPropTag) (((ULONG)(ulPropTag))>>16)
++#define PROP_TAG(ulPropType,ulPropID) ((((ULONG)(ulPropID))<<16)|((ULONG)(ulPropType)))
++#define PROP_ID_NULL 0
++#define PROP_ID_INVALID 0xFFFF
++#define PR_NULL PROP_TAG( PT_NULL, PROP_ID_NULL)
++#if 0
++#define CHANGE_PROP_TYPE(ulPropTag, ulPropType) \
++ (((ULONG)0xFFFF0000 & ulPropTag) | ulPropType)
++#endif
++
++
++/* Multi-valued Property Types */
++
++#define PT_MV_I2 (MV_FLAG|PT_I2)
++#define PT_MV_LONG (MV_FLAG|PT_LONG)
++#define PT_MV_R4 (MV_FLAG|PT_R4)
++#define PT_MV_DOUBLE (MV_FLAG|PT_DOUBLE)
++#define PT_MV_CURRENCY (MV_FLAG|PT_CURRENCY)
++#define PT_MV_APPTIME (MV_FLAG|PT_APPTIME)
++#define PT_MV_SYSTIME (MV_FLAG|PT_SYSTIME)
++#define PT_MV_STRING8 (MV_FLAG|PT_STRING8)
++#define PT_MV_BINARY (MV_FLAG|PT_BINARY)
++#define PT_MV_UNICODE (MV_FLAG|PT_UNICODE)
++#define PT_MV_CLSID (MV_FLAG|PT_CLSID)
++#define PT_MV_I8 (MV_FLAG|PT_I8)
++
++/* Alternate property type names for ease of use */
++#define PT_MV_SHORT PT_MV_I2
++#define PT_MV_I4 PT_MV_LONG
++#define PT_MV_FLOAT PT_MV_R4
++#define PT_MV_R8 PT_MV_DOUBLE
++#define PT_MV_LONGLONG PT_MV_I8
++
++/*
++ * Property type reserved bits
++ *
++ * MV_INSTANCE is used as a flag in table operations to request
++ * that a multi-valued property be presented as a single-valued
++ * property appearing in multiple rows.
++ */
++
++#define MV_INSTANCE 0x2000
++#define MVI_FLAG (MV_FLAG | MV_INSTANCE)
++#define MVI_PROP(tag) ((tag) | MVI_FLAG)
++
++
++
++#endif /* MAPIDEFS_H */
++/*
++ * M A P I T A G S . H
++ *
++ * Property tag definitions for standard properties of MAPI
++ * objects.
++ *
++ * The following ranges should be used for all property IDs. Note that
++ * property IDs for objects other than messages and recipients should
++ * all fall in the range 0x3000 to 0x3FFF:
++ *
++ * From To Kind of property
++ * --------------------------------
++ * 0001 0BFF MAPI_defined envelope property
++ * 0C00 0DFF MAPI_defined per-recipient property
++ * 0E00 0FFF MAPI_defined non-transmittable property
++ * 1000 2FFF MAPI_defined message content property
++ *
++ * 3000 3FFF MAPI_defined property (usually not message or recipient)
++ *
++ * 4000 57FF Transport-defined envelope property
++ * 5800 5FFF Transport-defined per-recipient property
++ * 6000 65FF User-defined non-transmittable property
++ * 6600 67FF Provider-defined internal non-transmittable property
++ * 6800 7BFF Message class-defined content property
++ * 7C00 7FFF Message class-defined non-transmittable
++ * property
++ *
++ * 8000 FFFE User-defined Name-to-id mapped property
++ *
++ * The 3000-3FFF range is further subdivided as follows:
++ *
++ * From To Kind of property
++ * --------------------------------
++ * 3000 33FF Common property such as display name, entry ID
++ * 3400 35FF Message store object
++ * 3600 36FF Folder or AB container
++ * 3700 38FF Attachment
++ * 3900 39FF Address book object
++ * 3A00 3BFF Mail user
++ * 3C00 3CFF Distribution list
++ * 3D00 3DFF Profile section
++ * 3E00 3FFF Status object
++ *
++ * Copyright 1986-1996 Microsoft Corporation. All Rights Reserved.
++ */
++
++#ifndef MAPITAGS_H
++#define MAPITAGS_H
++
++/* Determine if a property is transmittable. */
++
++#define FIsTransmittable(ulPropTag) \
++ ((PROP_ID (ulPropTag) < (ULONG)0x0E00) || \
++ (PROP_ID (ulPropTag) >= (ULONG)0x8000) || \
++ ((PROP_ID (ulPropTag) >= (ULONG)0x1000) && (PROP_ID (ulPropTag) < (ULONG)0x6000)) || \
++ ((PROP_ID (ulPropTag) >= (ULONG)0x6800) && (PROP_ID (ulPropTag) < (ULONG)0x7C00)))
++
++/*
++ * Message envelope properties
++ */
++
++#define PR_ACKNOWLEDGEMENT_MODE PROP_TAG( PT_LONG, 0x0001)
++#define PR_ALTERNATE_RECIPIENT_ALLOWED PROP_TAG( PT_BOOLEAN, 0x0002)
++#define PR_AUTHORIZING_USERS PROP_TAG( PT_BINARY, 0x0003)
++#define PR_AUTO_FORWARD_COMMENT PROP_TAG( PT_TSTRING, 0x0004)
++#define PR_AUTO_FORWARD_COMMENT_W PROP_TAG( PT_UNICODE, 0x0004)
++#define PR_AUTO_FORWARD_COMMENT_A PROP_TAG( PT_STRING8, 0x0004)
++#define PR_AUTO_FORWARDED PROP_TAG( PT_BOOLEAN, 0x0005)
++#define PR_CONTENT_CONFIDENTIALITY_ALGORITHM_ID PROP_TAG( PT_BINARY, 0x0006)
++#define PR_CONTENT_CORRELATOR PROP_TAG( PT_BINARY, 0x0007)
++#define PR_CONTENT_IDENTIFIER PROP_TAG( PT_TSTRING, 0x0008)
++#define PR_CONTENT_IDENTIFIER_W PROP_TAG( PT_UNICODE, 0x0008)
++#define PR_CONTENT_IDENTIFIER_A PROP_TAG( PT_STRING8, 0x0008)
++#define PR_CONTENT_LENGTH PROP_TAG( PT_LONG, 0x0009)
++#define PR_CONTENT_RETURN_REQUESTED PROP_TAG( PT_BOOLEAN, 0x000A)
++
++
++
++#define PR_CONVERSATION_KEY PROP_TAG( PT_BINARY, 0x000B)
++
++#define PR_CONVERSION_EITS PROP_TAG( PT_BINARY, 0x000C)
++#define PR_CONVERSION_WITH_LOSS_PROHIBITED PROP_TAG( PT_BOOLEAN, 0x000D)
++#define PR_CONVERTED_EITS PROP_TAG( PT_BINARY, 0x000E)
++#define PR_DEFERRED_DELIVERY_TIME PROP_TAG( PT_SYSTIME, 0x000F)
++#define PR_DELIVER_TIME PROP_TAG( PT_SYSTIME, 0x0010)
++#define PR_DISCARD_REASON PROP_TAG( PT_LONG, 0x0011)
++#define PR_DISCLOSURE_OF_RECIPIENTS PROP_TAG( PT_BOOLEAN, 0x0012)
++#define PR_DL_EXPANSION_HISTORY PROP_TAG( PT_BINARY, 0x0013)
++#define PR_DL_EXPANSION_PROHIBITED PROP_TAG( PT_BOOLEAN, 0x0014)
++#define PR_EXPIRY_TIME PROP_TAG( PT_SYSTIME, 0x0015)
++#define PR_IMPLICIT_CONVERSION_PROHIBITED PROP_TAG( PT_BOOLEAN, 0x0016)
++#define PR_IMPORTANCE PROP_TAG( PT_LONG, 0x0017)
++#define PR_IPM_ID PROP_TAG( PT_BINARY, 0x0018)
++#define PR_LATEST_DELIVERY_TIME PROP_TAG( PT_SYSTIME, 0x0019)
++#define PR_MESSAGE_CLASS PROP_TAG( PT_TSTRING, 0x001A)
++#define PR_MESSAGE_CLASS_W PROP_TAG( PT_UNICODE, 0x001A)
++#define PR_MESSAGE_CLASS_A PROP_TAG( PT_STRING8, 0x001A)
++#define PR_MESSAGE_DELIVERY_ID PROP_TAG( PT_BINARY, 0x001B)
++
++
++
++
++
++#define PR_MESSAGE_SECURITY_LABEL PROP_TAG( PT_BINARY, 0x001E)
++#define PR_OBSOLETED_IPMS PROP_TAG( PT_BINARY, 0x001F)
++#define PR_ORIGINALLY_INTENDED_RECIPIENT_NAME PROP_TAG( PT_BINARY, 0x0020)
++#define PR_ORIGINAL_EITS PROP_TAG( PT_BINARY, 0x0021)
++#define PR_ORIGINATOR_CERTIFICATE PROP_TAG( PT_BINARY, 0x0022)
++#define PR_ORIGINATOR_DELIVERY_REPORT_REQUESTED PROP_TAG( PT_BOOLEAN, 0x0023)
++#define PR_ORIGINATOR_RETURN_ADDRESS PROP_TAG( PT_BINARY, 0x0024)
++
++
++
++#define PR_PARENT_KEY PROP_TAG( PT_BINARY, 0x0025)
++#define PR_PRIORITY PROP_TAG( PT_LONG, 0x0026)
++
++
++
++#define PR_ORIGIN_CHECK PROP_TAG( PT_BINARY, 0x0027)
++#define PR_PROOF_OF_SUBMISSION_REQUESTED PROP_TAG( PT_BOOLEAN, 0x0028)
++#define PR_READ_RECEIPT_REQUESTED PROP_TAG( PT_BOOLEAN, 0x0029)
++#define PR_RECEIPT_TIME PROP_TAG( PT_SYSTIME, 0x002A)
++#define PR_RECIPIENT_REASSIGNMENT_PROHIBITED PROP_TAG( PT_BOOLEAN, 0x002B)
++#define PR_REDIRECTION_HISTORY PROP_TAG( PT_BINARY, 0x002C)
++#define PR_RELATED_IPMS PROP_TAG( PT_BINARY, 0x002D)
++#define PR_ORIGINAL_SENSITIVITY PROP_TAG( PT_LONG, 0x002E)
++#define PR_LANGUAGES PROP_TAG( PT_TSTRING, 0x002F)
++#define PR_LANGUAGES_W PROP_TAG( PT_UNICODE, 0x002F)
++#define PR_LANGUAGES_A PROP_TAG( PT_STRING8, 0x002F)
++#define PR_REPLY_TIME PROP_TAG( PT_SYSTIME, 0x0030)
++#define PR_REPORT_TAG PROP_TAG( PT_BINARY, 0x0031)
++#define PR_REPORT_TIME PROP_TAG( PT_SYSTIME, 0x0032)
++#define PR_RETURNED_IPM PROP_TAG( PT_BOOLEAN, 0x0033)
++#define PR_SECURITY PROP_TAG( PT_LONG, 0x0034)
++#define PR_INCOMPLETE_COPY PROP_TAG( PT_BOOLEAN, 0x0035)
++#define PR_SENSITIVITY PROP_TAG( PT_LONG, 0x0036)
++#define PR_SUBJECT PROP_TAG( PT_TSTRING, 0x0037)
++#define PR_SUBJECT_W PROP_TAG( PT_UNICODE, 0x0037)
++#define PR_SUBJECT_A PROP_TAG( PT_STRING8, 0x0037)
++#define PR_SUBJECT_IPM PROP_TAG( PT_BINARY, 0x0038)
++#define PR_CLIENT_SUBMIT_TIME PROP_TAG( PT_SYSTIME, 0x0039)
++#define PR_REPORT_NAME PROP_TAG( PT_TSTRING, 0x003A)
++#define PR_REPORT_NAME_W PROP_TAG( PT_UNICODE, 0x003A)
++#define PR_REPORT_NAME_A PROP_TAG( PT_STRING8, 0x003A)
++#define PR_SENT_REPRESENTING_SEARCH_KEY PROP_TAG( PT_BINARY, 0x003B)
++#define PR_X400_CONTENT_TYPE PROP_TAG( PT_BINARY, 0x003C)
++#define PR_SUBJECT_PREFIX PROP_TAG( PT_TSTRING, 0x003D)
++#define PR_SUBJECT_PREFIX_W PROP_TAG( PT_UNICODE, 0x003D)
++#define PR_SUBJECT_PREFIX_A PROP_TAG( PT_STRING8, 0x003D)
++#define PR_NON_RECEIPT_REASON PROP_TAG( PT_LONG, 0x003E)
++#define PR_RECEIVED_BY_ENTRYID PROP_TAG( PT_BINARY, 0x003F)
++#define PR_RECEIVED_BY_NAME PROP_TAG( PT_TSTRING, 0x0040)
++#define PR_RECEIVED_BY_NAME_W PROP_TAG( PT_UNICODE, 0x0040)
++#define PR_RECEIVED_BY_NAME_A PROP_TAG( PT_STRING8, 0x0040)
++#define PR_SENT_REPRESENTING_ENTRYID PROP_TAG( PT_BINARY, 0x0041)
++#define PR_SENT_REPRESENTING_NAME PROP_TAG( PT_TSTRING, 0x0042)
++#define PR_SENT_REPRESENTING_NAME_W PROP_TAG( PT_UNICODE, 0x0042)
++#define PR_SENT_REPRESENTING_NAME_A PROP_TAG( PT_STRING8, 0x0042)
++#define PR_RCVD_REPRESENTING_ENTRYID PROP_TAG( PT_BINARY, 0x0043)
++#define PR_RCVD_REPRESENTING_NAME PROP_TAG( PT_TSTRING, 0x0044)
++#define PR_RCVD_REPRESENTING_NAME_W PROP_TAG( PT_UNICODE, 0x0044)
++#define PR_RCVD_REPRESENTING_NAME_A PROP_TAG( PT_STRING8, 0x0044)
++#define PR_REPORT_ENTRYID PROP_TAG( PT_BINARY, 0x0045)
++#define PR_READ_RECEIPT_ENTRYID PROP_TAG( PT_BINARY, 0x0046)
++#define PR_MESSAGE_SUBMISSION_ID PROP_TAG( PT_BINARY, 0x0047)
++#define PR_PROVIDER_SUBMIT_TIME PROP_TAG( PT_SYSTIME, 0x0048)
++#define PR_ORIGINAL_SUBJECT PROP_TAG( PT_TSTRING, 0x0049)
++#define PR_ORIGINAL_SUBJECT_W PROP_TAG( PT_UNICODE, 0x0049)
++#define PR_ORIGINAL_SUBJECT_A PROP_TAG( PT_STRING8, 0x0049)
++#define PR_DISC_VAL PROP_TAG( PT_BOOLEAN, 0x004A)
++#define PR_ORIG_MESSAGE_CLASS PROP_TAG( PT_TSTRING, 0x004B)
++#define PR_ORIG_MESSAGE_CLASS_W PROP_TAG( PT_UNICODE, 0x004B)
++#define PR_ORIG_MESSAGE_CLASS_A PROP_TAG( PT_STRING8, 0x004B)
++#define PR_ORIGINAL_AUTHOR_ENTRYID PROP_TAG( PT_BINARY, 0x004C)
++#define PR_ORIGINAL_AUTHOR_NAME PROP_TAG( PT_TSTRING, 0x004D)
++#define PR_ORIGINAL_AUTHOR_NAME_W PROP_TAG( PT_UNICODE, 0x004D)
++#define PR_ORIGINAL_AUTHOR_NAME_A PROP_TAG( PT_STRING8, 0x004D)
++#define PR_ORIGINAL_SUBMIT_TIME PROP_TAG( PT_SYSTIME, 0x004E)
++#define PR_REPLY_RECIPIENT_ENTRIES PROP_TAG( PT_BINARY, 0x004F)
++#define PR_REPLY_RECIPIENT_NAMES PROP_TAG( PT_TSTRING, 0x0050)
++#define PR_REPLY_RECIPIENT_NAMES_W PROP_TAG( PT_UNICODE, 0x0050)
++#define PR_REPLY_RECIPIENT_NAMES_A PROP_TAG( PT_STRING8, 0x0050)
++
++#define PR_RECEIVED_BY_SEARCH_KEY PROP_TAG( PT_BINARY, 0x0051)
++#define PR_RCVD_REPRESENTING_SEARCH_KEY PROP_TAG( PT_BINARY, 0x0052)
++#define PR_READ_RECEIPT_SEARCH_KEY PROP_TAG( PT_BINARY, 0x0053)
++#define PR_REPORT_SEARCH_KEY PROP_TAG( PT_BINARY, 0x0054)
++#define PR_ORIGINAL_DELIVERY_TIME PROP_TAG( PT_SYSTIME, 0x0055)
++#define PR_ORIGINAL_AUTHOR_SEARCH_KEY PROP_TAG( PT_BINARY, 0x0056)
++
++#define PR_MESSAGE_TO_ME PROP_TAG( PT_BOOLEAN, 0x0057)
++#define PR_MESSAGE_CC_ME PROP_TAG( PT_BOOLEAN, 0x0058)
++#define PR_MESSAGE_RECIP_ME PROP_TAG( PT_BOOLEAN, 0x0059)
++
++#define PR_ORIGINAL_SENDER_NAME PROP_TAG( PT_TSTRING, 0x005A)
++#define PR_ORIGINAL_SENDER_NAME_W PROP_TAG( PT_UNICODE, 0x005A)
++#define PR_ORIGINAL_SENDER_NAME_A PROP_TAG( PT_STRING8, 0x005A)
++#define PR_ORIGINAL_SENDER_ENTRYID PROP_TAG( PT_BINARY, 0x005B)
++#define PR_ORIGINAL_SENDER_SEARCH_KEY PROP_TAG( PT_BINARY, 0x005C)
++#define PR_ORIGINAL_SENT_REPRESENTING_NAME PROP_TAG( PT_TSTRING, 0x005D)
++#define PR_ORIGINAL_SENT_REPRESENTING_NAME_W PROP_TAG( PT_UNICODE, 0x005D)
++#define PR_ORIGINAL_SENT_REPRESENTING_NAME_A PROP_TAG( PT_STRING8, 0x005D)
++#define PR_ORIGINAL_SENT_REPRESENTING_ENTRYID PROP_TAG( PT_BINARY, 0x005E)
++#define PR_ORIGINAL_SENT_REPRESENTING_SEARCH_KEY PROP_TAG( PT_BINARY, 0x005F)
++
++#define PR_START_DATE PROP_TAG( PT_SYSTIME, 0x0060)
++#define PR_END_DATE PROP_TAG( PT_SYSTIME, 0x0061)
++#define PR_OWNER_APPT_ID PROP_TAG( PT_LONG, 0x0062)
++#define PR_RESPONSE_REQUESTED PROP_TAG( PT_BOOLEAN, 0x0063)
++
++#define PR_SENT_REPRESENTING_ADDRTYPE PROP_TAG( PT_TSTRING, 0x0064)
++#define PR_SENT_REPRESENTING_ADDRTYPE_W PROP_TAG( PT_UNICODE, 0x0064)
++#define PR_SENT_REPRESENTING_ADDRTYPE_A PROP_TAG( PT_STRING8, 0x0064)
++#define PR_SENT_REPRESENTING_EMAIL_ADDRESS PROP_TAG( PT_TSTRING, 0x0065)
++#define PR_SENT_REPRESENTING_EMAIL_ADDRESS_W PROP_TAG( PT_UNICODE, 0x0065)
++#define PR_SENT_REPRESENTING_EMAIL_ADDRESS_A PROP_TAG( PT_STRING8, 0x0065)
++
++#define PR_ORIGINAL_SENDER_ADDRTYPE PROP_TAG( PT_TSTRING, 0x0066)
++#define PR_ORIGINAL_SENDER_ADDRTYPE_W PROP_TAG( PT_UNICODE, 0x0066)
++#define PR_ORIGINAL_SENDER_ADDRTYPE_A PROP_TAG( PT_STRING8, 0x0066)
++#define PR_ORIGINAL_SENDER_EMAIL_ADDRESS PROP_TAG( PT_TSTRING, 0x0067)
++#define PR_ORIGINAL_SENDER_EMAIL_ADDRESS_W PROP_TAG( PT_UNICODE, 0x0067)
++#define PR_ORIGINAL_SENDER_EMAIL_ADDRESS_A PROP_TAG( PT_STRING8, 0x0067)
++
++#define PR_ORIGINAL_SENT_REPRESENTING_ADDRTYPE PROP_TAG( PT_TSTRING, 0x0068)
++#define PR_ORIGINAL_SENT_REPRESENTING_ADDRTYPE_W PROP_TAG( PT_UNICODE, 0x0068)
++#define PR_ORIGINAL_SENT_REPRESENTING_ADDRTYPE_A PROP_TAG( PT_STRING8, 0x0068)
++#define PR_ORIGINAL_SENT_REPRESENTING_EMAIL_ADDRESS PROP_TAG( PT_TSTRING, 0x0069)
++#define PR_ORIGINAL_SENT_REPRESENTING_EMAIL_ADDRESS_W PROP_TAG( PT_UNICODE, 0x0069)
++#define PR_ORIGINAL_SENT_REPRESENTING_EMAIL_ADDRESS_A PROP_TAG( PT_STRING8, 0x0069)
++
++#define PR_CONVERSATION_TOPIC PROP_TAG( PT_TSTRING, 0x0070)
++#define PR_CONVERSATION_TOPIC_W PROP_TAG( PT_UNICODE, 0x0070)
++#define PR_CONVERSATION_TOPIC_A PROP_TAG( PT_STRING8, 0x0070)
++#define PR_CONVERSATION_INDEX PROP_TAG( PT_BINARY, 0x0071)
++
++#define PR_ORIGINAL_DISPLAY_BCC PROP_TAG( PT_TSTRING, 0x0072)
++#define PR_ORIGINAL_DISPLAY_BCC_W PROP_TAG( PT_UNICODE, 0x0072)
++#define PR_ORIGINAL_DISPLAY_BCC_A PROP_TAG( PT_STRING8, 0x0072)
++#define PR_ORIGINAL_DISPLAY_CC PROP_TAG( PT_TSTRING, 0x0073)
++#define PR_ORIGINAL_DISPLAY_CC_W PROP_TAG( PT_UNICODE, 0x0073)
++#define PR_ORIGINAL_DISPLAY_CC_A PROP_TAG( PT_STRING8, 0x0073)
++#define PR_ORIGINAL_DISPLAY_TO PROP_TAG( PT_TSTRING, 0x0074)
++#define PR_ORIGINAL_DISPLAY_TO_W PROP_TAG( PT_UNICODE, 0x0074)
++#define PR_ORIGINAL_DISPLAY_TO_A PROP_TAG( PT_STRING8, 0x0074)
++
++#define PR_RECEIVED_BY_ADDRTYPE PROP_TAG( PT_TSTRING, 0x0075)
++#define PR_RECEIVED_BY_ADDRTYPE_W PROP_TAG( PT_UNICODE, 0x0075)
++#define PR_RECEIVED_BY_ADDRTYPE_A PROP_TAG( PT_STRING8, 0x0075)
++#define PR_RECEIVED_BY_EMAIL_ADDRESS PROP_TAG( PT_TSTRING, 0x0076)
++#define PR_RECEIVED_BY_EMAIL_ADDRESS_W PROP_TAG( PT_UNICODE, 0x0076)
++#define PR_RECEIVED_BY_EMAIL_ADDRESS_A PROP_TAG( PT_STRING8, 0x0076)
++
++#define PR_RCVD_REPRESENTING_ADDRTYPE PROP_TAG( PT_TSTRING, 0x0077)
++#define PR_RCVD_REPRESENTING_ADDRTYPE_W PROP_TAG( PT_UNICODE, 0x0077)
++#define PR_RCVD_REPRESENTING_ADDRTYPE_A PROP_TAG( PT_STRING8, 0x0077)
++#define PR_RCVD_REPRESENTING_EMAIL_ADDRESS PROP_TAG( PT_TSTRING, 0x0078)
++#define PR_RCVD_REPRESENTING_EMAIL_ADDRESS_W PROP_TAG( PT_UNICODE, 0x0078)
++#define PR_RCVD_REPRESENTING_EMAIL_ADDRESS_A PROP_TAG( PT_STRING8, 0x0078)
++
++#define PR_ORIGINAL_AUTHOR_ADDRTYPE PROP_TAG( PT_TSTRING, 0x0079)
++#define PR_ORIGINAL_AUTHOR_ADDRTYPE_W PROP_TAG( PT_UNICODE, 0x0079)
++#define PR_ORIGINAL_AUTHOR_ADDRTYPE_A PROP_TAG( PT_STRING8, 0x0079)
++#define PR_ORIGINAL_AUTHOR_EMAIL_ADDRESS PROP_TAG( PT_TSTRING, 0x007A)
++#define PR_ORIGINAL_AUTHOR_EMAIL_ADDRESS_W PROP_TAG( PT_UNICODE, 0x007A)
++#define PR_ORIGINAL_AUTHOR_EMAIL_ADDRESS_A PROP_TAG( PT_STRING8, 0x007A)
++
++#define PR_ORIGINALLY_INTENDED_RECIP_ADDRTYPE PROP_TAG( PT_TSTRING, 0x007B)
++#define PR_ORIGINALLY_INTENDED_RECIP_ADDRTYPE_W PROP_TAG( PT_UNICODE, 0x007B)
++#define PR_ORIGINALLY_INTENDED_RECIP_ADDRTYPE_A PROP_TAG( PT_STRING8, 0x007B)
++#define PR_ORIGINALLY_INTENDED_RECIP_EMAIL_ADDRESS PROP_TAG( PT_TSTRING, 0x007C)
++#define PR_ORIGINALLY_INTENDED_RECIP_EMAIL_ADDRESS_W PROP_TAG( PT_UNICODE, 0x007C)
++#define PR_ORIGINALLY_INTENDED_RECIP_EMAIL_ADDRESS_A PROP_TAG( PT_STRING8, 0x007C)
++
++#define PR_TRANSPORT_MESSAGE_HEADERS PROP_TAG(PT_TSTRING, 0x007D)
++#define PR_TRANSPORT_MESSAGE_HEADERS_W PROP_TAG(PT_UNICODE, 0x007D)
++#define PR_TRANSPORT_MESSAGE_HEADERS_A PROP_TAG(PT_STRING8, 0x007D)
++
++#define PR_DELEGATION PROP_TAG(PT_BINARY, 0x007E)
++
++#define PR_TNEF_CORRELATION_KEY PROP_TAG(PT_BINARY, 0x007F)
++
++
++
++/*
++ * Message content properties
++ */
++
++#define PR_BODY PROP_TAG( PT_TSTRING, 0x1000)
++#define PR_BODY_W PROP_TAG( PT_UNICODE, 0x1000)
++#define PR_BODY_A PROP_TAG( PT_STRING8, 0x1000)
++#define PR_REPORT_TEXT PROP_TAG( PT_TSTRING, 0x1001)
++#define PR_REPORT_TEXT_W PROP_TAG( PT_UNICODE, 0x1001)
++#define PR_REPORT_TEXT_A PROP_TAG( PT_STRING8, 0x1001)
++#define PR_ORIGINATOR_AND_DL_EXPANSION_HISTORY PROP_TAG( PT_BINARY, 0x1002)
++#define PR_REPORTING_DL_NAME PROP_TAG( PT_BINARY, 0x1003)
++#define PR_REPORTING_MTA_CERTIFICATE PROP_TAG( PT_BINARY, 0x1004)
++
++/* Removed PR_REPORT_ORIGIN_AUTHENTICATION_CHECK with DCR 3865, use PR_ORIGIN_CHECK */
++
++#define PR_RTF_SYNC_BODY_CRC PROP_TAG( PT_LONG, 0x1006)
++#define PR_RTF_SYNC_BODY_COUNT PROP_TAG( PT_LONG, 0x1007)
++#define PR_RTF_SYNC_BODY_TAG PROP_TAG( PT_TSTRING, 0x1008)
++#define PR_RTF_SYNC_BODY_TAG_W PROP_TAG( PT_UNICODE, 0x1008)
++#define PR_RTF_SYNC_BODY_TAG_A PROP_TAG( PT_STRING8, 0x1008)
++#define PR_RTF_COMPRESSED PROP_TAG( PT_BINARY, 0x1009)
++#define PR_RTF_SYNC_PREFIX_COUNT PROP_TAG( PT_LONG, 0x1010)
++#define PR_RTF_SYNC_TRAILING_COUNT PROP_TAG( PT_LONG, 0x1011)
++#define PR_ORIGINALLY_INTENDED_RECIP_ENTRYID PROP_TAG( PT_BINARY, 0x1012)
++
++/*
++ * Reserved 0x1100-0x1200
++ */
++
++
++/*
++ * Message recipient properties
++ */
++
++#define PR_CONTENT_INTEGRITY_CHECK PROP_TAG( PT_BINARY, 0x0C00)
++#define PR_EXPLICIT_CONVERSION PROP_TAG( PT_LONG, 0x0C01)
++#define PR_IPM_RETURN_REQUESTED PROP_TAG( PT_BOOLEAN, 0x0C02)
++#define PR_MESSAGE_TOKEN PROP_TAG( PT_BINARY, 0x0C03)
++#define PR_NDR_REASON_CODE PROP_TAG( PT_LONG, 0x0C04)
++#define PR_NDR_DIAG_CODE PROP_TAG( PT_LONG, 0x0C05)
++#define PR_NON_RECEIPT_NOTIFICATION_REQUESTED PROP_TAG( PT_BOOLEAN, 0x0C06)
++#define PR_DELIVERY_POINT PROP_TAG( PT_LONG, 0x0C07)
++
++#define PR_ORIGINATOR_NON_DELIVERY_REPORT_REQUESTED PROP_TAG( PT_BOOLEAN, 0x0C08)
++#define PR_ORIGINATOR_REQUESTED_ALTERNATE_RECIPIENT PROP_TAG( PT_BINARY, 0x0C09)
++#define PR_PHYSICAL_DELIVERY_BUREAU_FAX_DELIVERY PROP_TAG( PT_BOOLEAN, 0x0C0A)
++#define PR_PHYSICAL_DELIVERY_MODE PROP_TAG( PT_LONG, 0x0C0B)
++#define PR_PHYSICAL_DELIVERY_REPORT_REQUEST PROP_TAG( PT_LONG, 0x0C0C)
++#define PR_PHYSICAL_FORWARDING_ADDRESS PROP_TAG( PT_BINARY, 0x0C0D)
++#define PR_PHYSICAL_FORWARDING_ADDRESS_REQUESTED PROP_TAG( PT_BOOLEAN, 0x0C0E)
++#define PR_PHYSICAL_FORWARDING_PROHIBITED PROP_TAG( PT_BOOLEAN, 0x0C0F)
++#define PR_PHYSICAL_RENDITION_ATTRIBUTES PROP_TAG( PT_BINARY, 0x0C10)
++#define PR_PROOF_OF_DELIVERY PROP_TAG( PT_BINARY, 0x0C11)
++#define PR_PROOF_OF_DELIVERY_REQUESTED PROP_TAG( PT_BOOLEAN, 0x0C12)
++#define PR_RECIPIENT_CERTIFICATE PROP_TAG( PT_BINARY, 0x0C13)
++#define PR_RECIPIENT_NUMBER_FOR_ADVICE PROP_TAG( PT_TSTRING, 0x0C14)
++#define PR_RECIPIENT_NUMBER_FOR_ADVICE_W PROP_TAG( PT_UNICODE, 0x0C14)
++#define PR_RECIPIENT_NUMBER_FOR_ADVICE_A PROP_TAG( PT_STRING8, 0x0C14)
++#define PR_RECIPIENT_TYPE PROP_TAG( PT_LONG, 0x0C15)
++#define PR_REGISTERED_MAIL_TYPE PROP_TAG( PT_LONG, 0x0C16)
++#define PR_REPLY_REQUESTED PROP_TAG( PT_BOOLEAN, 0x0C17)
++#define PR_REQUESTED_DELIVERY_METHOD PROP_TAG( PT_LONG, 0x0C18)
++#define PR_SENDER_ENTRYID PROP_TAG( PT_BINARY, 0x0C19)
++#define PR_SENDER_NAME PROP_TAG( PT_TSTRING, 0x0C1A)
++#define PR_SENDER_NAME_W PROP_TAG( PT_UNICODE, 0x0C1A)
++#define PR_SENDER_NAME_A PROP_TAG( PT_STRING8, 0x0C1A)
++#define PR_SUPPLEMENTARY_INFO PROP_TAG( PT_TSTRING, 0x0C1B)
++#define PR_SUPPLEMENTARY_INFO_W PROP_TAG( PT_UNICODE, 0x0C1B)
++#define PR_SUPPLEMENTARY_INFO_A PROP_TAG( PT_STRING8, 0x0C1B)
++#define PR_TYPE_OF_MTS_USER PROP_TAG( PT_LONG, 0x0C1C)
++#define PR_SENDER_SEARCH_KEY PROP_TAG( PT_BINARY, 0x0C1D)
++#define PR_SENDER_ADDRTYPE PROP_TAG( PT_TSTRING, 0x0C1E)
++#define PR_SENDER_ADDRTYPE_W PROP_TAG( PT_UNICODE, 0x0C1E)
++#define PR_SENDER_ADDRTYPE_A PROP_TAG( PT_STRING8, 0x0C1E)
++#define PR_SENDER_EMAIL_ADDRESS PROP_TAG( PT_TSTRING, 0x0C1F)
++#define PR_SENDER_EMAIL_ADDRESS_W PROP_TAG( PT_UNICODE, 0x0C1F)
++#define PR_SENDER_EMAIL_ADDRESS_A PROP_TAG( PT_STRING8, 0x0C1F)
++
++/*
++ * Message non-transmittable properties
++ */
++
++/*
++ * The two tags, PR_MESSAGE_RECIPIENTS and PR_MESSAGE_ATTACHMENTS,
++ * are to be used in the exclude list passed to
++ * IMessage::CopyTo when the caller wants either the recipients or attachments
++ * of the message to not get copied. It is also used in the ProblemArray
++ * return from IMessage::CopyTo when an error is encountered copying them
++ */
++
++#define PR_CURRENT_VERSION PROP_TAG( PT_I8, 0x0E00)
++#define PR_DELETE_AFTER_SUBMIT PROP_TAG( PT_BOOLEAN, 0x0E01)
++#define PR_DISPLAY_BCC PROP_TAG( PT_TSTRING, 0x0E02)
++#define PR_DISPLAY_BCC_W PROP_TAG( PT_UNICODE, 0x0E02)
++#define PR_DISPLAY_BCC_A PROP_TAG( PT_STRING8, 0x0E02)
++#define PR_DISPLAY_CC PROP_TAG( PT_TSTRING, 0x0E03)
++#define PR_DISPLAY_CC_W PROP_TAG( PT_UNICODE, 0x0E03)
++#define PR_DISPLAY_CC_A PROP_TAG( PT_STRING8, 0x0E03)
++#define PR_DISPLAY_TO PROP_TAG( PT_TSTRING, 0x0E04)
++#define PR_DISPLAY_TO_W PROP_TAG( PT_UNICODE, 0x0E04)
++#define PR_DISPLAY_TO_A PROP_TAG( PT_STRING8, 0x0E04)
++#define PR_PARENT_DISPLAY PROP_TAG( PT_TSTRING, 0x0E05)
++#define PR_PARENT_DISPLAY_W PROP_TAG( PT_UNICODE, 0x0E05)
++#define PR_PARENT_DISPLAY_A PROP_TAG( PT_STRING8, 0x0E05)
++#define PR_MESSAGE_DELIVERY_TIME PROP_TAG( PT_SYSTIME, 0x0E06)
++#define PR_MESSAGE_FLAGS PROP_TAG( PT_LONG, 0x0E07)
++#define PR_MESSAGE_SIZE PROP_TAG( PT_LONG, 0x0E08)
++#define PR_PARENT_ENTRYID PROP_TAG( PT_BINARY, 0x0E09)
++#define PR_SENTMAIL_ENTRYID PROP_TAG( PT_BINARY, 0x0E0A)
++#define PR_CORRELATE PROP_TAG( PT_BOOLEAN, 0x0E0C)
++#define PR_CORRELATE_MTSID PROP_TAG( PT_BINARY, 0x0E0D)
++#define PR_DISCRETE_VALUES PROP_TAG( PT_BOOLEAN, 0x0E0E)
++#define PR_RESPONSIBILITY PROP_TAG( PT_BOOLEAN, 0x0E0F)
++#define PR_SPOOLER_STATUS PROP_TAG( PT_LONG, 0x0E10)
++#define PR_TRANSPORT_STATUS PROP_TAG( PT_LONG, 0x0E11)
++#define PR_MESSAGE_RECIPIENTS PROP_TAG( PT_OBJECT, 0x0E12)
++#define PR_MESSAGE_ATTACHMENTS PROP_TAG( PT_OBJECT, 0x0E13)
++#define PR_SUBMIT_FLAGS PROP_TAG( PT_LONG, 0x0E14)
++#define PR_RECIPIENT_STATUS PROP_TAG( PT_LONG, 0x0E15)
++#define PR_TRANSPORT_KEY PROP_TAG( PT_LONG, 0x0E16)
++#define PR_MSG_STATUS PROP_TAG( PT_LONG, 0x0E17)
++#define PR_MESSAGE_DOWNLOAD_TIME PROP_TAG( PT_LONG, 0x0E18)
++#define PR_CREATION_VERSION PROP_TAG( PT_I8, 0x0E19)
++#define PR_MODIFY_VERSION PROP_TAG( PT_I8, 0x0E1A)
++#define PR_HASATTACH PROP_TAG( PT_BOOLEAN, 0x0E1B)
++#define PR_BODY_CRC PROP_TAG( PT_LONG, 0x0E1C)
++#define PR_NORMALIZED_SUBJECT PROP_TAG( PT_TSTRING, 0x0E1D)
++#define PR_NORMALIZED_SUBJECT_W PROP_TAG( PT_UNICODE, 0x0E1D)
++#define PR_NORMALIZED_SUBJECT_A PROP_TAG( PT_STRING8, 0x0E1D)
++#define PR_RTF_IN_SYNC PROP_TAG( PT_BOOLEAN, 0x0E1F)
++#define PR_ATTACH_SIZE PROP_TAG( PT_LONG, 0x0E20)
++#define PR_ATTACH_NUM PROP_TAG( PT_LONG, 0x0E21)
++#define PR_PREPROCESS PROP_TAG( PT_BOOLEAN, 0x0E22)
++
++/* PR_ORIGINAL_DISPLAY_TO, _CC, and _BCC moved to transmittible range 03/09/95 */
++
++#define PR_ORIGINATING_MTA_CERTIFICATE PROP_TAG( PT_BINARY, 0x0E25)
++#define PR_PROOF_OF_SUBMISSION PROP_TAG( PT_BINARY, 0x0E26)
++
++
++/*
++ * The range of non-message and non-recipient property IDs (0x3000 - 0x3FFF) is
++ * further broken down into ranges to make assigning new property IDs easier.
++ *
++ * From To Kind of property
++ * --------------------------------
++ * 3000 32FF MAPI_defined common property
++ * 3200 33FF MAPI_defined form property
++ * 3400 35FF MAPI_defined message store property
++ * 3600 36FF MAPI_defined Folder or AB Container property
++ * 3700 38FF MAPI_defined attachment property
++ * 3900 39FF MAPI_defined address book property
++ * 3A00 3BFF MAPI_defined mailuser property
++ * 3C00 3CFF MAPI_defined DistList property
++ * 3D00 3DFF MAPI_defined Profile Section property
++ * 3E00 3EFF MAPI_defined Status property
++ * 3F00 3FFF MAPI_defined display table property
++ */
++
++/*
++ * Properties common to numerous MAPI objects.
++ *
++ * Those properties that can appear on messages are in the
++ * non-transmittable range for messages. They start at the high
++ * end of that range and work down.
++ *
++ * Properties that never appear on messages are defined in the common
++ * property range (see above).
++ */
++
++/*
++ * properties that are common to multiple objects (including message objects)
++ * -- these ids are in the non-transmittable range
++ */
++
++#define PR_ENTRYID PROP_TAG( PT_BINARY, 0x0FFF)
++#define PR_OBJECT_TYPE PROP_TAG( PT_LONG, 0x0FFE)
++#define PR_ICON PROP_TAG( PT_BINARY, 0x0FFD)
++#define PR_MINI_ICON PROP_TAG( PT_BINARY, 0x0FFC)
++#define PR_STORE_ENTRYID PROP_TAG( PT_BINARY, 0x0FFB)
++#define PR_STORE_RECORD_KEY PROP_TAG( PT_BINARY, 0x0FFA)
++#define PR_RECORD_KEY PROP_TAG( PT_BINARY, 0x0FF9)
++#define PR_MAPPING_SIGNATURE PROP_TAG( PT_BINARY, 0x0FF8)
++#define PR_ACCESS_LEVEL PROP_TAG( PT_LONG, 0x0FF7)
++#define PR_INSTANCE_KEY PROP_TAG( PT_BINARY, 0x0FF6)
++#define PR_ROW_TYPE PROP_TAG( PT_LONG, 0x0FF5)
++#define PR_ACCESS PROP_TAG( PT_LONG, 0x0FF4)
++
++/*
++ * properties that are common to multiple objects (usually not including message objects)
++ * -- these ids are in the transmittable range
++ */
++
++#define PR_ROWID PROP_TAG( PT_LONG, 0x3000)
++#define PR_DISPLAY_NAME PROP_TAG( PT_TSTRING, 0x3001)
++#define PR_DISPLAY_NAME_W PROP_TAG( PT_UNICODE, 0x3001)
++#define PR_DISPLAY_NAME_A PROP_TAG( PT_STRING8, 0x3001)
++#define PR_ADDRTYPE PROP_TAG( PT_TSTRING, 0x3002)
++#define PR_ADDRTYPE_W PROP_TAG( PT_UNICODE, 0x3002)
++#define PR_ADDRTYPE_A PROP_TAG( PT_STRING8, 0x3002)
++#define PR_EMAIL_ADDRESS PROP_TAG( PT_TSTRING, 0x3003)
++#define PR_EMAIL_ADDRESS_W PROP_TAG( PT_UNICODE, 0x3003)
++#define PR_EMAIL_ADDRESS_A PROP_TAG( PT_STRING8, 0x3003)
++#define PR_COMMENT PROP_TAG( PT_TSTRING, 0x3004)
++#define PR_COMMENT_W PROP_TAG( PT_UNICODE, 0x3004)
++#define PR_COMMENT_A PROP_TAG( PT_STRING8, 0x3004)
++#define PR_DEPTH PROP_TAG( PT_LONG, 0x3005)
++#define PR_PROVIDER_DISPLAY PROP_TAG( PT_TSTRING, 0x3006)
++#define PR_PROVIDER_DISPLAY_W PROP_TAG( PT_UNICODE, 0x3006)
++#define PR_PROVIDER_DISPLAY_A PROP_TAG( PT_STRING8, 0x3006)
++#define PR_CREATION_TIME PROP_TAG( PT_SYSTIME, 0x3007)
++#define PR_LAST_MODIFICATION_TIME PROP_TAG( PT_SYSTIME, 0x3008)
++#define PR_RESOURCE_FLAGS PROP_TAG( PT_LONG, 0x3009)
++#define PR_PROVIDER_DLL_NAME PROP_TAG( PT_TSTRING, 0x300A)
++#define PR_PROVIDER_DLL_NAME_W PROP_TAG( PT_UNICODE, 0x300A)
++#define PR_PROVIDER_DLL_NAME_A PROP_TAG( PT_STRING8, 0x300A)
++#define PR_SEARCH_KEY PROP_TAG( PT_BINARY, 0x300B)
++#define PR_PROVIDER_UID PROP_TAG( PT_BINARY, 0x300C)
++#define PR_PROVIDER_ORDINAL PROP_TAG( PT_LONG, 0x300D)
++
++/*
++ * MAPI Form properties
++ */
++#define PR_FORM_VERSION PROP_TAG(PT_TSTRING, 0x3301)
++#define PR_FORM_VERSION_W PROP_TAG(PT_UNICODE, 0x3301)
++#define PR_FORM_VERSION_A PROP_TAG(PT_STRING8, 0x3301)
++#define PR_FORM_CLSID PROP_TAG(PT_CLSID, 0x3302)
++#define PR_FORM_CONTACT_NAME PROP_TAG(PT_TSTRING, 0x3303)
++#define PR_FORM_CONTACT_NAME_W PROP_TAG(PT_UNICODE, 0x3303)
++#define PR_FORM_CONTACT_NAME_A PROP_TAG(PT_STRING8, 0x3303)
++#define PR_FORM_CATEGORY PROP_TAG(PT_TSTRING, 0x3304)
++#define PR_FORM_CATEGORY_W PROP_TAG(PT_UNICODE, 0x3304)
++#define PR_FORM_CATEGORY_A PROP_TAG(PT_STRING8, 0x3304)
++#define PR_FORM_CATEGORY_SUB PROP_TAG(PT_TSTRING, 0x3305)
++#define PR_FORM_CATEGORY_SUB_W PROP_TAG(PT_UNICODE, 0x3305)
++#define PR_FORM_CATEGORY_SUB_A PROP_TAG(PT_STRING8, 0x3305)
++#define PR_FORM_HOST_MAP PROP_TAG(PT_MV_LONG, 0x3306)
++#define PR_FORM_HIDDEN PROP_TAG(PT_BOOLEAN, 0x3307)
++#define PR_FORM_DESIGNER_NAME PROP_TAG(PT_TSTRING, 0x3308)
++#define PR_FORM_DESIGNER_NAME_W PROP_TAG(PT_UNICODE, 0x3308)
++#define PR_FORM_DESIGNER_NAME_A PROP_TAG(PT_STRING8, 0x3308)
++#define PR_FORM_DESIGNER_GUID PROP_TAG(PT_CLSID, 0x3309)
++#define PR_FORM_MESSAGE_BEHAVIOR PROP_TAG(PT_LONG, 0x330A)
++
++/*
++ * Message store properties
++ */
++
++#define PR_DEFAULT_STORE PROP_TAG( PT_BOOLEAN, 0x3400)
++#define PR_STORE_SUPPORT_MASK PROP_TAG( PT_LONG, 0x340D)
++#define PR_STORE_STATE PROP_TAG( PT_LONG, 0x340E)
++
++#define PR_IPM_SUBTREE_SEARCH_KEY PROP_TAG( PT_BINARY, 0x3410)
++#define PR_IPM_OUTBOX_SEARCH_KEY PROP_TAG( PT_BINARY, 0x3411)
++#define PR_IPM_WASTEBASKET_SEARCH_KEY PROP_TAG( PT_BINARY, 0x3412)
++#define PR_IPM_SENTMAIL_SEARCH_KEY PROP_TAG( PT_BINARY, 0x3413)
++#define PR_MDB_PROVIDER PROP_TAG( PT_BINARY, 0x3414)
++#define PR_RECEIVE_FOLDER_SETTINGS PROP_TAG( PT_OBJECT, 0x3415)
++
++#define PR_VALID_FOLDER_MASK PROP_TAG( PT_LONG, 0x35DF)
++#define PR_IPM_SUBTREE_ENTRYID PROP_TAG( PT_BINARY, 0x35E0)
++
++#define PR_IPM_OUTBOX_ENTRYID PROP_TAG( PT_BINARY, 0x35E2)
++#define PR_IPM_WASTEBASKET_ENTRYID PROP_TAG( PT_BINARY, 0x35E3)
++#define PR_IPM_SENTMAIL_ENTRYID PROP_TAG( PT_BINARY, 0x35E4)
++#define PR_VIEWS_ENTRYID PROP_TAG( PT_BINARY, 0x35E5)
++#define PR_COMMON_VIEWS_ENTRYID PROP_TAG( PT_BINARY, 0x35E6)
++#define PR_FINDER_ENTRYID PROP_TAG( PT_BINARY, 0x35E7)
++
++/* Proptags 0x35E8-0x35FF reserved for folders "guaranteed" by PR_VALID_FOLDER_MASK */
++
++
++/*
++ * Folder and AB Container properties
++ */
++
++#define PR_CONTAINER_FLAGS PROP_TAG( PT_LONG, 0x3600)
++#define PR_FOLDER_TYPE PROP_TAG( PT_LONG, 0x3601)
++#define PR_CONTENT_COUNT PROP_TAG( PT_LONG, 0x3602)
++#define PR_CONTENT_UNREAD PROP_TAG( PT_LONG, 0x3603)
++#define PR_CREATE_TEMPLATES PROP_TAG( PT_OBJECT, 0x3604)
++#define PR_DETAILS_TABLE PROP_TAG( PT_OBJECT, 0x3605)
++#define PR_SEARCH PROP_TAG( PT_OBJECT, 0x3607)
++#define PR_SELECTABLE PROP_TAG( PT_BOOLEAN, 0x3609)
++#define PR_SUBFOLDERS PROP_TAG( PT_BOOLEAN, 0x360A)
++#define PR_STATUS PROP_TAG( PT_LONG, 0x360B)
++#define PR_ANR PROP_TAG( PT_TSTRING, 0x360C)
++#define PR_ANR_W PROP_TAG( PT_UNICODE, 0x360C)
++#define PR_ANR_A PROP_TAG( PT_STRING8, 0x360C)
++#define PR_CONTENTS_SORT_ORDER PROP_TAG( PT_MV_LONG, 0x360D)
++#define PR_CONTAINER_HIERARCHY PROP_TAG( PT_OBJECT, 0x360E)
++#define PR_CONTAINER_CONTENTS PROP_TAG( PT_OBJECT, 0x360F)
++#define PR_FOLDER_ASSOCIATED_CONTENTS PROP_TAG( PT_OBJECT, 0x3610)
++#define PR_DEF_CREATE_DL PROP_TAG( PT_BINARY, 0x3611)
++#define PR_DEF_CREATE_MAILUSER PROP_TAG( PT_BINARY, 0x3612)
++#define PR_CONTAINER_CLASS PROP_TAG( PT_TSTRING, 0x3613)
++#define PR_CONTAINER_CLASS_W PROP_TAG( PT_UNICODE, 0x3613)
++#define PR_CONTAINER_CLASS_A PROP_TAG( PT_STRING8, 0x3613)
++#define PR_CONTAINER_MODIFY_VERSION PROP_TAG( PT_I8, 0x3614)
++#define PR_AB_PROVIDER_ID PROP_TAG( PT_BINARY, 0x3615)
++#define PR_DEFAULT_VIEW_ENTRYID PROP_TAG( PT_BINARY, 0x3616)
++#define PR_ASSOC_CONTENT_COUNT PROP_TAG( PT_LONG, 0x3617)
++
++/* Reserved 0x36C0-0x36FF */
++
++/*
++ * Attachment properties
++ */
++
++#define PR_ATTACHMENT_X400_PARAMETERS PROP_TAG( PT_BINARY, 0x3700)
++#define PR_ATTACH_DATA_OBJ PROP_TAG( PT_OBJECT, 0x3701)
++#define PR_ATTACH_DATA_BIN PROP_TAG( PT_BINARY, 0x3701)
++#define PR_ATTACH_ENCODING PROP_TAG( PT_BINARY, 0x3702)
++#define PR_ATTACH_EXTENSION PROP_TAG( PT_TSTRING, 0x3703)
++#define PR_ATTACH_EXTENSION_W PROP_TAG( PT_UNICODE, 0x3703)
++#define PR_ATTACH_EXTENSION_A PROP_TAG( PT_STRING8, 0x3703)
++#define PR_ATTACH_FILENAME PROP_TAG( PT_TSTRING, 0x3704)
++#define PR_ATTACH_FILENAME_W PROP_TAG( PT_UNICODE, 0x3704)
++#define PR_ATTACH_FILENAME_A PROP_TAG( PT_STRING8, 0x3704)
++#define PR_ATTACH_METHOD PROP_TAG( PT_LONG, 0x3705)
++#define PR_ATTACH_LONG_FILENAME PROP_TAG( PT_TSTRING, 0x3707)
++#define PR_ATTACH_LONG_FILENAME_W PROP_TAG( PT_UNICODE, 0x3707)
++#define PR_ATTACH_LONG_FILENAME_A PROP_TAG( PT_STRING8, 0x3707)
++#define PR_ATTACH_PATHNAME PROP_TAG( PT_TSTRING, 0x3708)
++#define PR_ATTACH_PATHNAME_W PROP_TAG( PT_UNICODE, 0x3708)
++#define PR_ATTACH_PATHNAME_A PROP_TAG( PT_STRING8, 0x3708)
++#define PR_ATTACH_RENDERING PROP_TAG( PT_BINARY, 0x3709)
++#define PR_ATTACH_TAG PROP_TAG( PT_BINARY, 0x370A)
++#define PR_RENDERING_POSITION PROP_TAG( PT_LONG, 0x370B)
++#define PR_ATTACH_TRANSPORT_NAME PROP_TAG( PT_TSTRING, 0x370C)
++#define PR_ATTACH_TRANSPORT_NAME_W PROP_TAG( PT_UNICODE, 0x370C)
++#define PR_ATTACH_TRANSPORT_NAME_A PROP_TAG( PT_STRING8, 0x370C)
++#define PR_ATTACH_LONG_PATHNAME PROP_TAG( PT_TSTRING, 0x370D)
++#define PR_ATTACH_LONG_PATHNAME_W PROP_TAG( PT_UNICODE, 0x370D)
++#define PR_ATTACH_LONG_PATHNAME_A PROP_TAG( PT_STRING8, 0x370D)
++#define PR_ATTACH_MIME_TAG PROP_TAG( PT_TSTRING, 0x370E)
++#define PR_ATTACH_MIME_TAG_W PROP_TAG( PT_UNICODE, 0x370E)
++#define PR_ATTACH_MIME_TAG_A PROP_TAG( PT_STRING8, 0x370E)
++#define PR_ATTACH_ADDITIONAL_INFO PROP_TAG( PT_BINARY, 0x370F)
++
++/*
++ * AB Object properties
++ */
++
++#define PR_DISPLAY_TYPE PROP_TAG( PT_LONG, 0x3900)
++#define PR_TEMPLATEID PROP_TAG( PT_BINARY, 0x3902)
++#define PR_PRIMARY_CAPABILITY PROP_TAG( PT_BINARY, 0x3904)
++
++
++/*
++ * Mail user properties
++ */
++#define PR_7BIT_DISPLAY_NAME PROP_TAG( PT_STRING8, 0x39FF)
++#define PR_ACCOUNT PROP_TAG( PT_TSTRING, 0x3A00)
++#define PR_ACCOUNT_W PROP_TAG( PT_UNICODE, 0x3A00)
++#define PR_ACCOUNT_A PROP_TAG( PT_STRING8, 0x3A00)
++#define PR_ALTERNATE_RECIPIENT PROP_TAG( PT_BINARY, 0x3A01)
++#define PR_CALLBACK_TELEPHONE_NUMBER PROP_TAG( PT_TSTRING, 0x3A02)
++#define PR_CALLBACK_TELEPHONE_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A02)
++#define PR_CALLBACK_TELEPHONE_NUMBER_A PROP_TAG( PT_STRING8, 0x3A02)
++#define PR_CONVERSION_PROHIBITED PROP_TAG( PT_BOOLEAN, 0x3A03)
++#define PR_DISCLOSE_RECIPIENTS PROP_TAG( PT_BOOLEAN, 0x3A04)
++#define PR_GENERATION PROP_TAG( PT_TSTRING, 0x3A05)
++#define PR_GENERATION_W PROP_TAG( PT_UNICODE, 0x3A05)
++#define PR_GENERATION_A PROP_TAG( PT_STRING8, 0x3A05)
++#define PR_GIVEN_NAME PROP_TAG( PT_TSTRING, 0x3A06)
++#define PR_GIVEN_NAME_W PROP_TAG( PT_UNICODE, 0x3A06)
++#define PR_GIVEN_NAME_A PROP_TAG( PT_STRING8, 0x3A06)
++#define PR_GOVERNMENT_ID_NUMBER PROP_TAG( PT_TSTRING, 0x3A07)
++#define PR_GOVERNMENT_ID_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A07)
++#define PR_GOVERNMENT_ID_NUMBER_A PROP_TAG( PT_STRING8, 0x3A07)
++#define PR_BUSINESS_TELEPHONE_NUMBER PROP_TAG( PT_TSTRING, 0x3A08)
++#define PR_BUSINESS_TELEPHONE_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A08)
++#define PR_BUSINESS_TELEPHONE_NUMBER_A PROP_TAG( PT_STRING8, 0x3A08)
++#define PR_OFFICE_TELEPHONE_NUMBER PR_BUSINESS_TELEPHONE_NUMBER
++#define PR_OFFICE_TELEPHONE_NUMBER_W PR_BUSINESS_TELEPHONE_NUMBER_W
++#define PR_OFFICE_TELEPHONE_NUMBER_A PR_BUSINESS_TELEPHONE_NUMBER_A
++#define PR_HOME_TELEPHONE_NUMBER PROP_TAG( PT_TSTRING, 0x3A09)
++#define PR_HOME_TELEPHONE_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A09)
++#define PR_HOME_TELEPHONE_NUMBER_A PROP_TAG( PT_STRING8, 0x3A09)
++#define PR_INITIALS PROP_TAG( PT_TSTRING, 0x3A0A)
++#define PR_INITIALS_W PROP_TAG( PT_UNICODE, 0x3A0A)
++#define PR_INITIALS_A PROP_TAG( PT_STRING8, 0x3A0A)
++#define PR_KEYWORD PROP_TAG( PT_TSTRING, 0x3A0B)
++#define PR_KEYWORD_W PROP_TAG( PT_UNICODE, 0x3A0B)
++#define PR_KEYWORD_A PROP_TAG( PT_STRING8, 0x3A0B)
++#define PR_LANGUAGE PROP_TAG( PT_TSTRING, 0x3A0C)
++#define PR_LANGUAGE_W PROP_TAG( PT_UNICODE, 0x3A0C)
++#define PR_LANGUAGE_A PROP_TAG( PT_STRING8, 0x3A0C)
++#define PR_LOCATION PROP_TAG( PT_TSTRING, 0x3A0D)
++#define PR_LOCATION_W PROP_TAG( PT_UNICODE, 0x3A0D)
++#define PR_LOCATION_A PROP_TAG( PT_STRING8, 0x3A0D)
++#define PR_MAIL_PERMISSION PROP_TAG( PT_BOOLEAN, 0x3A0E)
++#define PR_MHS_COMMON_NAME PROP_TAG( PT_TSTRING, 0x3A0F)
++#define PR_MHS_COMMON_NAME_W PROP_TAG( PT_UNICODE, 0x3A0F)
++#define PR_MHS_COMMON_NAME_A PROP_TAG( PT_STRING8, 0x3A0F)
++#define PR_ORGANIZATIONAL_ID_NUMBER PROP_TAG( PT_TSTRING, 0x3A10)
++#define PR_ORGANIZATIONAL_ID_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A10)
++#define PR_ORGANIZATIONAL_ID_NUMBER_A PROP_TAG( PT_STRING8, 0x3A10)
++#define PR_SURNAME PROP_TAG( PT_TSTRING, 0x3A11)
++#define PR_SURNAME_W PROP_TAG( PT_UNICODE, 0x3A11)
++#define PR_SURNAME_A PROP_TAG( PT_STRING8, 0x3A11)
++#define PR_ORIGINAL_ENTRYID PROP_TAG( PT_BINARY, 0x3A12)
++#define PR_ORIGINAL_DISPLAY_NAME PROP_TAG( PT_TSTRING, 0x3A13)
++#define PR_ORIGINAL_DISPLAY_NAME_W PROP_TAG( PT_UNICODE, 0x3A13)
++#define PR_ORIGINAL_DISPLAY_NAME_A PROP_TAG( PT_STRING8, 0x3A13)
++#define PR_ORIGINAL_SEARCH_KEY PROP_TAG( PT_BINARY, 0x3A14)
++#define PR_POSTAL_ADDRESS PROP_TAG( PT_TSTRING, 0x3A15)
++#define PR_POSTAL_ADDRESS_W PROP_TAG( PT_UNICODE, 0x3A15)
++#define PR_POSTAL_ADDRESS_A PROP_TAG( PT_STRING8, 0x3A15)
++#define PR_COMPANY_NAME PROP_TAG( PT_TSTRING, 0x3A16)
++#define PR_COMPANY_NAME_W PROP_TAG( PT_UNICODE, 0x3A16)
++#define PR_COMPANY_NAME_A PROP_TAG( PT_STRING8, 0x3A16)
++#define PR_TITLE PROP_TAG( PT_TSTRING, 0x3A17)
++#define PR_TITLE_W PROP_TAG( PT_UNICODE, 0x3A17)
++#define PR_TITLE_A PROP_TAG( PT_STRING8, 0x3A17)
++#define PR_DEPARTMENT_NAME PROP_TAG( PT_TSTRING, 0x3A18)
++#define PR_DEPARTMENT_NAME_W PROP_TAG( PT_UNICODE, 0x3A18)
++#define PR_DEPARTMENT_NAME_A PROP_TAG( PT_STRING8, 0x3A18)
++#define PR_OFFICE_LOCATION PROP_TAG( PT_TSTRING, 0x3A19)
++#define PR_OFFICE_LOCATION_W PROP_TAG( PT_UNICODE, 0x3A19)
++#define PR_OFFICE_LOCATION_A PROP_TAG( PT_STRING8, 0x3A19)
++#define PR_PRIMARY_TELEPHONE_NUMBER PROP_TAG( PT_TSTRING, 0x3A1A)
++#define PR_PRIMARY_TELEPHONE_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A1A)
++#define PR_PRIMARY_TELEPHONE_NUMBER_A PROP_TAG( PT_STRING8, 0x3A1A)
++#define PR_BUSINESS2_TELEPHONE_NUMBER PROP_TAG( PT_TSTRING, 0x3A1B)
++#define PR_BUSINESS2_TELEPHONE_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A1B)
++#define PR_BUSINESS2_TELEPHONE_NUMBER_A PROP_TAG( PT_STRING8, 0x3A1B)
++#define PR_OFFICE2_TELEPHONE_NUMBER PR_BUSINESS2_TELEPHONE_NUMBER
++#define PR_OFFICE2_TELEPHONE_NUMBER_W PR_BUSINESS2_TELEPHONE_NUMBER_W
++#define PR_OFFICE2_TELEPHONE_NUMBER_A PR_BUSINESS2_TELEPHONE_NUMBER_A
++#define PR_MOBILE_TELEPHONE_NUMBER PROP_TAG( PT_TSTRING, 0x3A1C)
++#define PR_MOBILE_TELEPHONE_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A1C)
++#define PR_MOBILE_TELEPHONE_NUMBER_A PROP_TAG( PT_STRING8, 0x3A1C)
++#define PR_CELLULAR_TELEPHONE_NUMBER PR_MOBILE_TELEPHONE_NUMBER
++#define PR_CELLULAR_TELEPHONE_NUMBER_W PR_MOBILE_TELEPHONE_NUMBER_W
++#define PR_CELLULAR_TELEPHONE_NUMBER_A PR_MOBILE_TELEPHONE_NUMBER_A
++#define PR_RADIO_TELEPHONE_NUMBER PROP_TAG( PT_TSTRING, 0x3A1D)
++#define PR_RADIO_TELEPHONE_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A1D)
++#define PR_RADIO_TELEPHONE_NUMBER_A PROP_TAG( PT_STRING8, 0x3A1D)
++#define PR_CAR_TELEPHONE_NUMBER PROP_TAG( PT_TSTRING, 0x3A1E)
++#define PR_CAR_TELEPHONE_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A1E)
++#define PR_CAR_TELEPHONE_NUMBER_A PROP_TAG( PT_STRING8, 0x3A1E)
++#define PR_OTHER_TELEPHONE_NUMBER PROP_TAG( PT_TSTRING, 0x3A1F)
++#define PR_OTHER_TELEPHONE_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A1F)
++#define PR_OTHER_TELEPHONE_NUMBER_A PROP_TAG( PT_STRING8, 0x3A1F)
++#define PR_TRANSMITABLE_DISPLAY_NAME PROP_TAG( PT_TSTRING, 0x3A20)
++#define PR_TRANSMITABLE_DISPLAY_NAME_W PROP_TAG( PT_UNICODE, 0x3A20)
++#define PR_TRANSMITABLE_DISPLAY_NAME_A PROP_TAG( PT_STRING8, 0x3A20)
++#define PR_PAGER_TELEPHONE_NUMBER PROP_TAG( PT_TSTRING, 0x3A21)
++#define PR_PAGER_TELEPHONE_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A21)
++#define PR_PAGER_TELEPHONE_NUMBER_A PROP_TAG( PT_STRING8, 0x3A21)
++#define PR_BEEPER_TELEPHONE_NUMBER PR_PAGER_TELEPHONE_NUMBER
++#define PR_BEEPER_TELEPHONE_NUMBER_W PR_PAGER_TELEPHONE_NUMBER_W
++#define PR_BEEPER_TELEPHONE_NUMBER_A PR_PAGER_TELEPHONE_NUMBER_A
++#define PR_USER_CERTIFICATE PROP_TAG( PT_BINARY, 0x3A22)
++#define PR_PRIMARY_FAX_NUMBER PROP_TAG( PT_TSTRING, 0x3A23)
++#define PR_PRIMARY_FAX_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A23)
++#define PR_PRIMARY_FAX_NUMBER_A PROP_TAG( PT_STRING8, 0x3A23)
++#define PR_BUSINESS_FAX_NUMBER PROP_TAG( PT_TSTRING, 0x3A24)
++#define PR_BUSINESS_FAX_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A24)
++#define PR_BUSINESS_FAX_NUMBER_A PROP_TAG( PT_STRING8, 0x3A24)
++#define PR_HOME_FAX_NUMBER PROP_TAG( PT_TSTRING, 0x3A25)
++#define PR_HOME_FAX_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A25)
++#define PR_HOME_FAX_NUMBER_A PROP_TAG( PT_STRING8, 0x3A25)
++#define PR_COUNTRY PROP_TAG( PT_TSTRING, 0x3A26)
++#define PR_COUNTRY_W PROP_TAG( PT_UNICODE, 0x3A26)
++#define PR_COUNTRY_A PROP_TAG( PT_STRING8, 0x3A26)
++#define PR_BUSINESS_ADDRESS_COUNTRY PR_COUNTRY
++#define PR_BUSINESS_ADDRESS_COUNTRY_W PR_COUNTRY_W
++#define PR_BUSINESS_ADDRESS_COUNTRY_A PR_COUNTRY_A
++
++#define PR_LOCALITY PROP_TAG( PT_TSTRING, 0x3A27)
++#define PR_LOCALITY_W PROP_TAG( PT_UNICODE, 0x3A27)
++#define PR_LOCALITY_A PROP_TAG( PT_STRING8, 0x3A27)
++#define PR_BUSINESS_ADDRESS_CITY PR_LOCALITY
++#define PR_BUSINESS_ADDRESS_CITY_W PR_LOCALITY_W
++#define PR_BUSINESS_ADDRESS_CITY_A PR_LOCALITY_A
++
++#define PR_STATE_OR_PROVINCE PROP_TAG( PT_TSTRING, 0x3A28)
++#define PR_STATE_OR_PROVINCE_W PROP_TAG( PT_UNICODE, 0x3A28)
++#define PR_STATE_OR_PROVINCE_A PROP_TAG( PT_STRING8, 0x3A28)
++#define PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE PR_STATE_OR_PROVINCE
++#define PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE_W PR_STATE_OR_PROVINCE_W
++#define PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE_A PR_STATE_OR_PROVINCE_A
++
++#define PR_STREET_ADDRESS PROP_TAG( PT_TSTRING, 0x3A29)
++#define PR_STREET_ADDRESS_W PROP_TAG( PT_UNICODE, 0x3A29)
++#define PR_STREET_ADDRESS_A PROP_TAG( PT_STRING8, 0x3A29)
++#define PR_BUSINESS_ADDRESS_STREET PR_STREET_ADDRESS
++#define PR_BUSINESS_ADDRESS_STREET_W PR_STREET_ADDRESS_W
++#define PR_BUSINESS_ADDRESS_STREET_A PR_STREET_ADDRESS_A
++
++#define PR_POSTAL_CODE PROP_TAG( PT_TSTRING, 0x3A2A)
++#define PR_POSTAL_CODE_W PROP_TAG( PT_UNICODE, 0x3A2A)
++#define PR_POSTAL_CODE_A PROP_TAG( PT_STRING8, 0x3A2A)
++#define PR_BUSINESS_ADDRESS_POSTAL_CODE PR_POSTAL_CODE
++#define PR_BUSINESS_ADDRESS_POSTAL_CODE_W PR_POSTAL_CODE_W
++#define PR_BUSINESS_ADDRESS_POSTAL_CODE_A PR_POSTAL_CODE_A
++
++
++#define PR_POST_OFFICE_BOX PROP_TAG( PT_TSTRING, 0x3A2B)
++#define PR_POST_OFFICE_BOX_W PROP_TAG( PT_UNICODE, 0x3A2B)
++#define PR_POST_OFFICE_BOX_A PROP_TAG( PT_STRING8, 0x3A2B)
++#define PR_BUSINESS_ADDRESS_POST_OFFICE_BOX PR_POST_OFFICE_BOX
++#define PR_BUSINESS_ADDRESS_POST_OFFICE_BOX_W PR_POST_OFFICE_BOX_W
++#define PR_BUSINESS_ADDRESS_POST_OFFICE_BOX_A PR_POST_OFFICE_BOX_A
++
++
++#define PR_TELEX_NUMBER PROP_TAG( PT_TSTRING, 0x3A2C)
++#define PR_TELEX_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A2C)
++#define PR_TELEX_NUMBER_A PROP_TAG( PT_STRING8, 0x3A2C)
++#define PR_ISDN_NUMBER PROP_TAG( PT_TSTRING, 0x3A2D)
++#define PR_ISDN_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A2D)
++#define PR_ISDN_NUMBER_A PROP_TAG( PT_STRING8, 0x3A2D)
++#define PR_ASSISTANT_TELEPHONE_NUMBER PROP_TAG( PT_TSTRING, 0x3A2E)
++#define PR_ASSISTANT_TELEPHONE_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A2E)
++#define PR_ASSISTANT_TELEPHONE_NUMBER_A PROP_TAG( PT_STRING8, 0x3A2E)
++#define PR_HOME2_TELEPHONE_NUMBER PROP_TAG( PT_TSTRING, 0x3A2F)
++#define PR_HOME2_TELEPHONE_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A2F)
++#define PR_HOME2_TELEPHONE_NUMBER_A PROP_TAG( PT_STRING8, 0x3A2F)
++#define PR_ASSISTANT PROP_TAG( PT_TSTRING, 0x3A30)
++#define PR_ASSISTANT_W PROP_TAG( PT_UNICODE, 0x3A30)
++#define PR_ASSISTANT_A PROP_TAG( PT_STRING8, 0x3A30)
++#define PR_SEND_RICH_INFO PROP_TAG( PT_BOOLEAN, 0x3A40)
++
++#define PR_WEDDING_ANNIVERSARY PROP_TAG( PT_SYSTIME, 0x3A41)
++#define PR_BIRTHDAY PROP_TAG( PT_SYSTIME, 0x3A42)
++
++
++#define PR_HOBBIES PROP_TAG( PT_TSTRING, 0x3A43)
++#define PR_HOBBIES_W PROP_TAG( PT_UNICODE, 0x3A43)
++#define PR_HOBBIES_A PROP_TAG( PT_STRING8, 0x3A43)
++
++#define PR_MIDDLE_NAME PROP_TAG( PT_TSTRING, 0x3A44)
++#define PR_MIDDLE_NAME_W PROP_TAG( PT_UNICODE, 0x3A44)
++#define PR_MIDDLE_NAME_A PROP_TAG( PT_STRING8, 0x3A44)
++
++#define PR_DISPLAY_NAME_PREFIX PROP_TAG( PT_TSTRING, 0x3A45)
++#define PR_DISPLAY_NAME_PREFIX_W PROP_TAG( PT_UNICODE, 0x3A45)
++#define PR_DISPLAY_NAME_PREFIX_A PROP_TAG( PT_STRING8, 0x3A45)
++
++#define PR_PROFESSION PROP_TAG( PT_TSTRING, 0x3A46)
++#define PR_PROFESSION_W PROP_TAG( PT_UNICODE, 0x3A46)
++#define PR_PROFESSION_A PROP_TAG( PT_STRING8, 0x3A46)
++
++#define PR_PREFERRED_BY_NAME PROP_TAG( PT_TSTRING, 0x3A47)
++#define PR_PREFERRED_BY_NAME_W PROP_TAG( PT_UNICODE, 0x3A47)
++#define PR_PREFERRED_BY_NAME_A PROP_TAG( PT_STRING8, 0x3A47)
++
++#define PR_SPOUSE_NAME PROP_TAG( PT_TSTRING, 0x3A48)
++#define PR_SPOUSE_NAME_W PROP_TAG( PT_UNICODE, 0x3A48)
++#define PR_SPOUSE_NAME_A PROP_TAG( PT_STRING8, 0x3A48)
++
++#define PR_COMPUTER_NETWORK_NAME PROP_TAG( PT_TSTRING, 0x3A49)
++#define PR_COMPUTER_NETWORK_NAME_W PROP_TAG( PT_UNICODE, 0x3A49)
++#define PR_COMPUTER_NETWORK_NAME_A PROP_TAG( PT_STRING8, 0x3A49)
++
++#define PR_CUSTOMER_ID PROP_TAG( PT_TSTRING, 0x3A4A)
++#define PR_CUSTOMER_ID_W PROP_TAG( PT_UNICODE, 0x3A4A)
++#define PR_CUSTOMER_ID_A PROP_TAG( PT_STRING8, 0x3A4A)
++
++#define PR_TTYTDD_PHONE_NUMBER PROP_TAG( PT_TSTRING, 0x3A4B)
++#define PR_TTYTDD_PHONE_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A4B)
++#define PR_TTYTDD_PHONE_NUMBER_A PROP_TAG( PT_STRING8, 0x3A4B)
++
++#define PR_FTP_SITE PROP_TAG( PT_TSTRING, 0x3A4C)
++#define PR_FTP_SITE_W PROP_TAG( PT_UNICODE, 0x3A4C)
++#define PR_FTP_SITE_A PROP_TAG( PT_STRING8, 0x3A4C)
++
++#define PR_GENDER PROP_TAG( PT_SHORT, 0x3A4D)
++
++#define PR_MANAGER_NAME PROP_TAG( PT_TSTRING, 0x3A4E)
++#define PR_MANAGER_NAME_W PROP_TAG( PT_UNICODE, 0x3A4E)
++#define PR_MANAGER_NAME_A PROP_TAG( PT_STRING8, 0x3A4E)
++
++#define PR_NICKNAME PROP_TAG( PT_TSTRING, 0x3A4F)
++#define PR_NICKNAME_W PROP_TAG( PT_UNICODE, 0x3A4F)
++#define PR_NICKNAME_A PROP_TAG( PT_STRING8, 0x3A4F)
++
++#define PR_PERSONAL_HOME_PAGE PROP_TAG( PT_TSTRING, 0x3A50)
++#define PR_PERSONAL_HOME_PAGE_W PROP_TAG( PT_UNICODE, 0x3A50)
++#define PR_PERSONAL_HOME_PAGE_A PROP_TAG( PT_STRING8, 0x3A50)
++
++
++#define PR_BUSINESS_HOME_PAGE PROP_TAG( PT_TSTRING, 0x3A51)
++#define PR_BUSINESS_HOME_PAGE_W PROP_TAG( PT_UNICODE, 0x3A51)
++#define PR_BUSINESS_HOME_PAGE_A PROP_TAG( PT_STRING8, 0x3A51)
++
++#define PR_CONTACT_VERSION PROP_TAG( PT_CLSID, 0x3A52)
++#define PR_CONTACT_ENTRYIDS PROP_TAG( PT_MV_BINARY, 0x3A53)
++
++#define PR_CONTACT_ADDRTYPES PROP_TAG( PT_MV_TSTRING, 0x3A54)
++#define PR_CONTACT_ADDRTYPES_W PROP_TAG( PT_MV_UNICODE, 0x3A54)
++#define PR_CONTACT_ADDRTYPES_A PROP_TAG( PT_MV_STRING8, 0x3A54)
++
++#define PR_CONTACT_DEFAULT_ADDRESS_INDEX PROP_TAG( PT_LONG, 0x3A55)
++
++#define PR_CONTACT_EMAIL_ADDRESSES PROP_TAG( PT_MV_TSTRING, 0x3A56)
++#define PR_CONTACT_EMAIL_ADDRESSES_W PROP_TAG( PT_MV_UNICODE, 0x3A56)
++#define PR_CONTACT_EMAIL_ADDRESSES_A PROP_TAG( PT_MV_STRING8, 0x3A56)
++
++
++#define PR_COMPANY_MAIN_PHONE_NUMBER PROP_TAG( PT_TSTRING, 0x3A57)
++#define PR_COMPANY_MAIN_PHONE_NUMBER_W PROP_TAG( PT_UNICODE, 0x3A57)
++#define PR_COMPANY_MAIN_PHONE_NUMBER_A PROP_TAG( PT_STRING8, 0x3A57)
++
++#define PR_CHILDRENS_NAMES PROP_TAG( PT_MV_TSTRING, 0x3A58)
++#define PR_CHILDRENS_NAMES_W PROP_TAG( PT_MV_UNICODE, 0x3A58)
++#define PR_CHILDRENS_NAMES_A PROP_TAG( PT_MV_STRING8, 0x3A58)
++
++
++
++#define PR_HOME_ADDRESS_CITY PROP_TAG( PT_TSTRING, 0x3A59)
++#define PR_HOME_ADDRESS_CITY_W PROP_TAG( PT_UNICODE, 0x3A59)
++#define PR_HOME_ADDRESS_CITY_A PROP_TAG( PT_STRING8, 0x3A59)
++
++#define PR_HOME_ADDRESS_COUNTRY PROP_TAG( PT_TSTRING, 0x3A5A)
++#define PR_HOME_ADDRESS_COUNTRY_W PROP_TAG( PT_UNICODE, 0x3A5A)
++#define PR_HOME_ADDRESS_COUNTRY_A PROP_TAG( PT_STRING8, 0x3A5A)
++
++#define PR_HOME_ADDRESS_POSTAL_CODE PROP_TAG( PT_TSTRING, 0x3A5B)
++#define PR_HOME_ADDRESS_POSTAL_CODE_W PROP_TAG( PT_UNICODE, 0x3A5B)
++#define PR_HOME_ADDRESS_POSTAL_CODE_A PROP_TAG( PT_STRING8, 0x3A5B)
++
++#define PR_HOME_ADDRESS_STATE_OR_PROVINCE PROP_TAG( PT_TSTRING, 0x3A5C)
++#define PR_HOME_ADDRESS_STATE_OR_PROVINCE_W PROP_TAG( PT_UNICODE, 0x3A5C)
++#define PR_HOME_ADDRESS_STATE_OR_PROVINCE_A PROP_TAG( PT_STRING8, 0x3A5C)
++
++#define PR_HOME_ADDRESS_STREET PROP_TAG( PT_TSTRING, 0x3A5D)
++#define PR_HOME_ADDRESS_STREET_W PROP_TAG( PT_UNICODE, 0x3A5D)
++#define PR_HOME_ADDRESS_STREET_A PROP_TAG( PT_STRING8, 0x3A5D)
++
++#define PR_HOME_ADDRESS_POST_OFFICE_BOX PROP_TAG( PT_TSTRING, 0x3A5E)
++#define PR_HOME_ADDRESS_POST_OFFICE_BOX_W PROP_TAG( PT_UNICODE, 0x3A5E)
++#define PR_HOME_ADDRESS_POST_OFFICE_BOX_A PROP_TAG( PT_STRING8, 0x3A5E)
++
++#define PR_OTHER_ADDRESS_CITY PROP_TAG( PT_TSTRING, 0x3A5F)
++#define PR_OTHER_ADDRESS_CITY_W PROP_TAG( PT_UNICODE, 0x3A5F)
++#define PR_OTHER_ADDRESS_CITY_A PROP_TAG( PT_STRING8, 0x3A5F)
++
++#define PR_OTHER_ADDRESS_COUNTRY PROP_TAG( PT_TSTRING, 0x3A60)
++#define PR_OTHER_ADDRESS_COUNTRY_W PROP_TAG( PT_UNICODE, 0x3A60)
++#define PR_OTHER_ADDRESS_COUNTRY_A PROP_TAG( PT_STRING8, 0x3A60)
++
++#define PR_OTHER_ADDRESS_POSTAL_CODE PROP_TAG( PT_TSTRING, 0x3A61)
++#define PR_OTHER_ADDRESS_POSTAL_CODE_W PROP_TAG( PT_UNICODE, 0x3A61)
++#define PR_OTHER_ADDRESS_POSTAL_CODE_A PROP_TAG( PT_STRING8, 0x3A61)
++
++#define PR_OTHER_ADDRESS_STATE_OR_PROVINCE PROP_TAG( PT_TSTRING, 0x3A62)
++#define PR_OTHER_ADDRESS_STATE_OR_PROVINCE_W PROP_TAG( PT_UNICODE, 0x3A62)
++#define PR_OTHER_ADDRESS_STATE_OR_PROVINCE_A PROP_TAG( PT_STRING8, 0x3A62)
++
++#define PR_OTHER_ADDRESS_STREET PROP_TAG( PT_TSTRING, 0x3A63)
++#define PR_OTHER_ADDRESS_STREET_W PROP_TAG( PT_UNICODE, 0x3A63)
++#define PR_OTHER_ADDRESS_STREET_A PROP_TAG( PT_STRING8, 0x3A63)
++
++#define PR_OTHER_ADDRESS_POST_OFFICE_BOX PROP_TAG( PT_TSTRING, 0x3A64)
++#define PR_OTHER_ADDRESS_POST_OFFICE_BOX_W PROP_TAG( PT_UNICODE, 0x3A64)
++#define PR_OTHER_ADDRESS_POST_OFFICE_BOX_A PROP_TAG( PT_STRING8, 0x3A64)
++
++
++/*
++ * Profile section properties
++ */
++
++#define PR_STORE_PROVIDERS PROP_TAG( PT_BINARY, 0x3D00)
++#define PR_AB_PROVIDERS PROP_TAG( PT_BINARY, 0x3D01)
++#define PR_TRANSPORT_PROVIDERS PROP_TAG( PT_BINARY, 0x3D02)
++
++#define PR_DEFAULT_PROFILE PROP_TAG( PT_BOOLEAN, 0x3D04)
++#define PR_AB_SEARCH_PATH PROP_TAG( PT_MV_BINARY, 0x3D05)
++#define PR_AB_DEFAULT_DIR PROP_TAG( PT_BINARY, 0x3D06)
++#define PR_AB_DEFAULT_PAB PROP_TAG( PT_BINARY, 0x3D07)
++
++#define PR_FILTERING_HOOKS PROP_TAG( PT_BINARY, 0x3D08)
++#define PR_SERVICE_NAME PROP_TAG( PT_TSTRING, 0x3D09)
++#define PR_SERVICE_NAME_W PROP_TAG( PT_UNICODE, 0x3D09)
++#define PR_SERVICE_NAME_A PROP_TAG( PT_STRING8, 0x3D09)
++#define PR_SERVICE_DLL_NAME PROP_TAG( PT_TSTRING, 0x3D0A)
++#define PR_SERVICE_DLL_NAME_W PROP_TAG( PT_UNICODE, 0x3D0A)
++#define PR_SERVICE_DLL_NAME_A PROP_TAG( PT_STRING8, 0x3D0A)
++#define PR_SERVICE_ENTRY_NAME PROP_TAG( PT_STRING8, 0x3D0B)
++#define PR_SERVICE_UID PROP_TAG( PT_BINARY, 0x3D0C)
++#define PR_SERVICE_EXTRA_UIDS PROP_TAG( PT_BINARY, 0x3D0D)
++#define PR_SERVICES PROP_TAG( PT_BINARY, 0x3D0E)
++#define PR_SERVICE_SUPPORT_FILES PROP_TAG( PT_MV_TSTRING, 0x3D0F)
++#define PR_SERVICE_SUPPORT_FILES_W PROP_TAG( PT_MV_UNICODE, 0x3D0F)
++#define PR_SERVICE_SUPPORT_FILES_A PROP_TAG( PT_MV_STRING8, 0x3D0F)
++#define PR_SERVICE_DELETE_FILES PROP_TAG( PT_MV_TSTRING, 0x3D10)
++#define PR_SERVICE_DELETE_FILES_W PROP_TAG( PT_MV_UNICODE, 0x3D10)
++#define PR_SERVICE_DELETE_FILES_A PROP_TAG( PT_MV_STRING8, 0x3D10)
++#define PR_AB_SEARCH_PATH_UPDATE PROP_TAG( PT_BINARY, 0x3D11)
++#define PR_PROFILE_NAME PROP_TAG( PT_TSTRING, 0x3D12)
++#define PR_PROFILE_NAME_A PROP_TAG( PT_STRING8, 0x3D12)
++#define PR_PROFILE_NAME_W PROP_TAG( PT_UNICODE, 0x3D12)
++
++/*
++ * Status object properties
++ */
++
++#define PR_IDENTITY_DISPLAY PROP_TAG( PT_TSTRING, 0x3E00)
++#define PR_IDENTITY_DISPLAY_W PROP_TAG( PT_UNICODE, 0x3E00)
++#define PR_IDENTITY_DISPLAY_A PROP_TAG( PT_STRING8, 0x3E00)
++#define PR_IDENTITY_ENTRYID PROP_TAG( PT_BINARY, 0x3E01)
++#define PR_RESOURCE_METHODS PROP_TAG( PT_LONG, 0x3E02)
++#define PR_RESOURCE_TYPE PROP_TAG( PT_LONG, 0x3E03)
++#define PR_STATUS_CODE PROP_TAG( PT_LONG, 0x3E04)
++#define PR_IDENTITY_SEARCH_KEY PROP_TAG( PT_BINARY, 0x3E05)
++#define PR_OWN_STORE_ENTRYID PROP_TAG( PT_BINARY, 0x3E06)
++#define PR_RESOURCE_PATH PROP_TAG( PT_TSTRING, 0x3E07)
++#define PR_RESOURCE_PATH_W PROP_TAG( PT_UNICODE, 0x3E07)
++#define PR_RESOURCE_PATH_A PROP_TAG( PT_STRING8, 0x3E07)
++#define PR_STATUS_STRING PROP_TAG( PT_TSTRING, 0x3E08)
++#define PR_STATUS_STRING_W PROP_TAG( PT_UNICODE, 0x3E08)
++#define PR_STATUS_STRING_A PROP_TAG( PT_STRING8, 0x3E08)
++#define PR_X400_DEFERRED_DELIVERY_CANCEL PROP_TAG( PT_BOOLEAN, 0x3E09)
++#define PR_HEADER_FOLDER_ENTRYID PROP_TAG( PT_BINARY, 0x3E0A)
++#define PR_REMOTE_PROGRESS PROP_TAG( PT_LONG, 0x3E0B)
++#define PR_REMOTE_PROGRESS_TEXT PROP_TAG( PT_TSTRING, 0x3E0C)
++#define PR_REMOTE_PROGRESS_TEXT_W PROP_TAG( PT_UNICODE, 0x3E0C)
++#define PR_REMOTE_PROGRESS_TEXT_A PROP_TAG( PT_STRING8, 0x3E0C)
++#define PR_REMOTE_VALIDATE_OK PROP_TAG( PT_BOOLEAN, 0x3E0D)
++
++/*
++ * Display table properties
++ */
++
++#define PR_CONTROL_FLAGS PROP_TAG( PT_LONG, 0x3F00)
++#define PR_CONTROL_STRUCTURE PROP_TAG( PT_BINARY, 0x3F01)
++#define PR_CONTROL_TYPE PROP_TAG( PT_LONG, 0x3F02)
++#define PR_DELTAX PROP_TAG( PT_LONG, 0x3F03)
++#define PR_DELTAY PROP_TAG( PT_LONG, 0x3F04)
++#define PR_XPOS PROP_TAG( PT_LONG, 0x3F05)
++#define PR_YPOS PROP_TAG( PT_LONG, 0x3F06)
++#define PR_CONTROL_ID PROP_TAG( PT_BINARY, 0x3F07)
++#define PR_INITIAL_DETAILS_PANE PROP_TAG( PT_LONG, 0x3F08)
++
++/*
++ * Secure property id range
++ */
++
++#define PROP_ID_SECURE_MIN 0x67F0
++#define PROP_ID_SECURE_MAX 0x67FF
++
++
++#endif /* MAPITAGS_H */
+diff -urN exim-4.30-orig/src/version.c exim-4.30/src/version.c
+--- exim-4.30-orig/src/version.c Mon Dec 1 11:15:41 2003
++++ exim-4.30/src/version.c Tue Mar 2 13:18:29 2004
+@@ -11,7 +11,7 @@
+
+
+ #define THIS_VERSION "4.30"
+-
++#define EXISCAN_VERSION "16"
+
+ /* The header file cnumber.h contains a single line containing the
+ compilation number, making it easy to have it updated automatically.
+@@ -40,6 +40,7 @@
+ version_cnumber_format = US"%d\0<<eximcnumber>>";
+ sprintf(CS version_cnumber, CS version_cnumber_format, cnumber);
+ version_string = US THIS_VERSION "\0<<eximversion>>";
++exiscan_version_string = US EXISCAN_VERSION;
+
+ Ustrcpy(today, __DATE__);
+ if (today[4] == ' ') today[4] = '0';
diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in
new file mode 100644
index 0000000..3072605
--- /dev/null
+++ b/debian/po/POTFILES.in
@@ -0,0 +1,2 @@
+[type: gettext/rfc822deb] exim4-base.templates.master
+[type: gettext/rfc822deb] exim4-config.templates.master
diff --git a/debian/po/cs.po b/debian/po/cs.po
new file mode 100644
index 0000000..2de19e9
--- /dev/null
+++ b/debian/po/cs.po
@@ -0,0 +1,591 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: exim4\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-01-09 10:49+0100\n"
+"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
+"Language-Team: Czech <provoz@debian.cz>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr "Odstranit nedoruenou potu z adrese spool?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"V adresi /var/spool/exim4/input se nachz dosud nedoruen pota. Mete "
+"ji ponechat (nap. pokud se pozdji rozhodnete Exim znovu instalovat), nebo "
+"odstranit."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr "Pesunout dosud nedoruenou potu ze spool adrese exim do exim4?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"Ve spool adresi eximu nebo eximu-tls (/var/spool/exim/input/) se nachz "
+"njak nedoruen pota. Nyn ji mete pesunout do spool adrese eximu4 (/"
+"var/spool/exim4/input/), kter se o potu postar."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+"Pamatujte, e tento pesun funguje pouze jednm smrem. Exim4 um pevzt "
+"spool adres od eximu (verze 3), ale ne opan."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"Potu pesute pouze pokud neplnujete nvrat k eximu (verze 3). V opanm "
+"ppad byste mli potu pesunout pozdji run."
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr ""
+"internetov pota; pota je pjmna a doruovna pmo protokolem SMTP"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr "odesln poty pes chytr pota; pjem pes SMTP nebo fetchmail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "odesln poty pes chytr pota; dn lokln pota"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "pouze lokln pota; pota nen na sti"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr "run pevst nastaven z Eximu verze 3"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "dn nastaven"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "Zkladn model potovnho nastaven:"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+"K dispozici je nkolik zkladnch model potovnho nastaven. Vyberte si "
+"ten, kter nejlpe odpovd vaim poadavkm."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"Potae s dynamickmi IP adresami by mly bt nastaveny tak, e vekerou "
+"odchoz potu poslaj jinmu, \"chytrmu\", potai (smarthost), kter se "
+"postar o jej doruen. Mete si vybrat, zda na takovm systmu chcete "
+"potu pijmat, nebo ji zakzat (s vjimkou uivatele root a postmaster)."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "Nastavit Exim4 run?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+"Naznaujete, e mte sv vypiplan nastaven Eximu 3. Pro jeho pevod do "
+"Eximu 4 mete po instalaci pout nstroj exim_convert4r4(8). Nezapomete "
+"si pest /usr/share/doc/exim4-base/examples/example.conf.gz a /usr/share/"
+"doc/exim4-base/README.Debian.gz!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+"Dokud potovn systm nenastavte, bude porouchan a nemete jej vyuvat."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "Opravdu nechcete nastavit potovn systm?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"Dokud potovn systm nenastavte, bude porouchan a nemete jej vyuvat. "
+"Nastaven samozejm mete provst pozdji run nebo pkazem \"dpkg-"
+"reconfigure exim4-config\" (oboj pod uivatelem root)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "Potovn jmno potae:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"\"Potovn jmno\" je nzev potae a zrove st adresy za zavinem, "
+"kter se bude zobrazovat na odchoz pot."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"Toto jmno budou vyuvat i jin programy ne Exim a pota se bude tvit, "
+"e odtud byla odeslna. Mlo by to bt jednoznan pln kvalifikovan "
+"domnov jmno (FQDN)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"Jestlie nastavujete systm jako satelitn, toto jmno se nezobraz ve From: "
+"hlavikch, protoe se pouije pepisovn."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "Dal msta uren, pro kter akceptujeme potu:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"Zadejte seznam domn, pro kter skon pota na tomto potai. Nezadvejte "
+"vlastn potovn jmno (${mailname}) a \"localhost\"."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"Standardn se se vemi domnami zachz stejn. Pokud vyadujete rzn "
+"chovn pro rzn domny, budete muset upravit konfiguran soubor."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+"Pokud jich je vce, oddlte je dvojtekami. Jestlie neexistuj, nemuste "
+"zadvat nic."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "Domny, pro kter pedvat potu (relay):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr "Zadejte domny, pro kter chcete pedvat potu (relay)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"Tmto domnm se uvolujete pedvat potu odkudkoliv z Internetu. Neuvdjte "
+"zde lokln domny."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr ""
+"Zadvan domny oddlte dvojtekami, v nzvech mete pout zstupn znaky."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "Potae, kterm pedvat potu (relay):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr "Zadejte zde st, kterm chcete pedvat potu (relay)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr "Evidentn je dobr zde uvst potae, kterm sloume jako smarthost."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"Pokud takov st existuj, zadejte je zde v obvyklm formtu adresa/dlka "
+"(tj. 194.222.242.0/24). Vce zznam mete oddlit dvojtekami."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr "U IPv6 adres muste zdvojit dvojteky (tj. 5f03::1200::836f::::/48)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "Domnov jmno pro lokln uivatele:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"Protoe toto bude satelitn systm, muste zadat domnov jmno, kter se m "
+"pout pro potu od loklnch uivatel. Typicky to bv pota na kterm "
+"pijmte svou potu."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr "Kde budou uivatel st svou potu?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr "Pota zpracovvajc potu odeslanou z tohoto potae (smarthost):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr "Zadejte jmno potae, na kter se posl odchoz pota."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"Poznmky o nastaven SMTP autentizace naleznete v /usr/share/doc/exim4-base/"
+"README.SMTP-AUTH."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "Pjemce poty pro uivatele root a postmaster:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"Pota pro uivatele \"root\" a \"postmaster\" se obvykle pesmrovv na "
+"jeden nebo vce uivatelskch t patcch administrtorm systmu. "
+"Standardn nastaven pracuje tak, e pota pro postmastera a dal systmov "
+"ty je pesmrovna rootovi a pota pro roota je pesmrovna existujcmu "
+"uivateli. Toto chovn lze zmnit v souboru /etc/aliases."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"Pota pro postmastera by se mla vtinou st na systmu, ke ktermu pat. "
+"To znamen, e alespo jeden uivatel, kter dostv tuto potu, by ji neml "
+"pesmrovvat pry z tohoto systmu."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"Na kter ty se m pesmrovat pota pro sprvce? Zadejte jedno nebo vce "
+"uivatelskch jmen oddlench mezerami nebo rkami. Jestlie nechcete "
+"pesmrovat potu, zadejte \"none\". To se vak drazn nedoporuuje. Exim "
+"pak tuto potu ulo do /var/mail/mail. Nezapomete, e uivatelsk jmna se "
+"p malmi psmeny."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "Pepsat stvajc /etc/aliases?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"Sice ji mte soubor /etc/aliases, ale ten nepesmrovv rootovu potu na "
+"et bnho uivatele (co se velmi doporuuje). Pokud povolte jeho "
+"pepsn, bude pvodn soubor uloen pod jmnem aliases.0."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr "IP adresy, na kterch se maj oekvat pchoz SMTP spojen:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"Zadejte dvojtekami oddlen seznam IP adres, na kterch se m naslouchat. U "
+"IPv6 adres je poteba dvojteky zdvojit (tj. 5f03::1200::836f::::)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+"Pokud nechte toto pole przdn, Exim bude ekat na spojen na vech "
+"dostupnch sovch zazench."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"Pokud tento pota nedostv potu z jinch pota pes SMTP, ale pouze "
+"skrze lokln programy jako fetchmail nebo emailov klient, mete tuto "
+"volbu nastavit na hodnotu 127.0.0.1, m zakete Eximu naslouchat na "
+"veejnch sovch rozhranch."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr "Minimalizovat poet DNS dotaz (Vyten-na-vydn)?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"Aby Exim poskytoval pesn zznamy o sv innosti a minimalizoval poet "
+"neprunch hodnot v konfiguranm souboru, klade pomrn asto rzn DNS "
+"dotazy (pi startu, pijmn nebo odesln poty, atd). "
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"Kdyby tento pota neml trval pstup k jmennm serverm a pouval "
+"vyten pipojen na vydn, mohlo by to mt nechtn nsledky, protoe "
+"start eximu nebo kontrola fronty (i kdyby v n nebyly dn zprvy) by "
+"spustily drah pipojen."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr "Tuto vlastnost zapnte pouze pokud pouvte vyten na vydn."
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "Nastaven Eximu v4 (exim-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "Rozdlit nastaven do mench soubor?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"Debian balky eximu4 mohou k vytvoen vsledn konfigurace pout bu "
+"jeden velk soubor (/etc/exim4/exim4.conf.template) nebo zhruba 40 malch "
+"soubor z adrese /etc/exim4/conf.d/."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"Prvn monost je vhodnj pro rozshl pravy a teoreticky je o nco "
+"stabilnj. Druh monost nabz pohodlnou zmnu malch izolovanch st, "
+"ale je nchylnj k chybm a rozshl zmny se mohou zmnit v non mru."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr "Pokud si nejste jist, radji rozdlenou konfiguraci nepouvejte."
+
+#~ msgid ""
+#~ "internet site; mail is sent and received directly using SMTP, mail sent "
+#~ "by smarthost; received via SMTP or fetchmail, mail sent by smarthost; no "
+#~ "local mail, local delivery only; not on a network, manually convert from "
+#~ "handcrafted Exim v3 configuration, no configuration at this time"
+#~ msgstr ""
+#~ "internetov pota; pota je pjmna a doruovna pmo protokolem "
+#~ "SMTP, odesln poty pes chytr pota; pjem pes SMTP nebo "
+#~ "fetchmail, odesln poty pes chytr pota; dn lokln pota, "
+#~ "pouze lokln pota; pota nen na sti, run pevst nastaven z "
+#~ "Eximu verze 3, dn nastaven"
diff --git a/debian/po/da.po b/debian/po/da.po
new file mode 100644
index 0000000..51f4e58
--- /dev/null
+++ b/debian/po/da.po
@@ -0,0 +1,738 @@
+# translation of da.po to Danish
+#
+# This file is from the DDTP, the Debian Description Translation Project
+#
+# See http://ddtp.debian.org/ for more information.
+# Claus Hindsgaul <claus_h@image.dk>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: da\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-01-12 17:33+0100\n"
+"Last-Translator: Claus Hindsgaul <claus_h@image.dk>\n"
+"Language-Team: Danish <dansk@klid.dk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+"org>\n"
+"X-Generator: KBabel 1.0.2\n"
+
+# Template: exim4/purge_spool
+# ddtp-prioritize: 43
+#
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr "Fjern ikke-leverede breve i k-mappen?"
+
+#
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"Der er post i exims k-mappe /var/spool/exim4/input, som ikke er blevet "
+"leveret. Du kan bevare dem, hvis du senere vlge at geninstallere Exim, "
+"eller du kan vlge at fjerne dem."
+
+# Template: exim4/move_exim3_spool
+# ddtp-prioritize: 43
+#
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr "Flyt ikke-leverede breve fra exim(v3) til exim4's k?"
+
+#
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"Der er ikke-leverede breve i exims eller exim-tls's k-mappe i /var/spool/"
+"exim/input. De kan flyttes til exim4's k (var/spool/exim4/input/), hvorfra "
+"de vil blive hndteret af exim4."
+
+#
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+"Bemrk at dette kun virker den ene vej. exim4 kan hndtere exim(v3)'s k, "
+"men exim(3) kan ikke hndtere exim4's."
+
+#
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"Acceptr, hvis du ikke regner med at bruge exim(v3) igen, ellers br posten "
+"ikke blive flyttet automatisk endnu, men flyttes manuelt nr du har ndret "
+"din opstning."
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr "internet-sted; post sendes og modtages direkte med SMTP"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr "post sendt af smarthost; hentet via SMTP eller fetchmail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "post sendt af smarthost; ingen lokal post"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "kun lokal levering; ikke p et netvrk"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr "overst manuelt fra hndlavet Exim v3-opstning"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "ingen opstning endnu"
+
+# Template: exim4/dc_eximconfig_configtype
+# ddtp-prioritize: 43
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "Overordnet post-opstningstype?"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+"Der er mulighed for flere generelle slags postsystem-opstninger. Vlg den "
+"type, der passer dig bedst."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"System med dynamiske IP-adresser, herunder opkaldssystemer, skal nok sttes "
+"op til at sende udgende post til en anden maskine, som kaldes en \"smarthost"
+"\" for levering. Du kan vlge at modtage post p sdan et system: eller slet "
+"ikke at have lokal postlevering, udover post til brugerne root og postmaster."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "St Exim4 op manuelt?"
+
+#
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+"Du har angivet at du har en hndlavet Exim v3-opstning. For at omstte den "
+"til Exim v4, kan du bruge vrktjet exim_convert4r4(8) efter installationen. "
+"Se i /usr/share/doc/exim4-base/examples/example.conf.gz og /usr/share/doc/"
+"exim4-base/README.Debian.gz!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+"Indtil dit postsystem er sat op, vil det vre ude af funktion og kan ikke "
+"benyttes."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "Vil du virkelig undlade at stte postsystemet op?"
+
+#
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"Indtil dit postsystem er sat op, vil det vre ude af funktion og kan ikke "
+"benyttes. Du kan naturligvis stte det op senere. Enten med hndkraft eller "
+"ved at kre \"dpkg-reconfigure exim4-config\" som root."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "System-postnavn:"
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"Dit 'postnavn' er vrtsnavn-delen af den adresse, der bliver vist i udgende "
+"nyheds- og postbeskeder (det der str efter brugernavnet og @-tegnet)."
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"Dette navn bruges af andre programmer udover Exim; det br vre et enkelt, "
+"fuldt domnenavn (FCDN) hvor post vil lade til at komme fra."
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"Hvis du stter dette system op som 'satelit'-system, vil dette navn ikke "
+"optrde i From:-linjer i brevene, da der i s tilflde benyttes omskrivning."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "Andre ml, hvortil post skal accepteres:"
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"Angiv en liste over domner, for hvilke denne maskine skal betragte sig selv "
+"som endestation, udover postnavnet (${mailname}) og \"localhost\"."
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"Du udgangspunkt vil alle domner blive behandlet ens: Hvis du nsker at "
+"visse domnenavne skal behandles anderledes, m du efterflgende selv "
+"redigere opstningsfilen."
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+"Hvis der er flere, kan du angive dem her adskilt med kolon. Du kan lade "
+"feltet st toms, hvis der ikke er nogen."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "Domner at videresende (\"relay\") post for:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr ""
+"Angiv de domner, for hvilke accepterer at videresende (\"relay\") post for."
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"Disse domner er domner, som du er villig til at acceptere post til fra "
+"ethvert sted p internettet. Nvn ikke lokale domner her."
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr ""
+"De domner, du angiver her, skal adskilles med kolon. Du kan bruge wildcards "
+"her."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "Maskiner at videresende (\"relay\") post for:"
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr ""
+"Angiv her de netvrk af lokale maskiner, som du nsker at at videresende "
+"(\"relay\") post for."
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+"Selvflgelig skal alle maskiner, der benytter os som postserver (smarthost) "
+"ekskluderes fra videresendelses-styringen, da det jo er hele iden at "
+"videresende post for dem."
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"Hvis der det, s angiv dem her adskilt med kolon'er. Du br bruge det "
+"almindelige adresse/lngde-format (f.eks. 194.222.242.0/24)"
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+"Du skal bruge dobbelt-kolon i IPv6-adressesr (f.eks. 5f03::1200::836f::::/48)"
+
+# Template: exim4/dc_readhost
+# ddtp-prioritize: 43
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "Domnenavn for lokale brugere:"
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"Da dette skal vre et sattelitsystem, skal du angive hvilket domnenavn, jeg "
+"skal bruge for post fra lokale brugere. Det er ofte den maskine, hvorp du "
+"normalt modtager din post."
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr "Hvor vil dine brugere lse deres post?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr "Maskine, der hndterer udgende post for denne maskine (smarthost):"
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr "Angiv vrtsnavnet p den maskine, udgende post skal sendes til."
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"Se filen /usr/share/doc/exim4-base/README.SMTP-AUTH for bemrkninger om "
+"hvordan du stter SMTP up."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "Root og postmaster post-modtager:"
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"Post til kontiene \"postmaster\" og \"root\" bliver normalt omdirigeret til "
+"en eller flere brugerkonti, som tilhrer de virkelige systemadministratorer. "
+"Som udgangspunkt vil jeg stte tingene op sdan at post til \"postmaster\" "
+"og diverse systemkonti bliver omadresseret til \"root\", og post til \"root"
+"\" bliver omadresseret til en virkelig bruger. Dette kan rettes ved at ndre "
+"i /etc/aliases."
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"Bemrk at postmaster-post normalt skal lses p det system, det er "
+"omdirigeret til, fremfor at videresende den til andre steder, s (mindst en "
+"af) de brugere, du vlger, br ikke omdirigere deres post vk fra denne "
+"maskine."
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"Hvilke brugerkonti skal systemadministratorens post sendes til? Angiv et "
+"eller flere brugernavne adskilt med mellemrum eller komma. Skriv \"none\", "
+"hvis du vil beholde posten i root's postboks. Bemrk at det sidste frardes "
+"kraftigt. Husk ogs at brugernavne skal skrives med sm bogstaver."
+
+# Template: exim4/dc_noalias_regenerate
+# ddtp-prioritize: 43
+#
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "Skal den eksisterende /etc/aliases overskrives?"
+
+#
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"Du har allerede en '/etc/aliases'-fil, men den omdirigerer ikke post til "
+"root til en brugerkonto, hvilket anbefales kraftigt. Hvis du accepterer at "
+"overskrive den, vil den gamle fil blive gemt under navnet aliases.O."
+
+# Template: exim4/dc_local_interfaces
+# ddtp-prioritize: 43
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr "IP-adresser, der skal lyttes p for indkommende SMTP-forbindelser:"
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"Angiv en kolon-separeret liste med IP-adresser, der skal lyttes p. Du skal "
+"bruge dobbelte koloner i IPv6-adresser (f.eks. 5f03::1200::836f::::)."
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+"Hvis du lader denne vrdi vre tom, vil Exim lytte efter forbindelser p "
+"SMTP-porten p alle tilgngelige netkort."
+
+#
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"Hvis denne computer ikke modtager e-post direkte via SMTP fra ANDRE "
+"maskiner, men kun fra lokale services som fetchmail, eller dit e-post "
+"program (MUA) snakker til localhost, br du forbyde eksterne forbindelser "
+"til Exim ved at stte denne indstilling til 127.0.0.1, hvorved du "
+"deaktiverer lytning p offentligt tilgngelige netforbindelser."
+
+# Template: exim4/dc_minimaldns
+# ddtp-prioritize: 43
+#
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr "Skal antallet af DNS-foresprgsler minimeres (opkaldsforbindelse)?"
+
+#
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"I normal drifttilstand, foretager Exim DNS-opslag under opstarten, nr den "
+"modtager eller afleverer beskeder o.lign. for at fre log og holde antallet "
+"af faste indstillinger i opstningsfilen nede."
+
+#
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"Hvis dette er en maskine uden permanent adgang til en DNS-navneserver, og "
+"benytter en opkaldsforbindelse, kan det have den unskede konsekvens at exim "
+"krver et kostbart opkald under opstart eller ved behandling af ken (selv "
+"hvis der ikke er nogen ventende beskeder)."
+
+#
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+"Aktivr denne funktion hvis du bruger en opkaldsforbindelse, ellers ikke."
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "Stter Exim v4 op (exim4-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "Opdel opstningen i mindre filer?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"Debians exim4-pakker kan enten bruge en enkelt monolitisk fil (/etc/exim4/"
+"exim4.conf) eller omkring 40 sm filer i /etc/exim4/conf.d til at generere "
+"den endelige opstning."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"Den frste lsning er bedst for strre ndringer, og betragtes generelt som "
+"mere stabil, mens den anden gr det muligt at lave mindre ndringer p en "
+"mere komfortabel mde, men er mere skrbelig, og kan g i stykker, hvis den "
+"ndres kraftigt."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr "Hvis du er usikker, br du ikke benytte den opdelte opstning."
+
+#~ msgid ""
+#~ "internet site; mail is sent and received directly using SMTP, mail sent "
+#~ "by smarthost; received via SMTP or fetchmail, mail sent by smarthost; no "
+#~ "local mail, local delivery only; not on a network, manually convert from "
+#~ "handcrafted Exim v3 configuration, no configuration at this time"
+#~ msgstr ""
+#~ "internet-sted; post sendes og modtages direkte med SMTP, post sendt af "
+#~ "smarthost; hentet via SMTP eller fetchmail, post sendt af smarthost; "
+#~ "ingen lokal post, kun lokal levering; ikke p et netvrk, overst manuelt "
+#~ "fra hndlavet Exim v3-opstning, ingen opstning endnu"
+
+#
+#~ msgid ""
+#~ "Internet site - mail is sent and received directly using SMTP. If your "
+#~ "needs don't fit neatly into any category, you probably want to start with "
+#~ "this one and then edit the config file by hand."
+#~ msgstr ""
+#~ "Internetsted - post sendes og modtages direkte med SMTP. Hvis dit behov "
+#~ "falder indenfor denne kategori, vil du sikkert starte med dette valg og "
+#~ "redigere opstningsfilen i hnden."
+
+#
+#~ msgid ""
+#~ "Internet site using smarthost - You receive Internet mail on this "
+#~ "machine, either directly by SMTP or by running a utility such as "
+#~ "fetchmail. Outgoing mail is sent using a smarthost. optionally with "
+#~ "addresses rewritten. This is probably what you want for a dialup system."
+#~ msgstr ""
+#~ "Internetsted med 'smarthost' - Du modtager internet-post p denne "
+#~ "maskine, enten direkte med SMTP eller ved hjlp af et vrktj som f.eks. "
+#~ "fetchmail. Udgende post sendes til en postserver ('smarthost'), "
+#~ "eventuelt med en omskrevet afsenderadresse. Hvis du bruger en "
+#~ "opkaldsforbindelse, er det sikkert dette, du har brug for."
+
+#
+#~ msgid ""
+#~ "Satellite system - All mail is sent to another machine, called a \"smart "
+#~ "host\" for delivery. root and postmaster mail is delivered according to /"
+#~ "etc/aliases. No regular mail is delivered locally."
+#~ msgstr ""
+#~ "Sattelitsystem - Al post sendes via en anden maskine, en skaldt "
+#~ "'smarthost'. Post til root og postmaster leveres som beskrevet i /etc/"
+#~ "aliases. Ingen post leveres lokalt."
+
+#
+#~ msgid ""
+#~ "Local delivery only - You are not on a network. Mail for local users is "
+#~ "delivered."
+#~ msgstr ""
+#~ "Kun lokal levering - Du er ikke p et netvrk. Post til lokale brugere "
+#~ "vil blive leveret."
+
+#
+#~ msgid "Should they be removed?"
+#~ msgstr "Skal de fjernes?"
+
+#
+#~ msgid "You must choose one of the options below:"
+#~ msgstr "Du skal vlge en af nedenstende muligheder:"
+
+# Template: exim4/mailname
+# ddtp-prioritize: 43
+#
+#~ msgid "`mail name' of your system, (not visible for satellite-system)"
+#~ msgstr "Dit systems 'postnavn' (ikke synligt for sattelitsystemer)"
+
+# Template: exim4/dc_other_hostnames
+# ddtp-prioritize: 43
+#
+#~ msgid "Accept mail for which other destinations? (blank for none)"
+#~ msgstr "Hvilke andre destinationer vil du acceptere post fra?"
+
+#
+#~ msgid "If there are any more, enter them here, separated by colons."
+#~ msgstr "Hvis der er flere, kan du angive dem her adskilt med kolon."
+
+# Template: exim4/dc_relay_domains
+# ddtp-prioritize: 43
+#
+#~ msgid "Relay for which domains?"
+#~ msgstr "Videresend post for hvilke domner?"
+
+# Template: exim4/dc_relay_nets
+# ddtp-prioritize: 43
+#
+#~ msgid "Allow relaying for which machines?"
+#~ msgstr "For hvilke domner skal videresendelse tillades?"
+
+# Template: exim4/dc_smarthost
+# ddtp-prioritize: 43
+#
+#~ msgid "Which machine will act as the smarthost and handle outgoing mail?"
+#~ msgstr "Hvilken maskine fungerer som postserver og hndterer udgende post?"
+
+# Template: exim4/dc_postmaster
+# ddtp-prioritize: 43
+#
+#~ msgid "Who is to receive root and postmaster mail?"
+#~ msgstr "Hvem skal modtage post til root og postmaster?"
diff --git a/debian/po/de.po b/debian/po/de.po
new file mode 100644
index 0000000..145bbed
--- /dev/null
+++ b/debian/po/de.po
@@ -0,0 +1,708 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: exim4 4.24-1\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Andreas Metzler <ametzler@debian.org>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr "Nicht zugestellte Mail im \"spool\"-Verzeichnis lschen?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"Im Verzeichnis, das Exim zum Zwischenspeichern nutzt, dem sogenannten \"spool"
+"\"-Verzeichnis /var/spool/exim4/input befinden sich Mails, die noch nicht "
+"zugestellt wurden. Sie knnen sie fr den Fall, dass Sie exim spter wieder "
+"installieren aufbewahren oder jetzt lschen lassen."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr ""
+"Nicht zugestellte Mails im \"spool\" von exim(v3) in den von exim4 "
+"verschieben?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"Im Verzeichnis, das exim (v3) und exim-tls zum Zwischenspeichern nutzen, /"
+"var/spool/exim/input finden sich nicht zugestellte Mails. Sie knnen in das "
+"zu diesem Zweck von exim4 verwendete Verzeichnis, /var/spool/exim4/input "
+"verschoben werden, wo sie exim4 bearbeiten wird."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+"Vorsicht, das funktioniert nur in eine Richtung, exim4 kann die Mails von "
+"exim (v3) bearbeiten, aber nicht umgekehrt."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"Sie sollten die Mails nur verschieben, wenn Sie nicht vorhaben, wieder von "
+"exim4 zu exim (v3) zu wechseln, andernfalls sollten die Mails nicht jetzt "
+"sondern erst spter von Hand verschieben, wenn Sie exim4 vollstndig "
+"eingerichtet haben."
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr "Internet-Server - Mail wird ber SMTP versandt und empfangen"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr "Versand ber Relay-Host; Empfang mit SMTP oder fetchmail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "Versand ber Relay-Host ohne lokale Zustellung normaler Mail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "Nur lokale Mailzustellung (keine Netzwerkverbindung)"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr "Manuelle Konversion einer bestehenden Exim v3 Konfiguration"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "Keine Konfiguration zum jetzigen Zeitpunkt"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "E-Mail Konfigurationstyp:"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+"Whlen Sie den Konfigurationstypus, der Ihren Bedrfnissen am Besten "
+"entspricht."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"Systeme mit wechselnder IP-Adresse (z.B. Dial-In Zugang) sollten ausgehende "
+"Mails zur Zustellung an einen Relay-Server (\"Smarthost\") weitergeben. Sie "
+"knnen whlen, ob ein derartiges System Mail empfangen und lokal zustellen "
+"soll, oder ob nur Mail fr root und postmaster lokal zugestellt werden soll."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "Exim4 manuell konfigurieren?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+"Es ist eine manuell erstellte Exim v3 Konfiguration vorhanden, die an Exim4 "
+"angepasste werden soll. Sie knnen nach der Installation versuchen, die "
+"Konversion mit exim_convert4r4(8) vorzunehmen. Lesen Sie bitte /usr/share/"
+"doc/exim4-base/examples/example.conf.gz und /usr/share/doc/exim4-base/README."
+"Debian.gz!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr "Das Mailsystem ist nicht funktionstchtig, bis Sie es konfigurieren."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "Soll das Mailsystem wirklich nicht konfiguriert werden?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"Solange bis Exim konfiguriert wird, ist das Mailsystem funktionsuntchtig. "
+"Sie knnen Exim spter manuell konfigurieren oder als root \"dpkg-"
+"reconfigure exim4-config\" starten."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "Mailname des Systems:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"Ihr \"Mailname\" ist der Hostname aller ausgehenden News-Artikel und Mails, "
+"der dem Nutzernamen und '@'-Zeichen folgende Teil der Adresse."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"Dieser Name wird auch von anderen Programmen neben Exim genutzt, es sollte "
+"dies der eindeutige voll-qualifizierte Domainname (FQDN) dieses Rechners "
+"sein, er ist i.d.R. Teil der Absender-Adresse lokal generierter Mails."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"Wenn Sie 'Satelliten-System' als Konfigurationskategorie gewhlt haben, wird "
+"dieser name nicht im Absender ausgehender Mail (From:-Header) aufscheinen, "
+"da \"rewriting\" benutzt wird."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "Weitere Rechner, fr die hier Mail angenommen werden soll:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"Spezifizieren Sie bitte die Liste der Domnen, fr die dieser Rechner neben "
+"dem \"Mailname\" (${mailname}) und localhost das Zielsystem darstellt."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"Laut Voreinstellung werden alle angefhrten Domnen gleich behandelt, wenn "
+"unterschiedliche Domnenen unterschiedlich behandelt werden sollen, mssen "
+"Sie die Konfigurationsdateien editieren."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+"Wenn ja, fhren Sie sie hier in Form einer durch Doppelpunkte getrennten "
+"Liste an. Andernfalls sollten Sie das Feld einfach leer lassen."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "Domnen, fr die dieser Rechner Mail weiterleitet (Relay):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr ""
+"Geben Sie die Domnen an, fr dieser Rechner Mail annimmt und weiterleitet."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"Mail von beliebigen anderen Rechnern im Internet adressiert an diese Domnen "
+"wird angenommen. Lokalen Domnen sollten hier nicht angefhrt werden.."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr ""
+"Die Domnen sollten in Form einer durch Doppelpunkte getrennten Liste "
+"angefhrt werden. Sie knnen Platzhalter (\"*.foo\") verwenden."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "Rechner, fr die ausgehende Mail weitergeleitet wird (Relay):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr ""
+"Fhren Sie die Netzwerke lokaler Rechner, fr die dieser Rechner Mail "
+"weiterleiten soll, hier an."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+"Natrlich mssen alle Rechner, fr die dieser Mail Relay-Server (Smarthost) "
+"sein soll, von Anti-Relay-Regeln ausgenommen werden."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"Wenn ja, fhren sie diese hier, voneinander durch Doppelpunkte getrennt, "
+"auf. Sie sollten das Standard Adresse/Maske format (z.B. 194.222.242.0/24) "
+"verwenden."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+"Sie mssen die Doppelpunkte innerhalb von IPv6 Adressen verdoppeln, z.B. "
+"5f03::1200::836f::::/48."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "Domne fr die lokalen Benutzer:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"Fr ein Satelliten-System ist es ntig, die Domne zu kennen, die fr Mails "
+"von lokalen Benutzern verwendet werden soll. Typischerweise ist das der Name "
+"des Rechners auf dem die lokalen Benutzer ihre Mail normalerweise empfangen."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr "Wo lesen die Benutzer ihre Mail?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr "Rechner, der die Weiterleitung ausgehender Mail vornimmt (Smarthost):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr ""
+"Geben Sie den Namen des Rechners an, an den ausgehende Mail gesendet werden "
+"soll."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"In /usr/share/doc/exim4-base/README.SMTP-AUTH finden Sie eine kurze "
+"Anleitung zum Einrichten von SMTP Authentifizierung."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "Empfnger fr Mail fr root und postmaster:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"Mail fr \"postmaster\" und \"root\" wird normalerweise zu einem oder "
+"mehreren User-Accounts der Systemadministratoren umgeleitet. Laut "
+"Voreinstelung wird Mail fr \"postmaster\" und andere System-Accounts zuerst "
+"zu \"root\" umgeleitet, und Mail fr \"root\" wird dann zu einem echtem "
+"Benutzer umgeleitet. Das kann durch Editieren von /etc/aliases gendert "
+"werden."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"Postmaster-Mail sollte normalerweise direkt auf dem Rechner, an die sie "
+"adressiert ist, gelesen werden und nicht auf einen anderen Rechner "
+"weitergeleitet werden, daher sollte zumindest einer der angegeben Benutzer "
+"sein Mail nicht auf einen anderen Rechner umleiten."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"An welchen Benutzer-Account soll Mail fr den Systemadministrator zugestellt "
+"werden? Geben Sie einen oder mehrere durch Komma oder Leerzeichen getrennte "
+"Benutzernamen an. Geben Sie \"none\" an, wenn Sie die Mail nicht umleiten "
+"wollen. - Davon ist aber abzuraten, exim kann nicht mit \"root\"-Rechten "
+"zustellen und wird daher die Mail in /var/mail/mail ablegen. Benutzernamen "
+"sollten kleingeschrieben eingegeben werden."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "Bestehende Datei /etc/aliases berschreiben?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"Sie haben bereits eine Datei /etc/aliases, diese leitet aber Mail fr root "
+"nicht an einen normalen Benutzeraccount um, was sehr zu empfehlen wre. Wenn "
+"Sie zustimmen, die Datei zu berschreiben, wird die alte Version unter dem "
+"Namen aliases.O gespeichert."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr ""
+"IP-Adressen, auf welchen Exim eingehende SMTP-Verbindungen beantwortet:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"Geben Sie eine durch Doppelpunkte getrennte Liste von IP-Adressen an, auf "
+"denen Exim lauschen soll. Sie mssen die Doppelpunkte innerhalb von IPv6 "
+"Adressen verdoppeln, z.B. 5f03::1200::836f::::"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+"Wenn Sie keine Adressen angeben und die Liste leer lassen, wird Exim auf "
+"allen verfgbaren Netzwerkinterfaces eingehende SMTP-Verbindungen "
+"beantworten."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"Wenn dieser Computer nicht direkt Mail per SMTP Mail von anderen Rechnern "
+"empfngt sondern nur von lokalen Programmen wie fetchmail oder Ihrem E-Mail-"
+"Programm, die sich mit \"localhost\" verbinden, sollten Sie das Verbinden "
+"externer Rechner zu Exim unterbinden, indem Sie diese Option auf 127.0.0.1 "
+"setzen und dadurch verhindern, dass Exim berhaupt auf den externen "
+"Netzwerkinterfaces lauscht."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr "DNS-Anfragen minimieren (Dial-on-Demand)?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"Normalerweise fhrt exim diverse DNS Abfragen durch; beim Start, beim "
+"Empfangen oder Zustellen von Nachrichten, fr die Logdatei und um die "
+"Konfiguration klein zu halte."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"Wenn dieser Rechner keinen permanten Zugang zu DNS-Servern hat, und sich bei "
+"versuchtem Zugriff auf das Netz auf das Netz automatisch einwhlt (Dial-on-"
+"Demand), kann also das Starten von Exim oder Abarbeiten der Wateschlange "
+"(sogar, wenn diese leer ist) eine Kosten verursachende Einwahl verursachen."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+"Aktivieren Sie die Option, wenn Sie Dial-on-Demand verwenden, desaktivieren "
+"Sie sie andernfalls."
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "Konfiguriere Exim v4 (exim4-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "Konfiguration auf viele kleine Dateien aufteilen?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"Die Debian Exim4 Pakete knnen entweder eine grosse (/etc/exim4/exim4.conf."
+"template) oder rund 40 kleine Dateien in /etc/exim4/conf.d/ als Datenquelle "
+"zum Erstellen der endgltigen Konfiguration verwenden."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"Ersteres eignet sich besser fr grerer Modifikationen und ist "
+"grundstzlich robuster, zweiteres ermglicht es, mit geringem Aufwand kleine "
+"nderungen vorzunehmen, kann aber weitgehenden Vernderungen "
+"funktionsuntchtig werden."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr ""
+"Im Zweifelsfall sollten Sie sich gegen die Aufteilung in kleine Dateinen "
+"entscheiden."
+
+#~ msgid ""
+#~ "internet site; mail is sent and received directly using SMTP, mail sent "
+#~ "by smarthost; received via SMTP or fetchmail, mail sent by smarthost; no "
+#~ "local mail, local delivery only; not on a network, manually convert from "
+#~ "handcrafted Exim v3 configuration, no configuration at this time"
+#~ msgstr ""
+#~ "Internet-Server - Mail wird ber SMTP versandt und empfangen, Versand "
+#~ "ber Relay-Host; Empfang mit SMTP oder fetchmail, Versand ber Relay-Host "
+#~ "ohne lokale Zustellung normaler Mail, Nur lokale Mailzustellung (keine "
+#~ "Netzwerkverbindung), Manuelle Konversion einer bestehenden Exim v3 "
+#~ "Konfiguration, Keine Konfiguration zum jetzigen Zeitpunkt"
+
+#~ msgid "internet, smarthost, satellite, local, none"
+#~ msgstr ""
+#~ "Internet-Server, Internet mit Relay-Host, Satelliten-System, Nur lokale "
+#~ "Zustellung, keine Konfiguration."
+
+#~ msgid ""
+#~ "You must choose one of the options below as configuration type for the "
+#~ "Exim mail transport agent:"
+#~ msgstr ""
+#~ "Whlen Sie eine der unten angefhrten Auswahlmglichkeiten als "
+#~ "Konfigurationtyp fr den Exim MTA (Mailserversoftware) aus."
+
+#~ msgid ""
+#~ "Internet site - mail is sent and received directly using SMTP. If your "
+#~ "needs don't fit neatly into any category, you probably want to start with "
+#~ "this one and then edit the config file by hand."
+#~ msgstr ""
+#~ "Internet-Server - Mail wird ber SMTP versandt und empfangen. Sollte "
+#~ "keine der angefhrten Kategorien ihren Anforderungen entsprechen, "
+#~ "empfiehlt es, sich diese zu whlen und die erzeugte Konfigurationsdatei "
+#~ "anschlieend anzupassen."
+
+#~ msgid ""
+#~ "Internet site using smarthost - You receive Internet mail on this "
+#~ "machine, either directly by SMTP or by running a utility such as "
+#~ "fetchmail. Outgoing mail is sent using a smarthost. optionally with "
+#~ "addresses rewritten. This is probably what you want for a dialup system."
+#~ msgstr ""
+#~ "Internet-Server mit Relay-Host - Sie empfangen auf diesem Rechner Mails, "
+#~ "entweder direkt ber SMTP oder mittels eines Programmes wie z.B. "
+#~ "fetchmail. Ausgehende Mails werden an einen Relay-Server (Smarthost) "
+#~ "weitergeleitet, nachdem (optional) Adressen umgeschrieben wurden. Diese "
+#~ "Konfiguration ist fr Systeme mit temporrer Internet-Anbindung (Modem, "
+#~ "DSL, etc.) die beste Wahl."
+
+#~ msgid ""
+#~ "Satellite system - All mail is sent to another machine, called a \"smart "
+#~ "host\" for delivery. root and postmaster mail is delivered according to /"
+#~ "etc/aliases. No regular mail is delivered locally."
+#~ msgstr ""
+#~ "Satelliten-System - Alle Mails werden an einen entfernten Server, den "
+#~ "sogenannten Smarthost, zwecks Zustellung bergeben. Mails an root und "
+#~ "postmaster werden entsprechend der Datei /etc/aliases ausgeliefert, "
+#~ "normale Mail wird nicht lokal zugestellt."
+
+#~ msgid ""
+#~ "Local delivery only - You are not on a network. Mail for local users is "
+#~ "delivered."
+#~ msgstr ""
+#~ "Nur lokale Zustellung - Sie sind mit keinem Netzwerk verbunden. Mails an "
+#~ "lokale Nutzer werden zugestellt."
+
+#~ msgid "Should they be removed?"
+#~ msgstr "Sollen sie gelscht werden?"
+
+#~ msgid "You must choose one of the options below:"
+#~ msgstr "Whlen Sie eine der angefhrten Optionen:"
+
+#~ msgid "`mail name' of your system, (not visible for satellite-system)"
+#~ msgstr ""
+#~ "Wie lautet der Mailname Ihres Systems (nicht sichtbar bei Satelliten-"
+#~ "System)?"
+
+#~ msgid "Accept mail for which other destinations? (blank for none)"
+#~ msgstr ""
+#~ "Fr welche weiteren Rechner Mail akzeptieren? (leere Eingabe: keine)?"
+
+#~ msgid "If there are any more, enter them here, separated by colons."
+#~ msgstr ""
+#~ "Wenn es weitere gibt, fhren Sie sie hier an und trennen Sie die "
+#~ "einzelnen Eintrge durch einen Doppelpunkt voneinander."
+
+#~ msgid "Relay for which domains?"
+#~ msgstr "Fr welche Domnen soll dieser Rechner Mail weiterleiten (Relay)"
+
+#~ msgid "Allow relaying for which machines?"
+#~ msgstr "Fr welche Rechner soll dieser Rechner Mail weiterleiten (Relay)"
+
+#~ msgid "Which machine will act as the smarthost and handle outgoing mail?"
+#~ msgstr ""
+#~ "Welcher Rechner nimmt die Weiterleitung ausgehender Mail vor (Smarthost)?"
+
+#~ msgid "Who is to receive root and postmaster mail?"
+#~ msgstr "An wen soll Mail fr root und postmaster zugestellt werden?"
diff --git a/debian/po/el.po b/debian/po/el.po
new file mode 100644
index 0000000..2b2b72a
--- /dev/null
+++ b/debian/po/el.po
@@ -0,0 +1,634 @@
+# translation of el.po to Greek
+# translation of templates.po to Greek
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans#
+# Developers do not need to manually edit POT or PO files.
+# Konstantinos Margaritis <markos@debian.org>, 2003, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: el\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-01-19 22:36EEST\n"
+"Last-Translator: Konstantinos Margaritis <markos@debian.org>\n"
+"Language-Team: Greek <debian-l10n-greek@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+"X-Generator: KBabel 1.0.2\n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr "Θέλετε να διαγραφούν τα μηνύματα που εκρεμμούν στον κατάλογο spool;"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"Υπάρχουν μηνύματα στον κατάλογο spool του exim /var/spool/exim4/input που "
+"δεν έχουν παραδοθεί ακόμη. Μπορείτε να τα κρατήσετε σε περίπτωση που "
+"αποφασίσετε να ξαναεγκαταστήσετε το Exim στο μέλλον, ή μπορείτε να τα "
+"διαγράψετε."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr ""
+"Θέλετε να μεταφέρετε τα μηνύματα που εκρεμμούν από το exim(v3) στον κατάλογο "
+"spool του exim4;"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"Υπάρχουν μηνύματα στον κατάλογο spool του exim ή του exim-tls /var/spool/"
+"exim/input που δεν έχουν παραδοθεί ακόμη. Μπορείτε τώρα να τα μεταφέρετε "
+"στον κατάλογο spool του exim4 (/var/spool/exim4/input) όπου θα αναλάβει τη "
+"διαχείριση το exim4."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+"Έχετε υπόψιν σας ότι αυτό το χαρακτηριστικό λειτουργεί μονοσήμαντα, το exim4 "
+"μπορεί να διαχειριστεί το spool του exim (v3) αλλά όχι αντίστροφα."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"Μεταφέρτε τα μηνύματα μόνο αν δεν έχετε σκοπό να επιστρέψετε στο exim(v3), "
+"αν όχι δε θα πρέπει να τα μεταφέρετε τώρα αλλά χειροκίνητα μετά το τέλος της "
+"ρύθμισης."
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr "δικτυακός τόπος (internet) - λήψη και αποστολή μέσω SMTP"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr "αλληλογραφία με χρήση smarthost - λήψη μέσω SMTP ή fetchmail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "αλληλογραφία με χρήση smarthost - χωρίς τοπική παράδοση αλληλογραφίας"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "τοπική αλληλογραφία μόνο - χωρίς δίκτυο"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr "χειροκίνητη ρύθμιση από υπάρχουσα υποδομή Exim v3"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "χωρίς ρύθμιση προς το παρόν"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "Γενικός τύπος ρύθμισης αλληλογραφίας:"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+"Προσφέρονται αρκετοί τρόποι ρύθμισης του συστήματος αλληλογραφίας.Επιλέξτε "
+"αυτό που ταιριάζει περισσότερο στις ανάγκες σας."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"Συστήματα με δυναμικές διευθύνσεις IP, όπως οι χρήστες modem, κατά κανόνα θα "
+"πρέπει να ρυθμίσουν την αλληλογραφία τους να αποστέλλεται σε ένα ενδιάμεσο "
+"σύστημα, καλούμενο \"smarthost\" για παράδοση. Μπορείτε να επιλέξετε να "
+"λαμβάνετε και να διαβάζετε την αλληλογραφία σας σε ένα τέτοιο σύστημα ή να "
+"μην έχετε τοπική παράδοση αλληλογραφίας εκτός για τους χρήστες root και "
+"postmaster."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "Θέλετε να ρυθμίσετε χειροκίνητα το Exim4;"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+"Έχετε επιλέξει ότι έχετε ήδη μια προσαρμοσμένη ρύθμιση για το Exim3. Για να "
+"τη μετατρέψετε για το Exim v4, μπορείτε να χρησιμοποιήσετε το πρόγραμμα "
+"exim_convert4r4(8) μετά την εγκατάσταση. Συμβουλευτείτε το αρχείο /usr/share/"
+"doc/exim4-base/examples/example.conf.gz και το /usr/share/doc/exim4-base/"
+"README.Debian.gz!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+"Δε θα μπορείτε να χρησιμοποιήσετε το σύστημα αλληλογραφίας, έως ότου το "
+"ρυθμίσετε."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "Θέλετε σίγουρα να αφήσετε το σύστημα χωρίς ρύθμιση;"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"Δε θα μπορείτε να χρησιμοποιήσετε το σύστημα αλληλογραφίας, έως ότου το "
+"ρυθμίσετε.Φυσικά, θα μπορείτε να κάνετε τη ρύθμιση αργότερα χειροκίνητα ή "
+"εκτελλώντας την εντολή \"dpkg-reconfigure exim4-config\" ως χρήστης root."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "Όνομα διακομιστή αλληλογραφίας:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"Το \"όνομα διακομιστή αλληλογραφίας\" είναι το τμήμα της διεύθυνσης email "
+"που φαίνεται στα εξερχόμενα μηνύματα news και mail και αντιστοιχεί στο όνομα "
+"του υπολογιστή (μετά το όνομα του χρήστη και το σύμβολο @)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"Το όνομα αυτό θα χρησιμοποιηθεί και από άλλα προγράμματα εκτός από το Exim, "
+"θα είναι το μοναδικό, πλήρως ορισμένο όνομα υπολογιστή (FQDN) από το οποίο "
+"θα φαίνεται ότι προέρχεται η αλληλογραφία."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"Αν ρυθμίζετε το σύστημα αυτό ως 'δορυφορικό', το όνομα αυτό δεν θα "
+"απεικονίζεται στα πεδία From: του μηνύματος, καθώς τα πεδία αυτά "
+"επανεγγράφονται."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "Άλλοι προορισμοί για τους οποίους γίνεται δεκτή η αλληλογραφία:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"Παρακαλώ δώστε μια λίστα ονομάτων τομέων για τους οποίους το σύστημα αυτό θα "
+"θεωρείται τελικός προορισμός, πέρα από το όνομα του διακομιστή αλληλογραφίας "
+"(${mailname}) και το \"localhost\"."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"Όλα τα ονόματα τομέων αντιμετωπίζονται με τον ίδιο τρόπο (προκαθορισμένη "
+"ρύθμιση), αν θέλετε ιδιαίτερη μεταχείριση για κάποιο τομέα δικτύου, θα "
+"πρέπει να επεξεργαστείτε τα αρχεία ρυθμίσεων εκ των υστέρων."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+"Αν υπάρχουν επιπλέον ονόματα, εισάγετέ τα εδώ, χωρίζοντάς τα με άνω και κάτω "
+"τελείες ':'. Διαφορετικά αφήστε το πεδίο κενό."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "Αναδρομολόγηση αλληλογραφίας για τους τομείς:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr ""
+"Παρακαλώ εισάγετε εδώ τα ονόματα των τομέων για τους οποίους δέχεστε να "
+"αναδρομολογήσετε (relay) την αλληλογραφία."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"Οι τομείς αυτοί είναι τομείς για τους οποίους είστε διατεθιμένοι να λάβετε "
+"αλληλογραφία από οπουδήποτε στο Internet. Δε θα πρέπει να συμπεριλάβετε "
+"τοπικούς τομείς στο πεδίο αυτό."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr ""
+"Θα πρέπει να διαχωρίσετε τα ονόματα των τομέων στο πεδίο αυτό με άνω και "
+"κάτω τελεία ':'. Μπορείτε να χρησιμοποιήσετε κανονικές παραστάσεις."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "Υπολογιστές για τους οποίους θα αναδρομολογείται η αλληλογραφία:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr ""
+"Παρακαλώ εισάγετε τις διευθύνσεις IP των τοπικών υπολογιστών (ή δικτύων) για "
+"τους οποίους θέλετε να αναδρομολογείτε την αλληλογραφία."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+"Προφανώς, θα πρέπει να εξαιρεθούν από τις λίστες ελέγχου αναδρομολόγησης "
+"όποιοι υπολογιστές χρησιμοποιούν αυτό το διακομιστή ως smarthost, καθώς η "
+"ουσία είναι να χρησιμοποιούν εμάς για αναδρομολόγηση της αλληλογραφίας."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"Αν υπάρχουν τέτοιοι υπολογιστές, εισάγετέ τους εδώ, χωρίζοντάς τους με άνω "
+"και κάτω τελείες ':'. Θα πρέπει να χρησιμοποιήσετε κανονική μορφή διεύθυνσης/"
+"μάσκας (π.χ. 194.222.242.0/24)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+"Για τις διευθύνσεις IPv6 θα πρέπει να χρησιμοποιήσετε διπλές άνω και κάτω "
+"τελείες (π.χ. 5f03::1200::836f::::/48)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "Τομέας δικτύου για τους τοπικούς χρήστες:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"Εφόσον ο υπολογιστής έχει ρυθμιστεί ώς δορυφορικό σύστημα, θα πρέπει να "
+"ορίσετε το όνομα τομέα που θα χρησιμοποιηθεί για τους τοπικούς χρήστες. "
+"Συνήθως, αυτό αντιστοιχεί στον υπολογιστή στον οποίο θα λαμβάνετε την "
+"αλληλογραφία σας."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr ""
+"Ποιο σύστημα θα χρησιμοποιούν οι χρήστες σας για ανάγνωση αλληλογραφίας;"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr "Υπολογιστής που διαχειρίζεται την εξερχόμενη αλληλογραφία (smarthost):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr ""
+"Εισάγετε το όνομα του υπολογιστή στον οποίο αποστέλλεται η εξερχόμενη "
+"αλληλογραφία."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"Για περισσότερες πληροφορίες για την ρύθμιση του μηχανισμού πιστοποίησης "
+"ταυτότητας μέσω SMTP, ανατρέξτε στο αρχείο /usr/share/doc/exim4-base/README."
+"SMTP-AUTH."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "Παραλήπτης αλληλογραφίας του χρήστη root και του postmaster:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"Η αλληλογραφία των χρηστών \"postmaster\" και \"root\" συνήθως παραδίδεται "
+"σε έναν ή περισσότερους λογαριασμούς χρηστών που αντιστοιχούν στους ίδιους "
+"τους διαχειριστές του συστήματος. Η προκαθορισμένη ρύθμιση, ορίζει την "
+"αλληλογραφία του χρήστη \"postmaster\" να προωθείται στο χρήστη \"root\", "
+"και την αλληλογραφία του χρήστη \"root\" να προωθείται σε κάποιο πραγματικό "
+"χρήστη. Η ρύθμιση αυτή μπορεί να αλλάξει από το αρχείο /etc/aliases."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"Σημειωτέον ότι η αλληλογραφία του postmaster κανονικά θα πρέπει να "
+"διαβάζεται στον υπολογιστή στον οποίο προορίζεται, παρά να προωθείται "
+"οπουδήποτε αλλού, ώστε τουλάχιστον ένας εκ των επιλεγμένων χρηστών θα πρέπει "
+"να μη προωθεί την αλληλογραφία του εκτός του συστήματος."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"Σε ποιους λογαριασμούς χρηστών θέλετε να προωθείται η αλληλογραφία του "
+"διαχειριστή συστήματος; Δώστε ένα ή περισσότερα ονόματα χρηστών, χωρισμένα "
+"με κενό ή κόμμα. Δώστε \"none\" αν δεν επιθυμείτε προώθηση της "
+"αλληλογραφίας, αν και κάτι τέτοιο δε συνιστάται. Το Exim δε παραδίδει την "
+"αλληλογραφία ως root και θα την αποθηκεύει στο αρχείο /var/mail/mail. "
+"Επίσης, σημειώστε ότι τα ονόματα χρηστών θα πρέπει να δοθούν με πεζά "
+"γράμματα."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "Να αντικατασταθεί το αρχείο /etc/aliases;"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"Υπάρχει ήδη ένα αρχείο /etc/aliases, αλλά δεν προωθεί την αλληλογραφία του "
+"χρήστη root σε κάποιο άλλο λογαριασμό, κάτι που συνιστάται. Αν δέχεστε την "
+"αντικατάσταση του αρχείου αυτού, το παλιό αρχείο θα κρατηθεί με νέο όνομα "
+"aliases.O."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr "Διευθύνσεις IP στις οποίες θα αναμένονται εισερχόμενες συνδέσεις SMTP:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"Δώστε μια λίστα διευθύνσεων IP στις οποίες θα αναμένονται συνδέσεις SMTP, "
+"χωρισμένες με άνω και κάτω τελείες ':'. Θα πρέπει να χρησιμοποιήσετε διπλές "
+"άνω και κάτω τελείες '::' για διευθύνσεις IPv6 (π.χ. 5f03::1200::836f::::)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+"Αν αφήσετε αυτό το πεδίο κενό, το Exim θα δεσμεύσει όλες τις διαθέσιμες "
+"διασυνδέσεις δικτύου (interfaces) για εισερχόμενες συνδέσεις SMTP."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"Αν ο υπολογιστής αυτός δε λαμβάνει απευθείας αλληλογραφία μέσω SMTP από "
+"ΑΛΛΟΥΣ υπολογιστές, αλλά μόνο τοπικά με συστήματα όπως fetchmail ή άλλα "
+"προγράμματα-πελάτες αλληλογραφίας (MUA) που επικοινωνούν με το localhost, θα "
+"πρέπει να απαγορεύσετε εξωτερικές συνδέσεις στο Exim ρυθμίζοντας αυτήν την "
+"επιλογή σε 127.0.0.1, ώστε να μην αναμένονται συνδέσεις σε εξωτερικές "
+"διασυνδέσεις δικτύου."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr "Ελάχιστος αριθμός επερωτήσεων DNS (για σύνδεση κατ' απαίτηση);"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"Σε κανονική λειτουργεία το Exim πραγματοποιεί επερωτήσεις DNS κατά την "
+"εκκίνησή του, την λήψη και παράδοση της αλληλογραφίας, κλπ. για σκοπούς "
+"αρχειοθέτησης και για τη διατήρηση όσον το δυνατόν λιγότερων hard-coded "
+"τιμών στο αρχείο ρυθμίσεων."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"Αν το σύστημα δεν πρόκειται να χρησιμοποιήσει μόνιμους διακομιστές DNS, με "
+"Σύνδεση κατ' Απαίτηση (dial-on-demand), αυτό μπορεί να έχει τη μη επιθυμητή "
+"συνέπεια να πραγματοποιεί έναρξη σύνδεσης με το ξεκίνημα του Exim ή της "
+"παράδοσης της αλληλογραφίας (ακόμη χωρίς εκκρεμή μηνύματα)."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+"Ενεργοποιήστε το χαρακτηριστικό αυτό αν χρησιμοποιείτε Σύνδεση κατ' "
+"απαίτηση, διαφορετικά απενεργοποιήστε το."
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "Ρύθμιση Exim v4 (exim4-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "Να διασπαστούν οι ρυθμίσεις σε μικρότερα αρχεία;"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"Τα πακέτα του exim4 για το Debian, μπορούν να χρησιμοποιήσουν είτε ένα "
+"ενιαίο αρχείο (/etc/exim4/exim4.conf.template) ή περίπου 40 άρχεια στον "
+"κατάλογο /etc/exim4/conf.d που θα συνιστούν το σύνολο των ρυθμίσεων."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"Ο πρώτος τρόπος συνιστάται για αλλαγές μεγάλης έκτασης και είναι γενικά πιο "
+"σταθερός, ενώ ο δεύτερος είναι πιο εύχρηστος για μικρές αλλαγές αλλά και πιο "
+"επιρρεπής στη παρουσίαση προβλημάτων."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr "Αν δεν είστε σίγουροι τότε θα πρέπει να κρατήσετε το ενιαίο αρχείο."
+
+#~ msgid ""
+#~ "internet site; mail is sent and received directly using SMTP, mail sent "
+#~ "by smarthost; received via SMTP or fetchmail, mail sent by smarthost; no "
+#~ "local mail, local delivery only; not on a network, manually convert from "
+#~ "handcrafted Exim v3 configuration, no configuration at this time"
+#~ msgstr ""
+#~ "δικτυακός τόπος (internet) - η αλληλογραφία αποστέλλεται και λαμβάνεται "
+#~ "απευθείας μέσω SMTP, αλληλογραφία με χρήση smarthost - η αλληλογραφία "
+#~ "λαμβάνεται μέσω SMTP ή fetchmail, αλληλογραφία με χρήση smarthost, χωρίς "
+#~ "τοπική παράδοση αλληλογραφίας, τοπική αλληλογραφία μόνο - χωρίς δίκτυο, "
+#~ "χειροκίνητη ρύθμιση από υπάρχουσα υποδομή Exim v3, χωρίς ρύθμιση προς το "
+#~ "παρόν"
diff --git a/debian/po/es.po b/debian/po/es.po
new file mode 100644
index 0000000..14e30b3
--- /dev/null
+++ b/debian/po/es.po
@@ -0,0 +1,627 @@
+# exim4 debconf translation to spanish
+# Copyright (C) 2004 Software in the Public Interest
+# This file is distributed under the same license as the exim4 package.
+#
+# Changes:
+# - Initial translation
+# Fco. Javier Snchez Castelo <javicastelo@ono.com>, 2004
+# - Revision:
+# Javier Fernndez-Sanguino <jfs@debian.org>
+#
+# Traductores, si no conoce el formato PO, merece la pena leer la
+# documentacin de gettext, especialmente las secciones dedicadas a este
+# formato, por ejemplo ejecutando:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Equipo de traduccin al espaol, por favor lean antes de traducir
+# los siguientes documentos:
+#
+# - El proyecto de traduccin de Debian al espaol
+# http://www.debian.org/intl/spanish/coordinacion
+# especialmente las notas de traduccin en
+# http://www.debian.org/intl/spanish/notas
+#
+# - La gua de traduccin de po's de debconf:
+# /usr/share/doc/po-debconf/README-trans
+# o http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: exim4 4.30-4\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-02-10 10:32+100\n"
+"Last-Translator: Fco. Javier Snchez Castelo\n"
+"Language-Team: Debian Spanish <debian-l10n-spanish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr ""
+"Eliminar los mensajes no entregados del directorio de la cola de correo?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"Hay mensajes en el directorio de la cola de correo de exim /var/spool/exim4/"
+"input que no se han entregado todava. Puede mantenerlos en caso de que "
+"decida reinstalar exim posteriormente, o puede decidir borrarlos."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr ""
+"Mover el correo an no entregado de exim(v3) a la cola de correo de exim4?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"Hay algunos mensajes de correo no entregados en el directorio de la cola de "
+"correo de exim o de exim-tls en /var/spool/exim/input/. Se pueden mover "
+"ahora a la cola de exim4 (/var/spool/exim4/input/) donde sern gestionados "
+"por exim4."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+"Tenga presente que sto funciona solamente en una direccin, es decir, exim4 "
+"puede gestionar la cola de exim(v3) pero no al contrario. "
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"Mueva los mensajes de correo solamente si no tiene pensado volver a usar exim"
+"(v3). Si esto no es as, no debera mover el correo ahora, sino manualmente "
+"una vez que haya adaptado su configuracin."
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr "internet site; el correo se enva y recibe directamente usando SMTP"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr ""
+"el correo se enva mediante un smarthost; se recibe a travs de SMTP o "
+"fetchmail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "el correo se enva mediante un smarthost; sin correo local"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "slamente entrega local; sin red"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr "convierte manualmente a partir de la configuracin manual de exim v3"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "sin configuracin de momento"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "Tipo de configuracin general del correo:"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+"Hay varios tipos de configuracin general para el sistema de correo. "
+"Seleccione la que se ajuste mejor a sus necesidades."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"Los sistemas con direcciones IP dinmicas, incluyendo las de acceso "
+"telefnico, deberan configurarse probablemente mediante el envo del correo "
+"a otro servidor llamado smart host para el reparto. Puede escojer recibir "
+"el correo a travs de este sistema; o no tener reparto de correo local, "
+"excepto para el correo dirigido a los usuarios root y postmaster (el "
+"admistrador de correo)."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "Configurar Exim4 manualmente?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+"Usted indic que tiene una configuracin manual de Exim 3. Para convertirla "
+"a Exim4, puede usar la herramienta exim_convert4r4(8) despus de la "
+"instalacin. Consulte /usr/share/doc/exim4-base/examples/example.conf.gz "
+"y /usr/share/doc/exim4-base/README.Debian.gz!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+"Hasta que su sistema de correo no est configurado, estar inutilizado y no "
+"podr usarse."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "Realmente quiere dejar el sistema de correo sin configurar?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"Su sistema de correo estar inutilizado y no podr utilizarse hasta que lo "
+"configure. Naturalmente, puede configurarlo ms tarde, ya sea manualmente o "
+"ejecutando dpkg-reconfigure exim4-config como administrador."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "Nombre del sistema de correo:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"Su mail name es la parte de la direccin del nombre del servidor que se "
+"mostrar en los mensajes de noticias y de correo salientes (la que sigue al "
+"nombre de usuario tras el signo @)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"Este nombre se usar por otros programas adems de Exim; debera ser el "
+"nico nombre de dominio totalmente cualificado (FQDN) desde el que el correo "
+"parecer proceder."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"Si est configurando el sistema como 'satlite' este nombre no aparecer en "
+"el campo From: de la cabecera del correo, ya que ese campo ser reescrito."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "Otros destinos para los que se acepta el correo:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"Por favor introduzca una lista de dominios para los que esta mquina debera "
+"considerarse el destino final, aparte del nombre de correo (${mailname}) y "
+"localhost."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"Por defecto todos los dominios se tratarn igual. Si quiere diferenciar "
+"entre distintos nombres de dominio necesitar editar los archivos de "
+"configuracin posteriormente."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+"Si hay alguno ms, introdzcalos aqu, separados por dos puntos. Puede "
+"dejarlo en blanco si no hay ninguno."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "Dominios para los que se reenvia correo:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr ""
+"Por favor introduzca aqu los dominios que permite que reenvien correo."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"Estos dominios son aquellos para los que usted est dispuesto a admitir "
+"correo desde cualquier parte de Internet. No indique aqu dominios locales."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr ""
+"Los dominios que introduzca aqu debera separarlos con dos puntos. Puede "
+"usar comodines."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "Servidores para los que reenviar correo:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr ""
+"Por favor introduzca aqu las redes de servidores locales que permite que "
+"reenvien correo."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+"Obviamente, cualquier servidor que nos utilice como smarthost ha de ser "
+"excludo de los controles de reenvo, ya que la funcin primaria de "
+"esteservidor de correo es permitirles que estos lo reenvien desde aqu."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"Si hay algunos, introdzcalos aqu separados por dos puntos. Debera usar el "
+"formato estndar direccin/longitud (por ejemplo 194.222.242.0/24)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+"Necesita duplicar los dos puntos en direcciones IPv6 (por ejemplo "
+"5f03::1200::836f::::/48)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "Nombre de dominio para usuarios locales:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"Ya que va a configurar el sistema como satlite, debe especificar el nombre "
+"de dominio a usar para el correo de los usuarios locales. Habitualmente es "
+"el nombre de la mquina en la que normalmente recibe su correo."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr "Dnde leern el correo sus usuarios?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr "Mquina que gestiona el correo saliente en este servidor (smarthost):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr "Introduzca el nombre del servidor al que se enva el correo saliente."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"Consulte algunas notas sobre la configuracin de la autenticacin SMTP en /"
+"usr/share/doc/exim4-base/README.SMTP-AUTH."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "Destinatario del correo de root y postmaster:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"El correo de las cuentas de postmaster (administrador de correo) y "
+"root (administrador) habitualmente se redirige a una o ms cuentas de "
+"usuario de los usuarios que son realmente administradores del sistema. El "
+"valor por omisin es que el correo para postmaster y el de varias cuentas "
+"del sistema se reenva a root, y el correo de root se reenva a un "
+"usuario real. Esto se puede cambiar editando /etc/aliases."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"Advierta que el correo del administrador normalmente debera leerse en el "
+"sistema al que va dirijido, antes que ser enviado a otra parte, as (al "
+"menos uno de) los usuarios que escoja no deberan reenviar su correo fuera "
+"de sta mquina."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"A qu cuentas de usuario ir el correo del administrador del sistema? "
+"Introduzca uno o ms nombres de usuario separados por espacios o comas. "
+"Escriba none si no desea redirigir el correo. No se recomienda jams hacer "
+"sto. Exim no puede efectuar entregas de correo como root y guardar el "
+"correo en /var/mail/mail. Asimismo, tenga en cuenta que los nombres de "
+"usuario estn en minscula!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "Sobreescribir el archivo /etc/aliases existente?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"Ya tiene un archivo /etc/aliases, pero ste no redirige el correo de root "
+"a una cuenta de usuario, lo cual se le recomienda encarecidamente. Si acepta "
+"sobreescribirlo, el archivo antiguo se conservar renombrndolo a aliases."
+"O."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr "Direcciones IP en las que recibir conexiones SMTP entrantes:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"Introduzca en una lista separada por dos puntos las direcciones IP a "
+"escuchar. Necesita duplicar los dos puntos en direcciones IPv6 (por ejemplo "
+"5f03::1200::836f::::)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+"Si deja este valor en blanco, Exim podr recibir conexiones SMTP desde "
+"cualquier interfaz de red disponible."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"Si este ordenador no recibe directamente correo por SMTP de otros "
+"servidores, sino nicamente de servicios locales como fetchmail o su cliente "
+"de correo (MUA) enva al servidor local debera prohibir a Exim conexiones "
+"externas ajustando esta opcin al valor '127.0.0.1'.De esta forma "
+"desactivar la escucha en las interfaces conectadas a redes pblicas."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr ""
+"Mantener el nmero mnimo de peticiones de DNS (marcacin bajo demanda)?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"En el modo normal de operacin, Exim hace consultas de DNS al iniciar, "
+"cuando recibe o entrega mensajes, etc. con propsitos de registro y para "
+"mantener pequeo el nmero de valores grabados en el archivo de "
+"configuracin."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"Si este ordenador es un servidor sin acceso permanente a servidores de "
+"nombres DNS, usando marcacin bajo demanda esto podra tener la indeseable "
+"consecuencia de que se intente realizar una evento de conexin (que genere "
+"una llamada costosa) al iniciar exim o ejecutar la cola del correo (incluso "
+"aunque no haya mensajes en espera)."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+"Active esta funcin si esta usando marcacin bajo demanda; en caso "
+"contrario, desactvela."
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "Configuracin de Exim versin 4 (exim4-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "Dividir la configuracin en pequeos ficheros?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"Los paquetes Debian de exim4 pueden usar un nico fichero monoltico (/etc/"
+"exim4.conf.template) o bien cerca de 40 ficheros pequeos en /etc/exim4/"
+"conf.d/ para generar la configuracin final."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"La primera se adapta mejor a grandes modificaciones y es generalmente ms "
+"estable, mientras que la ltima ofrece una manera cmoda de hacer pequeas "
+"modificaciones pero es ms frgil y podra romperse si hace muchos cambios."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr ""
+"Si no est seguro no debera usar la configuracin dividida en pequeos "
+"ficheros."
diff --git a/debian/po/fi.po b/debian/po/fi.po
new file mode 100644
index 0000000..7e52769
--- /dev/null
+++ b/debian/po/fi.po
@@ -0,0 +1,660 @@
+# translation of fi.po to Finnish
+# translation of exim4-4.30-debian-po-fi.po to Finnish
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans#
+# Developers do not need to manually edit POT or PO files.
+# Tapio Lehtonen <tale@debian.org>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: exim4 4.30\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-01-27 16:37+0200\n"
+"Last-Translator: Tapio Lehtonen <tale@debian.org>\n"
+"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+"X-Generator: KBabel 1.0.2\n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr "Poista jonosta shkpostit joita ei ole toimitettu perille?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"exim-ohjelman postijonossa hakemistossa /var/spool/exim4/input on "
+"shkposteja joita ei ole viel toimitettu perille. Ne voidaan silytt "
+"silt varalta ett exim asennetaan takaisin myhemmin, tai ne voidaan "
+"poistaa."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr ""
+"Siirr perille toimittamattomat shkpostit exim(v3):n postijonosta exim4:n "
+"postijonoon?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"exim- tai exim-tls-ohjelmien shkpostijonoissa hakemistossa /var/spool/exim/"
+"input on joitakin perille toimittamattomia shkposteja. Ne voidaan nyt "
+"siirt exim4:n postijonoon (/var/spool/exim4/input) josta exim4 ne "
+"ksittelee."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+"Huomaa tmn olevan yksisuuntainen tie: exim4 osaa ksitell exim(v3):n "
+"postijonoa, mutta ei toisinpin. "
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"Siir shkpostit vain jos et aio palata exim(v3):een. Muussa tapauksessa "
+"posteja ei pitisi siirt nyt, vaan siirrt ne itse kunhan olet muuttanut "
+"asetukset. "
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr "Internetiin kytketty kone; lhetetys ja vastaanotto suoraan SMTP:ll"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr "lhetetys smarthostin kautta; vastaanottoon SMTP tai fetchmail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "lhetetys smarthostin kautta; ei paikallista shkpostia"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "vain paikallinen shkpostien toimitus; verkkoyhteytt ei ole"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr "Muunna itse Exim v3:n itse tehdyist asetuksista"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "ei tehd asetuksia nyt"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "Shkpostin asetusten perustyyppi:"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+"Shkpostijrjestelmn asetusten perustyypeiss on monta mahdollisuutta. "
+"Valitse se joka parhaiten vastaa tarpeita."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"Koneissa joissa kytetn vaihtuvia IP-osoitteita, mukaanlukien\n"
+"soittoyhteytt kyttvt, asetukset olisi luultavimmin tehtv\n"
+"lhettmn shkposti toiselle koneelle jaettavaksi (tmmisest\n"
+"koneesta kytetn termi \"smarthost\"). Valinnaisesti tuollainen\n"
+"jrjestelm voi vastaanottaa shkpostia tai olla kokonaan ilman\n"
+"paikallista shkpostin jakelua, paitsi kyttjille root ja postmaster\n"
+"tuleva posti."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "Teetk Exim4:n asetukset itse?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+"Ilmoitit tehneesi Exim 3:n asetukset itse. Niiden muuttamiseen Exim 4:lle "
+"voi kytt tykalua exim_convert4r4(8) asennuksen jlkeen. Tutki "
+"tiedostoja /usr/share/doc/exim4-base/examples/example.conf.gz ja /usr/share/"
+"doc/exim4-base/README.Debian.gz!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+"Shkpostijrjestelm on rikki eik sit voi kytt ennen kuin asetukset on "
+"tehty."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "Jtetnk tosiaankin shkpostijrjestelmn asetukset tekemtt? "
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"Shkpostijrjestelm on rikki eik sit voi kytt ennen kuin asetukset on "
+"tehty. Voit tietenkin tehd asetukset myhemmin, joko itse tai suorittamalla "
+"\"dpkg-reconfigure exim4-config\" pkyttjn."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "Jrjestelmn postinimi:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"Jrjestelmn \"postinimi\" on konenimen osuus shkpostiosoitteesta joka "
+"listn lhteviin nyyseihin ja shkposteihin (kyttjnimen ja @-merkin "
+"jlkeinen osa)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"Tt nime kyttvt muutkin ohjelmat kuin Exim; sen tulisi olla yksi "
+"tydellinen verkkoaluenimi (FQDN) jota kytetn lhettjn osoitteena."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"Jos mrittelet tmn koneen satelliitiksi, tm nimi ei ny shkpostin "
+"From:-riveill, koska osoitteiden uudelleenkirjoitus on kytss."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "Muut vastaanottajat joiden posti hyvksytn:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"Listaa verkkoalueet joille tm kone pit itsen lopullisena "
+"vastaanottajana, postinimen (${mailname}) ja \"localhost\":n lisksi. "
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"Oletusarvoisesti kaikkia verkkoalueita ksitelln samalla tavalla; "
+"haluttaessa eri verkkoaluenimille erilainen ksittely, on asetustiedostoja "
+"muokattava jlkeenpin."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+"Jos on lis, kirjoita ne thn kaksoispisteell eroteltuina. Voit jtt "
+"tyhjksi jos ei ole enemp. "
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "Verkkoalueet joiden posti vlitetn:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr "Kirjoita ne verkkoalueet joiden posti hyvksytn vlitettvksi."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"Niden verkkoalueiden posti hyvksytn vlitettvksi mist tahansa "
+"Internetist. l kirjoita paikallisia verkkoalueita thn. "
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr ""
+"Thn kirjoitettavat verkkoaluenimet olisi eroteltava kaksoispilkulla. "
+"Jokerimerkkej voi kytt. "
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "Koneet joiden postia vlitetn:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr ""
+"Kirjoita thn ne paikallisten koneiden aliverkot joista tuleva posti "
+"hyvksytn vlitettvksi."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+"Tietenkin on tt konetta smarthostina kyttvt koneet ohitettava "
+"postinvlityksen ohjauksista, koska tmn koneen on nimenomaan tarkoitus "
+"vlitt niiden postia."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"Jos nit on, kirjoita ne thn kaksoispistein eroteltuina. Olisi kytettv "
+"tavanomaista osoite/pituus-muotoa (esim. 194.222.242.0/24)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+"IPv6-osoitteissa on kaksoispisteet kahdennettava (esim. "
+"5f03::1200::836f::::/48)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "Paikallisten kyttjien verkkoaluenimi:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"Koska tst koneesta tulee satelliitti, on mritettv shkpostin kyttm "
+"verkkoaluenimi paikallisille kyttjille; tyypillisesti tm on se kone "
+"jossa normaalisti vastaanotat shkpostit."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr "Miss kyttjt lukevat shkpostinsa?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr "Kone joka ksittelee tmn koneen lhtevn postin (smarthost):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr "Kirjoita sen koneen konenimi johon lhtev shkposti lhetetn."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"Katso tiedostosta /usr/share/doc/exim4-base/README.SMTP-AUTH ohjeita SMTP-"
+"todennuksen asetuksista. "
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "Pkyttjn ja postmasterin shkpostien vastaanottaja:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"Tunnuksille \"postmaster\" ja \"root\" tuleva shkposti ohjataan "
+"tavallisesti yhteen tai useampaan varsinaisten yllpitjien "
+"shkpostilaatikoista. Oletusarvoisesti asetukset tehdn siten ett "
+"\"postmaster\" ja erinisille jrjestelmn tunnuksille tuleva posti ohjataan "
+"tunnukselle \"root\" ja tunnuksen \"root\" posti ohjataan oikean kyttjn "
+"shkpostilaatikkoon. Tt voidaan muuttaa muokkaamalla tiedostoa /etc/"
+"aliases. "
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"Huomaa ett tunnuksen postmaster shkposti olisi yleens luettava siin "
+"jrjestelmss johon se on lhetetty, eik vlitettv sit muualle. Niinp "
+"valitsemiesi kyttjien (tai ainakin yhden heist) ei pitisi ohjata "
+"postiaan tmn koneen ulkopuolelle. "
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"Keiden kyttjien postilaatikkoon menee jrjestelmn yllpitjn shkposti? "
+"Kirjoita yksi tai useampia kyttjtunnuksia vlilynnein tai pilkuin "
+"eroteltuina. Kirjoita \"none\" jos et halua postin uudelleenohjausta. - "
+"HUOM. Tt kehoitetaan ankarasti vlttmn. Exim ei voi toimittaa postia "
+"pkyttjn ja tallettaa postit /var/mail/mail-tiedostoon. Huomaa mys "
+"kyttjtunnukset kirjoitettavan pienill kirjaimilla. "
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "Tahdotko tuhota vanhan /etc/aliases-tiedoston?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"Tiedosto /etc/aliases on jo olemassa, mutta se ei ohjaa pkyttjn postia "
+"tavallisen kyttjn shkpostilaatikkoon. Tt ohjausta suositellaan "
+"vakavasti. Jos hyvksyt tiedoston pllekirjoituksen, vanha tiedosto "
+"silytetn ja nimetn aliases.O. "
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr "IP-osoitteet joilla kuunnellaan sisntulevia SMTP-yhteyksi:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"Kirjoita kaksoispisten eroteltu lista IP-osoitteita joita kuunnellaan. IPv6 "
+"osoitteissa on kaksoispisteet kahdennettava (esim. 5f03::1200::836f::::)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+"Jos jtt tmn tyhjksi, Exim kuuntelee yhteyksi SMTP-porttiin kaikilla "
+"verkkorajapinnoilla."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"Jos tm kone ei vastaanota shkpostia suoraan SMTP:ll MUILTA koneilta, "
+"ainoastaan paikallisilta palveluilta kuten fetchmail tai "
+"shkpostiohjelmalta (MUA) joka keskustelee localhostin kanssa, olisi "
+"Eximilt kiellettv ulkoiset yhteydet asettamalla tm valitsin arvoon "
+"127.0.0.1 ja siten estmll kuuntelu ulkomaailmalle avoimilla "
+"verkkorajapinnoilla."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr ""
+"Tee mahdollisimman vhn DNS-kyselyit (tarvittaessa avattava soittoyhteys)?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"Tavallisessa toimintatilassa Exim tekee DNS-kyselyit kynnistyessn, "
+"vastaanottaessaan tai toimittaessaan viestej, jne. Tietoja kytetn lokin "
+"kirjoittamiseen ja vlttmn asetustiedostoihin kirjoitettuja IP-numeroita. "
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"Tm kone voisi olla ilman pysyv yhteytt DNS-nimipalveluun kun kytetn "
+"tarvittaessa avattavaa soittoyhteytt. Tll saattaisi olla ei-toivuttu "
+"seuraus eximi kynnistettess tai postijonoa ksiteltess (vaikka siin "
+"ei olisikaan yhtn viesti) kun se aiheuttaisi kalliin soittoyhteyden "
+"avaamisen. "
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+"Kyt tt ominaisuutta jos soittoyhteys avataan tarvittaessa. Muussa "
+"tapauksessa ota se pois plt."
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "Tehdn Exim v4:n asetuksia (exim4-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "Jaetaanko asetukset pieniin tiedostoihin?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"Debianin exim4-paketit voivat tallettaa asetukset joko yhteen\n"
+"yhteiseen tiedostoon (/etc/exim4/exim4.conf.template) tai noin 40\n"
+"pieneen tiedostoon hakemistossa /etc/exim4/conf.d/ joista lopulliset\n"
+"asetukset tuotetaan."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"Ensimminen sopii paremmin isoihin muutoksiin ja on yleisesti ottaen\n"
+"vakaampi, kun taas jlkimminen tarjoaa mukavan tavan tehd pieni\n"
+"muutoksia mutta on helposti srkyv ja voi menn rikki jos asetuksia\n"
+"muutetaan runsaasti."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr "Jos olet epvarma ei pitisi jakaa asetuksia erillisiin tiedostoihin."
+
+#~ msgid "internet, smarthost, satellite, local, none"
+#~ msgstr "internet, smarthost, satelliitti, paikallinen, ei mitn"
+
+#~ msgid ""
+#~ "You must choose one of the options below as configuration type for the "
+#~ "Exim mail transport agent:"
+#~ msgstr ""
+#~ "Alla olevista shkpostin vlitysohjelman (MTA) asetusten tyypeist on "
+#~ "yksi valittava."
+
+#~ msgid ""
+#~ "Internet site - mail is sent and received directly using SMTP. If your "
+#~ "needs don't fit neatly into any category, you probably want to start with "
+#~ "this one and then edit the config file by hand."
+#~ msgstr ""
+#~ "Internetiin kytketty kone - shkposti lhetetn ja vastaanotetaan "
+#~ "suoraan kytten SMTP:t. Mikli kytttarkoituksesi ei sovi mihinkn "
+#~ "valmiiseen vaihtoehtoon, halunnet aloittaa tll ja muokata "
+#~ "asetustiedostoa itse."
+
+#~ msgid ""
+#~ "Internet site using smarthost - You receive Internet mail on this "
+#~ "machine, either directly by SMTP or by running a utility such as "
+#~ "fetchmail. Outgoing mail is sent using a smarthost. optionally with "
+#~ "addresses rewritten. This is probably what you want for a dialup system."
+#~ msgstr ""
+#~ "Internetiin kytketty kone joka kytt smarthostia - Internetist tulevaa "
+#~ "shkpostia vastaanotetaan tll koneella, joko suoraan SMTP:ll tai "
+#~ "kyttmll fetchmail:in tapaista tykalua. Lhtev posti menee "
+#~ "smarthostille, haluttaessa kytten osoitteiden uudelleenkirjoitusta. "
+#~ "Tm on se mit hallunnet jos kytt soittoyhteytt."
+
+#~ msgid ""
+#~ "Satellite system - All mail is sent to another machine, called a \"smart "
+#~ "host\" for delivery. root and postmaster mail is delivered according to /"
+#~ "etc/aliases. No regular mail is delivered locally."
+#~ msgstr ""
+#~ "Satelliitti - Kaikki posti lhetetn toiselle smarthostiksi kutsutulle "
+#~ "koneelle perille toimitettavaksi. Tunnusten root ja postmaster shkposti "
+#~ "jaellaan /etc/aliases-tiedoston mukaisesti. Tavallista postia ei jaeta "
+#~ "paikallisesti."
+
+#~ msgid ""
+#~ "Local delivery only - You are not on a network. Mail for local users is "
+#~ "delivered."
+#~ msgstr ""
+#~ "Vain paikallinen shkpostien toimitus - Verkkoyhteytt ei ole. "
+#~ "Shkpostit toimitetaan koneen paikallisille kyttjille. "
diff --git a/debian/po/fr.po b/debian/po/fr.po
new file mode 100644
index 0000000..05f3aa5
--- /dev/null
+++ b/debian/po/fr.po
@@ -0,0 +1,632 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: exim4-config\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-01-08 18:38+0100\n"
+"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr "Faut-il supprimer les courriels non distribus du tampon d'envoi?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"Des courriels non distribus ont t trouvs dans le tampon d'envoi /var/"
+"spool/exim4/input. Vous pouvez les conserver au cas o vous rinstalleriez "
+"Exim plus tard, ou les supprimer."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr ""
+"Faut-il dplacer les courriels en attente dans le tampon d'exim(v3) vers "
+"celui d'exim4?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"Des courriels non distribus se trouvent dans le tampon d'envoi d'exim ou "
+"exim-tls (/var/spool/exim/input/). Ils peuvent tre dplacs dans le tampon "
+"d'envoi d'exim4 (/var/spool/exim4/input) o ils pourront tre traits par "
+"exim4."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+"Cette opration est sens unique: exim4 peut grer le contenu du tampon "
+"d'attente d'exim(v3) alors que le contraire est impossible."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"N'acceptez le dplacement que si vous ne prvoyez pas de revenir exim(v3). "
+"Dans le cas contraire, veuillez dplacer vous-mme les fichiers aprs avoir "
+"converti votre configuration."
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr "Distribution directe par SMTP (site Internet)"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr "Envoi via relais (smarthost) - rception SMTP ou fetchmail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "Envoi via relais (smarthost) - pas de courrier local"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "Distribution locale seulement (pas de rseau)"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr "Conversion manuelle depuis une configuration spcifique d'Exim v3"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "Pas de configuration maintenant"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "Type gnral de configuration:"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+"Plusieurs types gnraux de configuration du serveur de courrier sont "
+"possibles. Veuillez choisir celle qui correspond le mieux vos besoins."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"Les systmes utilisant des adresses IP dynamiques, y compris les systmes "
+"connects par intermittence, doivent le plus souvent tre configurs pour "
+"envoyer les courriels sortant une autre machine qui sert de relais "
+"(smarthost). Vous pouvez choisir de recevoir du courriel sur de tels "
+"systmes ou bien de n'effectuer aucune distribution locale sauf pour "
+"root et postmaster."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "Souhaitez-vous configurer Exim4 vous-mme?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+"Vous avez indiqu possder une configuration spcifique d'Exim3. Si vous "
+"souhaitez la convertir au format de la version4, vous devriez utiliser "
+"l'outil exim_convert4r4(8) aprs l'installation. Veuillez consulter les "
+"fichiers /usr/share/doc/exim4-base/examples/example.conf.gz et /usr/share/"
+"doc/exim4-base/README.Debian.gz."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+"Tant qu'il ne sera pas configur, votre serveur de courrier ne sera pas en "
+"tat de fonctionner et ne pourra pas tre utilis tel quel."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "Faut-il vraiment laisser le serveur de courrier non configur?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"Tant qu'il ne sera pas configur, votre serveur de courrier ne sera pas en "
+"tat de fonctionner et sera inutilisable en l'tat. Vous pouvez bien sr le "
+"configurer vous-mme plus tard ou utiliser la commande dpkg-reconfigure "
+"exim4-config avec les privilges du super-utilisateur."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "Nom de courriel du systme:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"Votre nom de courriel est la partie de l'adresse contenant le nom de "
+"machine qui doit tre crite sur les courriers lectroniques ou sur les "
+"articles des forums de discussion que vous postez. Il vient la suite du "
+"nom d'utilisateur et du caractre @."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"D'autres programmes qu'Exim se servent de ce nom; il doit correspondre au "
+"domaine unique et compltement qualifi (FQDN) d'o le courrier semblera "
+"provenir."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"Si vous configurez ce systme comme un systme satellite, ce nom "
+"n'apparatra pas dans l'en-tte From: des courriels car une rcriture "
+"aura lieu."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "Autres destinations dont le courriel doit tre accept:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"Veuillez indiquer une liste des domaines pour lesquels cette machine est la "
+"destination finale. N'indiquez pas le nom de courriel (${mailname}) ou "
+"localhost."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"Par dfaut, tous les domaines seront traits l'identique. Si vous "
+"souhaitez traiter un domaine d'une manire diffrente, vous devrez modifier "
+"les fichiers de configuration ultrieurement."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+"S'il en existe d'autres, veuillez les indiquer ici, spars par le caractre "
+"deux-points. Vous pouvez laisser ce champ vide s'il n'en n'existe pas."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "Domaines relayer:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr ""
+"Veuillez indiquer les domaines pour lesquels vous acceptez de relayer le "
+"courriel."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"Il s'agit de domaines pour lesquels vous acceptez de relayer les courriels, "
+"c'est--dire acceptez tout ce qui leur est destin et mis depuis tout site "
+"sur l'Internet. N'indiquez pas les domaines locaux ici."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr ""
+"Les domaines indiqus ici doivent tre spars par des caractres deux-"
+"points. Vous pouvez utiliser des caractres joker."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "Machines relayer:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr ""
+"Veuillez indiquer ici les rseaux de machines locales pour lesquels vous "
+"acceptez de relayer le courriel."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+"Bien entendu, toutes les machines qui utiliseront ce systme comme relais "
+"doivent tre exclues du contrle de relais puisque le rle de ce serveur est "
+"justement de relayer le courriel qu'elles mettent."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"Si vous souhaitez en mentionner, indiquez-les ici, spars par des "
+"caractres deux-points. Vous devez utiliser le format normalis adresse/"
+"masque (p. ex. 194.222.242.0/24)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+"Les caractres deux-points des adresses IPv6 doivent tre doubls (p. "
+"ex. 5f03::1200::836f::::/48)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "Nom de domaine pour les utilisateurs locaux:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"Ce systme tant un satellite, il est ncessaire d'indiquer le nom de "
+"domaine utiliser pour les courriels des utilisateurs locaux. Il s'agit "
+"habituellement du nom de la machine qui reoit normalement leurs courriels."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr "O les utilisateurs liront-ils leurs courriels?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr "Relais de courriel (smarthost) pour cet hte:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr ""
+"Veuillez indiquer le nom d'hte de la machine qui sera envoy le courriel "
+"sortant."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"Veuillez consulter /usr/share/doc/exim4-base/README.SMTP-AUTH pour plus "
+"d'informations sur l'authentification SMTP."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "Destinataire des courriels de root et postmaster:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"Les courriels pour les comptes postmaster et root sont gnralement "
+"redirigs vers un ou plusieurs comptes d'utilisateurs, ceux des "
+"administrateurs systme actuels. Par dfaut, les courriels de postmaster "
+"et de plusieurs comptes systme seront redirigs vers root et ceux de "
+"root vers un utilisateur sans privilges. Ce rglage peut tre chang en "
+"modifiant /etc/aliases."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"Veuillez noter que les courriels de postmaster devraient gnralement "
+"tre lus sur le systme local, plutt que redirigs vers un autre systme. "
+"En consquence, les utilisateurs que vous indiquez ne devraient pas "
+"rediriger leurs courriels vers une autre machine (au moins l'un d'entre eux)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"Vers quel(s) compte(s) faut-il rediriger les courriels de l'administrateur "
+"systme? Veuillez indiquer un ou plusieurs identifiants, spars par des "
+"espaces ou des virgules. Indiquez None si vous ne souhaitez pas "
+"rediriger les courriels (cela est fortement dconseill: exim ne peut pas "
+"dlivrer les courriels avec les privilges du super-utilisateur et les "
+"sauvera alors dans /var/mail/mail). Les identifiants indiqus doivent tre "
+"entirement en minuscules."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "Faut-il rcrire /etc/aliases?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"Un fichier /etc/aliases existe dj, mais ne redirige pas les courriels du "
+"super-utilisateur (root) vers un compte d'utilisateur comme il est "
+"recommand. Si vous choisissez de le rcrire, l'ancien fichier sera "
+"conserv sous le nom aliases.O."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr ""
+"Liste d'adresses IP o Exim sera en attente de connexions SMTP entrantes:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"Veuillez indiquer une liste d'adresses IP spares par le caractre deux-"
+"points pour lesquelles Exim sera en attente de connexions entrantes. Les "
+"caractres deux-points des adresses IPv6 doivent tre doubls (p. ex. "
+"5f03::1200::836f::::)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+"Si vous laissez cette entre vide, Exim sera l'coute sur le port SMTP de "
+"toutes les interfaces rseau disponibles."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"Si cette machine ne reoit pas directement de courrier par SMTP depuis "
+"d'AUTRES htes, mais seulement via des services locaux comme le programme "
+"fetchmail ou votre agent utilisateur de courriel (MUA: Mail User Agent) "
+"qui envoient localhost, vous devriez interdire les connexions externes "
+"en indiquant 127.0.0.1 ici, ce qui dsactive les connexions entrantes sur "
+"les interfaces rseau publiques."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr "Faut-il minimiser les requtes DNS (connexions la demande)?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"En fonctionnement normal, Exim effectue ses requtes DNS au dmarrage, lors "
+"de la rception ou de la distribution de messages, etc. Cela est destin "
+"la journalisation et permet de minimiser le nombre de valeurs codes en dur "
+"dans le fichier de configuration."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"Si cet hte n'a pas de connexion permanente vers un serveur de noms et "
+"utilise des connexions la demande, cela peut avoir comme consquence que "
+"le lancement d'exim ou le traitement de la file d'attente (mme sans "
+"messages en attente) peut gnrer de coteuses connexions."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+"Cette fonctionnalit ne devrait tre active que pour les htes utilisant "
+"une connexion la demande."
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "Configuration d'Exim v4 (exim4-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "Faut-il sparer la configuration dans plusieurs fichiers?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"Les paquets Debian d'Exim4 peuvent utiliser soit un unique fichier "
+"monolithique (/etc/exim4/exim4.conf.template), soit environ quarante petits "
+"fichiers dans /etc/exim4/conf.d/ pour gnrer la configuration finale."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"Une configuration un seul fichier est plus adapte aux modifications "
+"importantes et est gnralement plus stable alors qu'une configuration "
+"clate se prte mieux aux petites modifications mais est plus fragile "
+"notamment si elle est notablement modifie."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr "Dans le doute, vous devriez viter de sparer la configuration."
+
+#~ msgid ""
+#~ "internet site; mail is sent and received directly using SMTP, mail sent "
+#~ "by smarthost; received via SMTP or fetchmail, mail sent by smarthost; no "
+#~ "local mail, local delivery only; not on a network, manually convert from "
+#~ "handcrafted Exim v3 configuration, no configuration at this time"
+#~ msgstr ""
+#~ "Distribution directe par SMTP (site Internet), Envoi via relais "
+#~ "(smarthost) - rception SMTP ou fetchmail, Envoi via relais "
+#~ "(smarthost) - pas de courrier local, Distribution locale seulement "
+#~ "(pas de rseau), Conversion manuelle depuis une configuration spcifique "
+#~ "d'Exim v3, Pas de configuration maintenant"
diff --git a/debian/po/it.po b/debian/po/it.po
new file mode 100644
index 0000000..598e97c
--- /dev/null
+++ b/debian/po/it.po
@@ -0,0 +1,597 @@
+# Italian messages for exim4 (debconf templates).
+# Copyright © 2004 Software in the Public Interest, Inc.
+# Danilo Piazzalunga <danilopiazza@libero.it>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: exim4 4.30-8\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-03-13 16:30+0100\n"
+"Last-Translator: Danilo Piazzalunga <danilopiazza@libero.it>\n"
+"Language-Team: Italian <tp@lists.linux.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: KBabel 1.3\n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr "Rimuovere la posta non consegnata dalla directory di spool?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"Ci sono dei messaggi in /var/spool/exim4/input, la directory di spool di "
+"exim, che non sono stati ancora consegnati. È possibile tenerli, caso mai in "
+"futuro si decida di reinstallare Exim, oppure eliminarli."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr ""
+"Spostare la posta non ancora consegnata dallo spool di exim(v3) a quello di "
+"exim4?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"Ci sono dei messaggi non ancora consegnati in /var/spool/exim/input, la "
+"directory di spool di exim o di exim-tls; spostandoli in /var/spool/exim4/"
+"input, lo spool di exim4, si può fare in modo che quest'ultimo li prenda in "
+"consegna."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr "Attenzione: exim4 può gestire lo spool di exim(v3), ma non viceversa."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"Si consiglia di spostare i messaggi solo se si è sicuri di non tornare a "
+"usare exim(v3); in caso contrario, la posta non va spostata ora, ma "
+"manualmente dopo aver completato la migrazione."
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr "sito internet; posta inviata e ricevuta direttamente con SMTP"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr "posta inviata tramite uno smarthost; ricevuta via SMTP o fetchmail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "posta inviata tramite uno smarthost; niente posta locale"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "solo consegna locale; non in rete"
+
+# NdT: «personalizzata» != «handcrafted», ma «artigianale» proprio non va ;-)
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr "conversione manuale dalla configurazione personalizzata di Exim v3"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "nessuna configurazione per il momento"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "Tipo di configurazione del sistema di posta:"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+"Sono possibili diversi tipi di configurazione del sistema di posta. "
+"Selezionare quello che si adatta meglio alle proprie esigenze."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"I sistemi con un indirizzo IP dinamico, compresi i sistemi dialup, vanno "
+"probabilmente configurati per inviare la posta in uscita a un'altra "
+"macchina, chiamata «smart host», che si occupi della consegna. Si può "
+"scegliere di ricevere la posta su un sistema del genere o di non abilitare "
+"la consegna locale, fatta eccezione per root e postmaster."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "Configurare manualmente Exim4?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+"È stato indicato che si possiede una configurazione personalizzata di Exim "
+"3. Per convertirla nel formato di Exim 4, si può usare exim_convert4r4(8) "
+"dopo l'installazione. Consultare /usr/share/doc/exim4-base/examples/example."
+"conf.gz e /usr/share/doc/exim4-base/README.Debian.gz."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+"Fino a quando non viene configurato, il sistema di posta non funziona e non "
+"può essere usato."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "Lasciare il sistema di posta non configurato?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"Fino a quando non viene configurato, il sistema di posta non funziona e non "
+"può essere usato. Naturalmente è possibile configurarlo in un secondo "
+"momento, manualmente oppure tramite «dpkg-reconfigure exim4-config» da root."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "Mail name del sistema:"
+
+# NdT: ho dovuto riformulare la frase per non «tagliare» informazioni.
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"Il «mail name» del sistema è la porzione di indirizzo che indica il nome "
+"host, ossia quella che appare dopo il nome utente e il segno «@»; essa è "
+"presente in tutti i messaggi di news e di posta in uscita."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"Questo nome verrà usato da altri programmi oltre a Exim; esso rappresenta il "
+"nome completo del dominio (FQDN) che apparirà come provenienza della posta."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"Se si sta configurando questo sistema come «satellite», questo nome non "
+"comparirà nel campo «From:» dei messaggi, poiché viene riscritto."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "Altre destinazioni per conto delle quali accettare posta:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"Inserire un elenco di domini, oltre a ${mailname} e «localhost», per i quali "
+"questo sistema deve considerare se stesso come destinazione."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"Nella configurazione predefinita, tutti i domini vengono trattati allo "
+"stesso modo. Se si desidera altrimenti, è necessario modificare i file di "
+"configurazione in seguito."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+"Se ce ne sono altri, inserirli qui, separati da due punti (\":\"). Se non ce "
+"ne sono, lasciare questo campo vuoto."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "Domini per i quali fare il relaying:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr ""
+"Inserire l'elenco dei domini per i quali si accetta di fare il relaying "
+"della posta."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"Tale elenco contiene i domini per conto dei quali si è disposti ad accettare "
+"posta proveniente da qualsiasi nodo di Internet. I domini locali non vanno "
+"indicati qui."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr ""
+"I domini inseriti devono essere separati da due punti (\":\"). È possibile "
+"usare caratteri jolly."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "Sistemi per i quali fare il relaying:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr ""
+"Inserire le reti di computer locali per i quali si accetta di fare il "
+"relaying della posta."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+"Ovviamente, ogni macchina che usa questo sistema come smarthost deve essere "
+"esclusa dai controlli sul relaying, dal momento che il solo scopo per usare "
+"questo host è ottenere il relaying della posta."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"Inserire eventuali indirizzi, separati da due punti (\":\"), usando il "
+"formato standard indirizzo/lunghezza (ad esempio 194.222.242.0/24)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+"È necessario raddoppiare i due punti (\":\") negli indirizzi IPv6 (ad "
+"esempio 5f03::1200::836f::::/48)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "Nome di dominio per gli utenti locali:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"Dato che questo è un sistema satellite, bisogna specificare il nome di "
+"dominio da usare per la posta proveniente dagli utenti locali; tipicamente "
+"si tratta del sistema sul quale normalmente gli utenti ricevono la posta."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr "Su quale sistema riceveranno la posta gli utenti locali?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr "Sistema che gestisce la posta in uscita per questo host (smarthost):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr ""
+"Inserire il nome host del sistema a cui viene inviata la posta in uscita."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"Fare riferimento a /usr/share/doc/exim4-base/README.SMTP-AUTH per "
+"indicazioni su come impostare l'autenticazione SMTP."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "Destinatari della posta di root e postmaster:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"La posta per gli account «postmaster» e «root» viene solitamente inoltrata "
+"verso uno o più account utente appartenenti ai veri amministratori di "
+"sistema. L'impostazione predefinita, che può essere cambiata modificando /"
+"etc/aliases, prevede che la posta di «postmaster» e di altri account di "
+"sistema sia spedita a «root» e da lì mandata a un utente reale."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"I messaggi per postmaster dovrebbero essere letti sul sistema a cui sono "
+"destinati e non inoltrati altrove; pertanto, almeno uno degli utenti scelti "
+"dovrebbe ricevere la propria posta su questo sistema."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"A quali utenti va mandata la posta per l'amministratore di sistema? Inserire "
+"uno o più nomi utente separati da virgole o spazi. Inserire «none» se non si "
+"desidera inoltrare la posta. N.B.: una simile scelta è fortemente "
+"sconsigliata. Exim non può effettuare consegne come root e salverebbe la "
+"posta in /var/mail/mail. Ricordarsi inoltre di usare le lettere minuscole "
+"per i nomi utente."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "Sovrascrivere /etc/aliases?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"Il file /etc/aliases esiste già, ma manca l'inoltro della posta per root "
+"verso l'account di un utente (opzione fortemente raccomandata). Se si "
+"accetta di sovrascriverlo, il vecchio file verrà mantenuto col nome di "
+"aliases.O."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr "Indirizzi IP sui quali attendere connessioni SMTP in ingresso:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"Inserire un elenco di indirizzi IP sui quali porsi in ascolto. È necessario "
+"raddoppiare i due punti (\":\") negli indirizzi IPv6 (ad esempio "
+"5f03::1200::836f::::)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+"Se non viene specificato alcun valore, Exim si pone in ascolto sulla porta "
+"SMTP di tutte le interfacce di rete disponibili."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"Se questo computer non riceve e-mail direttamente tramite SMTP da ALTRI "
+"host, ma solo da servizi locali, come fetchmail o un client di posta (MUA) "
+"che si interfaccia con localhost, è preferibile proibire connessioni "
+"dall'esterno verso Exim impostando questa opzione a \"127.0.0.1\", "
+"disabilitando quindi l'ascolto su interfacce di rete pubbliche."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr "Mantenere al minimo il numero di richieste DNS (Dial-on-Demand)?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"Nella modalità predefinita, Exim esegue delle richieste DNS all'avvio, "
+"quando riceve e consegna un messaggio e in altre occasioni, allo scopo di "
+"redigere dei log accurati e di ridurre al minimo il numero di valori fissi "
+"scritti nel file di configurazione."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"Nel caso di un host senza accesso permanente a un server DNS e con il Dial-"
+"on-Demand abilitato, è possibile che si abbia come conseguenza indesiderata "
+"l'attivazione della connessione dial-up in seguito all'avvio di exim o al "
+"controllo della coda (anche se non ci sono messaggi da inviare)."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+"Abilitare questa opzione se si usa il Dial-on-Demand, altrimenti lasciarla "
+"disabilitata."
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "Configurazione di Exim v4 (exim4-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "Dividere la configurazione in molti piccoli file?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"I pacchetti Debian di exim4 possono generare la configurazione finale a "
+"partire da un file di configurazione monolitico (/etc/exim4/exim4.conf."
+"template), oppure da 40 piccoli file in /etc/exim4/conf.d."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"La prima alternativa è migliore in caso di grosse modifiche ed è "
+"generalmente più stabile, l'altra è più comoda per fare piccole modifiche ma "
+"è più fragile e potrebbe dare problemi se si apportano modifiche sostanziali."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr "In caso di dubbio, è preferibile non dividere la configurazione."
diff --git a/debian/po/ja.po b/debian/po/ja.po
new file mode 100644
index 0000000..277bde2
--- /dev/null
+++ b/debian/po/ja.po
@@ -0,0 +1,599 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: exim4 4.24-1\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-01-08 23:38+0900\n"
+"Last-Translator: Kenshi Muto <kmuto@debian.org>\n"
+"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=EUC-JP\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr "סǥ쥯ȥˤ̤Υ᡼ޤ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"exim סǥ쥯ȥ /var/spool/exim4/input ˤޤƤʤ᡼"
+"ޤExim 򤢤ȤǺƥ󥹥ȡ뤹ΤǤСΤޤޤˤƤ"
+"Ǥޤ뤳ȤǤޤ"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr "exim(v3) exim4 Υס̤Υ᡼ưޤ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"exim ޤ exim-tlsΥסǥ쥯ȥ /var/spool/exim/input ˤޤ"
+"Ƥʤ᡼뤬ޤexim4 ѤǤ褦 exim4 Υס (/var/"
+"spool/exim4/input/) ˺ưǤޤ"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+"exim4 exim(v3) Υס򰷤ޤεդϤǤʤ̹ԤǤƯ"
+"ȤդƤ"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"exim(v3) ͤʤȤΤߡ᡼ưƤʤС"
+"᡼򺣰ưåȥåפѹƼưǹԤäƤߤ٤Ǥ"
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr "󥿡ͥåȥ; ᡼ SMTP Ȥäľ"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr "ޡȥۥȤǥ᡼; SMTP ޤ fetchmail Ǽ"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "ޡȥۥȤǥ᡼; ᡼ʤ"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "ۿΤ; ͥåȥʤ"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr " Exim v3 ưѴ"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "ꤷʤ"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "᡼ΰŪʥ:"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+"᡼륷ƥΤĤΰŪʥפѤǤޤɬפȤ"
+"˺ŬȻפΤ1򤷤Ƥ"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"륢åץƥʤɤưŪ IP ɥ쥹ΥƥǤϡ餯Ф"
+"᡼ۿΤ̤Υޥ (֥ޡȥۥȡפȸƤФ) 褦"
+"٤Ǥ礦Τ褦ʥƥǥ᡼뤫root postmaster "
+"Υ᡼᡼ۿʤǤޤ"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "Exim4 ưꤷޤ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+" Exim 3 ꤬ޤ Exim 4 Ѵˤϡ󥹥ȡΤ"
+"Ȥ exim_convert4r4(8) ġȤȤǤޤ/usr/share/doc/exim4-"
+"base/examples/example.conf.gz /usr/share/doc/exim4-base/README.Debian."
+"gz 褯ɤǤ!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+"᡼륷ƥबꤵޤǡ᡼륷ƥϲ줿֤ѤǤޤ"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "˥᡼륷ƥ̤Τޤޤˤޤ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"᡼륷ƥबꤵޤǡ᡼륷ƥϲ줿֤ѤǤʤ"
+"Ȥʤޤ󡢤ȤǼưǡޤ root Ȥ \"dpkg-reconfigure "
+"exim4-config\" ¹Ԥ뤳ȤǤޤ"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "ƥ᡼̾:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"\"᡼̾\" ϡФ˥塼ӥ᡼Υå (桼̾ @ "
+"ΤȤդ) ɽ륢ɥ쥹Υۥ̾ʬǤ"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"̾ Exim ǤʤۤΥץˤäƤȤޤϡ᡼"
+"뤬Ф뤳Ȥˤʤñδɥᥤ̾ (FQDN) ˤ٤"
+""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"Υƥ 'ƥ饤' ȤꤷƤΤǤС̾ϥ᡼ "
+"From: Ԥˤϸ줺񤭴줿ΤȤޤ"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "᡼뤽¾ΰ:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"᡼̾ (${mailname}) \"localhost\" Υޥ󤬺ǽŪʰ"
+"ȸʤ٤ɥᥤΥꥹȤϤƤ"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"ǥեȤǤϡ٤ƤΥɥᥤƱΤΤȤưޤۤʤɥᥤ"
+"̾ۤʤΤȤưȤˤϡե򤢤ȤԽɬפ"
+"ޤ"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+"ʣΤǤСǶڤäϤƤʤжΤޤޤ"
+"Ƥޤ"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "᡼졼ɥᥤ:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr "᡼졼뤳Ȥդɥᥤ򤳤ϤƤ"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"Υɥᥤϡ󥿡ͥåȾΤɤΥ᡼դ褦ˤƤ"
+"ɥᥤǤɥᥤϤ˵ҤʤǤ"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr "ϤɥᥤϥǶڤޤ磻ɥɤѤǤޤ"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "᡼졼ޥ:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr ""
+"᡼졼뤳ȤޥΥͥåȥ򤳤ϤƤ"
+""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+"ʤ顢Υޥ򥹥ޡȥۥȤȤƻȤޥϤ٤ơ졼椫"
+"ɬפޤ (ΥޥȤäƥ᡼إ졼뤳Ȥ"
+"ʤäƤޤޤ)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"ʣȤˤϡǶڤäϤޤɸŪʥɥ쥹/ĹΥե"
+"ޥåȤѤ٤Ǥ (Ȥ 194.222.242.0/24)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+"IPv6 ɥ쥹ǤϡŤͤɬפޤ (Ȥ "
+"5f03::1200::836f::::/48)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "桼Υɥᥤ̾:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"ƥ饤ȥƥˤ褦ȤƤΤǡ桼Υ᡼˻Ȥ"
+"ᥤ̾ꤹɬפޤŵŪʤΤϡ̾濫ʤΥ᡼"
+"ޥǤ"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr "桼᡼ɤϤɤǤ?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr "ΥۥȤФ줿᡼ޥ (ޡȥۥ):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr "Х᡼뤬ޥΥۥ̾ϤƤ"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"SMTP ǧڤΥåȥåפˤĤƵҤƤ /usr/share/doc/exim4-base/README."
+"SMTP-AUTH 򻲾ȤƤ"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "root postmaster Υ᡼:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"\"postmaster\" \"root\" ȤؤΥ᡼̾ºݤΥƥԤ"
+" 1 ͰʾΥ桼ȤžޤǥեȤǤϡ\"postmaster"
+"\" ӤĤΥƥॢȤؤΥ᡼ \"root\" ž褦"
+"åȥåפƤꡢ\"root\" ؤΥ᡼ϼºݤΥ桼žޤ"
+" /etc/aliases Խ뤳ȤѹǤޤ"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"postmaster ؤΥ᡼̾ۤξž⥷ƥľɤޤ"
+"ΤǤ٤ȤդƤΤᡢ򤹤桼 (ʤȤ⤽"
+"Τ 1 ) ϡΥޥγؤžˤʤۤ褤Ǥ礦"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"ƥԤΥ᡼ɤΥ桼Ȥޤ? ڡޤϥ"
+"ޤǶڤä 1 ͰʾΥ桼̾ϤƤ⤷᡼ž˾ޤʤ"
+"ΤǤС\"none\" ϤƤդƤ! ϶ȿФ"
+"Exim root Ȥ¹Ԥ᡼ /var/mail/mail ¸ޤ"
+"ޤ桼̾ϾʸǤ٤Ǥ!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "¸ /etc/aliases 񤭤ޤ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"Ǥ /etc/aliases ե뤬ޤ root ؤΥ᡼桼"
+"Ȥž (϶侩ޤ) Ƥޤ󡣾񤭤ĤƤ⡢Ť"
+"ե alias.O ̾ѹ¸ޤ"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr "¦ SMTP ³ꥹ󤹤 IP ɥ쥹:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"ꥹ󤹤 IP ɥ쥹ΥꥹȤ򥳥ǶڤäϤƤIPv6 ɥ"
+"ǤϥŤˤɬפޤ (Ȥ 5f03::1200::836f::::)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+"ͤˤȡExim Ϥ٤ƤѲǽʥͥåȥ󥿡ե "
+"SMTP ݡȤ³ꥹ󤷤ޤ"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"Υԥ塼ۤΥۥȤ SMTP Żҥ᡼ľܼ餺"
+"ۥȤȤꤹ fetchmail 䤢ʤŻҥ᡼ץ (MUA) Τ褦"
+"ʥ륵ӥΤ߼ΤǤСͤ 127.0.0.1 ꤷ"
+"˥ѥ֥åʥͥåȥ󥿡եΥꥹ˥󥰤̵ˤ뤳Ȥ "
+"Exim ؤγ³ػߤ٤Ǥ"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr "DNS οǾ¤αޤ (륪ǥޥ)?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"̾ư⡼ɤǤϡExim DNS ååפưå"
+"ʤɤκݡӤϿ뤿˹Ԥե˥ϡɥɤ줿"
+"οǾͤݻޤ"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"륪ǥޥɤȤ褦ʱ³Ū DNS ͡ॵФؤΥʤΥۥ"
+"Ȥξ硢exim εư䥭塼μ¹Ի (ԵΥåʤȤǤ) "
+" (⤯Ĥ) 륢åץ٥ȤȤ˾ޤʤ̤Ȥʤ"
+"Ǥ礦"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+"륪ǥޥɤȤΤǤСεǽͭˤޤǤʤ"
+"С̵ˤޤ"
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "Exim v4 ꤷƤޤ (exim4-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "򾮤ʥեʬ䤷ޤ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"Debian exim4 ѥåϡñΥե (/etc/exim4/exim4.conf."
+"template) Ǥ⡢ǽŪ뤿˻Ȥ /etc/exim4/conf.d/ ֤ "
+"40 ξʥեǤѤǤޤ"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"Ԥ礭ѹ򤹤Τ˸ƤꡢŪˤꤷƤΤФ"
+"ϾѹԤΤ˳ڤˡ󶡤ޤ (ȤϰϤѹDz"
+"⤷ޤ)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr "褯狼ʤСʬϤʤۤ褤Ǥ礦"
+
+#~ msgid ""
+#~ "internet site; mail is sent and received directly using SMTP, mail sent "
+#~ "by smarthost; received via SMTP or fetchmail, mail sent by smarthost; no "
+#~ "local mail, local delivery only; not on a network, manually convert from "
+#~ "handcrafted Exim v3 configuration, no configuration at this time"
+#~ msgstr ""
+#~ "󥿡ͥåȥ; ᡼ SMTP Ȥäľ, ޡȥۥ"
+#~ "Ȥǥ᡼; SMTP ޤ fetchmail Ǽ, ޡȥۥȤǥ᡼"
+#~ "; ᡼ʤ, ۿΤ; ͥåȥʤ, Exim "
+#~ "v3 ưѴ, ꤷʤ"
diff --git a/debian/po/lt.po b/debian/po/lt.po
new file mode 100644
index 0000000..60f1a66
--- /dev/null
+++ b/debian/po/lt.po
@@ -0,0 +1,592 @@
+# translation of exim4.po to Lithuanian
+# Kęstutis Biliūnas <kebil@kaunas.init.lt>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: exim4\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-03-21 11:02+0200\n"
+"Last-Translator: Kęstutis Biliūnas <kebil@kaunas.init.lt>\n"
+"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+"X-Generator: KBabel 1.3.1\n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr "Ar pašalinti neišsiųstą paštą pašto eilės kataloge?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"Pašto eilės kataloge /var/spool/exim4/input yra kolkas neišsiųstų laiškų. "
+"Jūs galite išsaugoti juos tam atvejui, jei nuspręstumėte vėliau vėl įdiegti "
+"Exim, arba galite pasirinkti neišsiųsto pašto pašalinimą."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr "Ar perkelti neišsiųstus laiškus iš exim(v3) į exim4 pašto eilę?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"Pašto eilės kataloge /var/spool/exim/input yra programos exim arba exim-tls "
+"kolkas neišsiųstų laiškų. Juos dabar galima perkelti į exim4 pašto eilę (/"
+"var/spool/exim4/input/), kur jie bus apdorojami programa exim4."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+"Žinokite, kad tai veikia tik viena kriptimi, t.y. exim4 gali apdoroti "
+"programos exim(v3) pašto eilę, bet ne atvirkščiai."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"Perkelkite laiškus tik tuo atveju, jei neplanuojate grįžti atgal prie exim"
+"(v3), kitu atveju laiškai turi būti perkelti ne dabar, bet rankiniu būdu, po "
+"to kai konvertuosite nustatymus."
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr "interneto saitas; pašto siuntimas ir ėmimas tiesiogiai SMTP protokolu"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr "pašto siuntimas per smarthost; priėmimas per SMTP arba fetchmail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "pašto siuntimas per smarthost; nėra lokalaus pašto"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "tik lokalus pristatymas; tinklo nėra"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr "Exim v3 konfigūracijos rankinis konvertavimas"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "nėra konfigūracijos šiuo metu"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "Bendras pašto konfigūracijos tipas:"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+"Egzistuoja keletas bendrų pašto konfigūracijos tipų. Pasirinkite vieną iš "
+"jų, geriausiai atitinkantį Jūsų poreikius."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"Sistemos su dinaminiu IP adresu, įskaitant sistemas su komutuojamom telefono "
+"linijom, greičiausiai turėtų būti konfigūruotos siųsti išeinantį paštą kitai "
+"paštą išsiuntinėjančiai mašinai, vadinamai \"smart host\". Jūs galite "
+"pasirinkti arba paštą priimti su tokia sistema, arba neturėti lokalaus pašto "
+"pristatymo, išskyrus naudotojams root ir postmaster."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "Ar konfigūruoti Exim4 rankiniu būdu?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+"Jūs nurodėte, kad turite paruoštą Exim 3 konfigūraciją. Tam kad konvertuoti "
+"ją į Exim 4 konfigūraciją, po įdiegimo Jūs galite pasinaudoti įrankiu "
+"exim_convert4r4(8). Daugiau žiūrėkite /usr/share/doc/exim4-base/examples/"
+"example.conf.gz ir /usr/share/doc/exim4-base/README.Debian.gz!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+"Kol Jūsų pašto sistema nesukonfigūruota, ji nebus tinkama darbui ir negali "
+"būti naudojama."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "Ar tikrai palikti pašto sistemą nekonfigūruota?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"Kol Jūsų pašto sistema nesukonfigūruota, ji nebus tinkama darbui ir negali "
+"būti naudojama. Jūs žinoma galėsite atlikti konfigūravimą vėliau rankiniu "
+"būdu, arba būnant root naudotoju vykdydami komandą \"dpkg-reconfigure exim4-"
+"config\"."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "Pašto sistemos vardas:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"Jūsų \"pašto vardas\" - tai kompiuterio vardas adreso dalyje, matomas "
+"išeinančiuose naujienų ir pašto pranešimuose (sekantis po naudotojo vardo ir "
+"@ ženklo)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"Šį vardą be Exim, naudoja ir kitos programos; jis turi būti atskiras, pilnas "
+"domeno vardas (FQDN), pagal kurį matysis iš kur paštas kilęs."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"Jei Jūs šią sistemą konfigūruojate kaip 'satelitą', šis vardas nebus rodomas "
+"laiško eilutėje Nuo:, nes bus naudojamas perrašymas."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "Kitos paskirties vietos, iš kurių paštas turi būti priimtas:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"Įveskite domenų sąrašą, kuriems ši mašina turi laikyti save galutine "
+"paskirties vieta, išskyrus pašto vardą (${mailname}) ir \"localhost\"."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"Pagal nutylėjimą visi domenai bus apdorojami vienodai; jei Jūs norite "
+"skirtingus domenus apdoroti skirtingai, Jums reikės taisyti konfigūracijos "
+"failus vėliau."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+"Jei norite nurodyti daugiau, įveskite čia atskirdami dvitaškiais. Palikite "
+"tuščią, jei nėra ką nurodyti."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "Domenai, kurių paštą reikia perduoti (relay):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr "Įveskite čia domenus, kurių paštą sutinkate pertransliuoti (relay)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"Tai domenai, kurių paštą Jūs pasiruošę priimti iš bet kur internete. Čia "
+"nereikia nurodyti lokalių domenų."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr ""
+"Čia įvedami domenai turi būti atskirti dvitaškiais. Pakaitos simboliai "
+"(wildcards) gali būti naudojami."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "Mašinos, kurių paštą reikia perduoti (relay):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr ""
+"Įveskite čia lokalių mašinų tinklus, kurių paštą sutinkate pertransliuoti "
+"(relay)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+"Akivaizdu, kad mašinos naudojančios mus kaip 'smarthost', neturi būti "
+"įtrauktos į retransliavimo kontrolę, nes operacijos visuma jau apima jų "
+"pašto retransliavimą."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"Jei yra ką įvesti, įveskite jas atskirdami dvitaškiais. Jūs turite naudoti "
+"standartinį formatą adresas/ilgis (pvz. 194.222.242.0/24)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+"IPv6 adresuose dvitaškius reikia dvigubinti (pvz. 5f03::1200::836f::::/48)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "Domeno vardas vietiniams naudotojams:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"Kadangi Jūs ruošiatės būti 'satelitine' sistema, Jūs turite nurodyti kokį "
+"domeno vardą naudoti lokalių naudotojų paštui; tipiniu atveju tai yra "
+"mašina, kurioje Jūs įprastai priimate savo paštą."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr "Kur Jūsų naudotojai skaitys savo paštą?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr "Mašina apdorojanti šio kompiuterio paštą (smarthost):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr ""
+"Įveskite kompiuterio vardą mašinos, kuriai siunčiamas išeinantis paštas."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"Žiūrekite /usr/share/doc/exim4-base/README.SMTP-AUTH apie tai, kaip atlikti "
+"SMTP autentifikacijos nustatymus."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "Pašto, adresuoto root ir postmaster, gavėjas:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"Paskirų \"postmaster\" ir \"root\" paštas paprastai nukreipiamas vienai ar "
+"daugiau naudotojų paskirų (accaunts), kurios yra tikrųjų sistemos "
+"administratorių paskyros. Pagal nutylėjimą yra nustatoma taip, kad paštas "
+"skirtas \"postmaster\" ir įvairioms sisteminėms paskyroms yra nukreipiamas į "
+"\"root\" paskyrą, o paštas skirtas \"root\" nukreipiamas realiam naudotojui. "
+"Tai gali būti keičiama, taisant failą /etc/aliases."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"Atkreipkite dėmesį į tai, kad postmaster'io paštas turi būti skaitomas "
+"sistemoje, kuriai jis yra nukreiptas, o ne persiųstas kurnors taip, kad "
+"naudotojai, kuriuos Jus pasirinkote, neturėtų šio pašto nukreipti kitoms "
+"mašinoms."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"Kuriam naudotojui nukreipti sistemos administratoriaus paštą? Įveskite vieną "
+"arba daugiau naudotojų vardų, atskirdami tarpais arba kableliais. Įveskite "
+"\"none\" jei Jūs nenorite nukreipti pašto. - PASTABA: tai griežtai "
+"nerekomenduotina. Exim negali pristatyti pašto root naudotojui ir saugos jį /"
+"var/mail/mail kataloge. Taip atkreipkite dėmesį, kad naudotojų vardai turi "
+"būti mažosiomis raidėmis!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "Ar perrašyti egzistuojantį failą /etc/aliases?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"Jūs jau turite failą /etc/aliases, bet jis nenukreipia root pašto į "
+"normalaus naudotojo paskyrą, nors tai griežtai rekomenduojama. Jei Jūs "
+"sutiksite jį perrašyti, senas failas bus išsaugotas ir pervadintas į "
+"aliases.0."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr "IP adresai įeinančio SMTP ryšio klausymuisi:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"Įveskite dvitaškiais atskirtus IP adresus, kuriais reikia laukti įeinančio "
+"susijungimo. Jūs turite padvigubinti dvitaškius IPv6 adresuose (pvz. "
+"5f03::1200::836f::::)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+"Jei Jūs paliksite šį lauką tuščią, Exim klausysis ryšio visų prieinamų "
+"tinklo sąsajų SMTP jungtyse (port)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"Jei šis kompiuteris nepriima elektroninio pašto tiesiogiai SMTP protokolu iš "
+"KITŲ kompiuterių, o priima tik iš lokalių servisų, tokių kaip fetchmail ar "
+"Jūsų pašto programos (MUA), bendraujant per localhost, Jūs turėtumėte "
+"drausti išorinį prisijungimą, nustatydami šia reikšmę 127.0.0.1, tokiu būdu "
+"uždrausdami viešų tinklo sąsajų klausymąsi."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr ""
+"Ar daryti minimalų DNS užklausų kiekį (prisiskambinimas pagal pareikalavimą)?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"Normaliu darbo režimu Exim daro DNS užklausas (įkėlimo metu, priimant ar "
+"išsiunčiant pranešimus, ir t.t.) rašymo į log failą tikslais ir tam, kad "
+"būtų mažas reikšmių kiekis saugomas konfigūracijos faile."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"Jei šis kompiuteris neturi pastovaus priėjimo prie DNS serverio ir naudoja "
+"prisiskambinimas pagal pareikalavimą, tai gali iššaukti nepageidaujamą "
+"elgesį, t.y. Exim įkėlimo metu arba apdorojant eiles (net jei jose nėra "
+"laukiančių pranešimų) gali būti inicijuojamas brangus prisiskambinimas."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+"Leiskite šią savybę tik jei Jūs naudojate prisiskambinimą pagal "
+"pareikalavimą; kitu atveju uždrauskite ją."
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "Exim v4 konfigūravimas (exim4-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "Ar suskaldyti konfigūraciją į mažus failus?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"Debian'o exim4 paketai galutinės konfigūracijos generavimui gali naudoti "
+"arba vieną monolitinį failą (/etc/exim4/exim4.conf.template), arba apie 40 "
+"mažų failų kataloge /etc/exim4/conf.d/."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"Pirmasis būdas labiau tinka didelėms modifikacijoms ir bendrai yra daug "
+"stabilesnis, tuo tarpu antrasis būdas patogesnis nedidelių pakeitimų "
+"atlikimui, bet yra daug trapesnis ir gali sutrikti atliekant didelius "
+"pakeitimus."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr "Jei abejojate, tuomet nenaudokite konfigūracijos suskaldymo."
diff --git a/debian/po/nb.po b/debian/po/nb.po
new file mode 100644
index 0000000..23385c0
--- /dev/null
+++ b/debian/po/nb.po
@@ -0,0 +1,594 @@
+# translation of nb.po to Norwegian bokmål
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans#
+# Developers do not need to manually edit POT or PO files.
+# Steinar H. Gunderson <sgunderson@bigfoot.com>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: nb\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-03-12 19:23+0100\n"
+"Last-Translator: Steinar H. Gunderson <sgunderson@bigfoot.com>\n"
+"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+"X-Generator: KBabel 1.3.1\n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr "Fjern ikke-levert e-post i køkatalogen?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"Det finnes e-post i Exims køkatalog /var/spool/exim4/input som ennå ikke er "
+"blitt levert. Du kan beholde dem i tilfelle du ønsker å reinstallere Exim "
+"seinere, eller du kan fjerne dem."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr "Flytt foreløpig ikke-levert e-post fra exim(v3) til exim4-køen?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"Det finnes e-post i exims eller exim-tls' køkatalog /var/spool/exim/input "
+"som ennå ikke er blitt levert. Disse kan flyttes til exim4s kø (/var/spool/"
+"exim4/input) nå, hvor de vil bli håndtert av exim4."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+"Vær oppmerksom på at dette bare fungerer den ene veien; exim4 kan håndtere "
+"exim(v3)s kø men ikke motsatt."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"Flytt e-posten kun om du ikke planlegger å gå tilbake til exim(v3); ellers "
+"burde ikke e-posten flyttes nå, men manuelt når du er ferdig med å flytte "
+"oppsettet."
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr "internett-sted; e-post sendes og mottas direkte med SMTP"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr "e-post sendt av smartvert; hentes via SMTP eller fetchmail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "e-post sendt av smartvert; ingen lokal e-post"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "kun lokal levering; ikke på noe nettverk"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr "oversett manuelt fra håndoppsatt Exim v3-konfigurasjon"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "ingen konfigurering nå"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "Overordnet e-post-konfigurasjonstype:"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+"Det er mulig å konfigurere epost-systemene på flere måter. Velg den som best "
+"passer dine behov."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"Systemer med dynamiske IP-adresser, inkludert oppringt-systemer, burde som "
+"regel settes opp til å sende utgående e-post til en annen maskin, en såkalt "
+"\"smartvert\", for levering. Du kan velge å motta mail via et slikt system, "
+"eller å ha ingen lokal maillevering overhodet, bortsett fra e-post til root "
+"og postmaster."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "Sett opp Exim4 manuelt?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+"Du valgte at du har en håndlaget Exim 3-konfigurasjon. For å konvertere "
+"denne til Exim 4 kan du bruke verktøyet exim_convert4r4(8) etter "
+"installasjonen. Les /usr/share/doc/exim4-base/examples/example.conf.gz og /"
+"usr/share/doc/exim4-base/README.Debian.gz!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+"Før epost-systemet blir konfigurert, vil det være brukket og kan ikke brukes."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "Vil du virkelig la epost-systemet være ukonfigurert?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"Før epost-systemet blir konfigurert, vil det være brukket og kan ikke "
+"brukes. Du kan selvsagt konfigurere det seinere, enten for hånd eller ved å "
+"kjøre \"dpkg-reconfigure exim4-config\" som root."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "Systemets epost-navn:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"Epost-navnet ditt er vertsnavn-delen av adressen din som vises på utgående "
+"nyhetsgruppe- og epost-meldinger (etter brukernavnet og @-tegnet)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"Dette navnet vil også brukes av andre programmer enn Exim; det burde være "
+"det fulle domenenavnet (FQDN) som mail skal se ut til å komme fra."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"Hvis du konfigurerer dette systemet som et `satellitt'-system, vil ikke "
+"dette navnet synes på From:-linjene i e-post, ettersom omskriving vil tre i "
+"kraft."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "Andre mål e-post mottas for:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"Skriv inn en liste med domener som denne maskinen skal regne seg selv som "
+"siste mål for, utover epost-navnet (${mailname}) og \"localhost\"."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"Standardvalget er at alle domener vil behandles likt; hvis du ønsker at "
+"forskjellige domener skal behandles forskjellig, må du redigere "
+"konfigurasjonsfilene etterpå."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+"Hvis det er flere, skriv dem inn her, adskilt med komma. Du kan la dette "
+"feltet stå blankt hvis det ikke er noen."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "Domener det skal videresendes e-post for:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr "Skriv inn domenene du godtar å videresende e-post for:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"Slike domener er domener du er forberedt til å motta e-post for fra hvor som "
+"helst på Internett. Ikke skriv inn de lokale domenene her."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr ""
+"Domenene du skriver inn her må adskilles med kolon. Du kan bruke jokertegn "
+"her om du ønsker."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "Maskiner det skal videresendes e-post for:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr ""
+"Skriv inn nettverkene til de lokale maskinene du ønsker å videresende e-post "
+"for."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+"Åpenbart må alle maskiner som skal bruke oss som smartvert unntas fra "
+"videresendingsbegrensningene, ettersom hele poenget er at de skal bruke oss "
+"til å videresende e-post."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"Hvis det er noen, skriv dem inn her, adskilt av kolon. Du burde bruke det "
+"vanlige addresse/lengde-formatet (f.eks. 194.222.242.0/24)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+"Du er nødt til å doble evt. kolon i IPv6-adresser (f.eks. "
+"5f03::1200::836f::::/48)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "Domenenavn for lokale brukere:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"Ettersom dette skal være et satellitt-system, må du skrive inn domenenavnet "
+"som skal brukes for e-post fra lokale brukere; som oftest er dette maskinen "
+"du vanligvis mottar e-post på."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr "Hvor vil brukerne lese e-posten sin?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr "Maskin som håndterer utgående e-post for denne verten (smartvert):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr "Skriv inn vertsnavnet på maskinen som utgående e-post sendes til:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"Se /usr/share/doc/exim4-base/README.SMTP-AUTH for informasjon om hvordan man "
+"setter opp SMTP-autentisering."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "Mottaker for root- og postmaster-epost:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"E-post for \"postmaster\"- og \"root\"-kontoene videresendes vanligvis til "
+"en eller flere brukerkontoer som tilhører de reelle systemadministratorene. "
+"Standardvalget er å sette opp systemene slik at e-post til \"postmaster\" og "
+"en del andre systemkontoer videresendes til \"root\", og deretter "
+"videresende \"root\"s e-post til en ekte bruker. Dette kan endres ved å "
+"editere /etc/aliases."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"Merk at postmaster-epost vanligvis burde leses på systemet den er rettet "
+"til, i stedet for å videresendes et annet sted, så (minst én av) brukerne du "
+"velger burde ikke videresende e-posten sin bort fra denne maskinen."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"Hvilke kontoer går systemadministrator-epost til? Skriv inn ett eller flere "
+"brukernavn adskilt av mellomrom eller komma. Skriv \"none\" dersom du ikke "
+"ønsker å videresende e-posten. - NB! Dette frarådes på det sterkeste. Exim "
+"kan ikke levere e-post som root og vil lagre e-posten til /var/mail/mail. "
+"Merk også at brukernavn må være i små bokstaver!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "Overskriv eksisterende /etc/aliases?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"Du har allerede en /etc/aliases-fil, men den videresender ikke e-post for "
+"root til en brukerkonto, hvilket anbefales på det sterkeste. Hvis du godtar "
+"å overskrive den, vil den gamle filen bevares og omdøpes til aliases.O."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr "IP-adresser det skal lyttes på etter innkommende SMTP-tilkoblinger:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"Skriv inn en kolon-separarert liste av IP-adresser det skal lyttes på. Du er "
+"nødt til å doble evt. kolon i IPv6-adresser (f.eks. 5f03::1200::836f::::)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+"Hvis du lar denne verdien stå tom, vil Exim lytte etter tilkoblinger på SMTP-"
+"porten på alle tilgjengelige nettverksgrensesnitt."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"Hvis denne maskinen ikke mottar e-post direkte via SMTP fra ANDRE maskiner, "
+"bare fra lokale tjenester som fetchmail eller e-post-programmet ditt (MUA-en "
+"din) som snakker mot localhost, burde du forby eksterne tilkoblinger til "
+"Exim ved å sette dette valget til 127.0.0.1 og derfor skru av lytting på "
+"offentlige nettverksgrensesnitt."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr "Minimer antall DNS-forespørsler (oppringning-etter-behov)?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"Vanligvis vil Exim gjøre DNS-oppslag ved oppstart, ved sending og mottak av "
+"e-post, osv. for loggbruk osv. og for å begrense behovet for hardkordede "
+"verdier i konfigurasjonsfilen."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"Hvis dette er en maskin uten permanent tilgang til DNS-navnetjenere med "
+"oppringning etter behov, kan dette ha den uønskede konsekvensen at det å "
+"starte opp Exim å behandle køen (selv uten noen ventende meldinger) kan "
+"aktivere en dyr oppringing."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+"Skru på denne funksjonen dersom du bruker oppringing-etter-behov; hvis ikke, "
+"skru den av."
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "Konfigurerer Exim v4 (exim4-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "Del konfigurasjonen opp i mindre filer?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"Debians exim4-pakker kan enten bruke en enkelt monolittisk fil (/etc/exim4/"
+"exim4.conf.template) eller omtrent 40 småfiler i /etc/exim4/conf.d/ for å "
+"generere den ferdige konfigurasjonen."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"Den første er bedre egnet for store endringer og er generelt mer stabil, "
+"mens den siste tilbyr en komfortabel måte å gjøre små endringer på, men er "
+"skjørere og kan brekke hvis den endres mye."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr "Hvis du er usikker, burde du ikke bruke den oppdelte konfigurasjonen."
diff --git a/debian/po/nl.po b/debian/po/nl.po
new file mode 100644
index 0000000..788cc61
--- /dev/null
+++ b/debian/po/nl.po
@@ -0,0 +1,619 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: exim4\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-01-10 12:18+0100\n"
+"Last-Translator: Bart Cornelis <cobaco@linux.be>\n"
+"Language-Team: debian-l10n-dutch <debian-l10n-dutch@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr "Niet afgeleverde e-mails uit de spoolmap verwijderen?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"De exim-spoolmap bevat niet afgeleverde e-mails. U kunt deze bewaren voor "
+"het geval u Exim op een latere datum herinstalleert, of u kunt ze nu "
+"verwijderen."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr ""
+"Nog niet afgeleverde e-mails verplaatsen van exim(v3)-spoolmap naar exim4-"
+"spoolmap?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"Er zijn een aantal niet afgeleverde e-mails in de exim- of exim-tls-spoolmap "
+"(/var/spool/exim/input/). Deze kunnen verplaatst worden naar de exim4-"
+"spoolmap (/var/spool/exim4/input/); ze worden dan verder afgehandeld door "
+"exim4."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+"Merk op dat dit eenrichtingsverkeer is; exim4 kan de spool van exim(v3) "
+"gebruiken maar niet andersom."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"Verplaats de e-mails enkel wanneer u niet van plan bent om nog naar exim(v3) "
+"terug te keren, anders dient u de e-mails later wanneer u uw instellingen "
+"overgezet heeft handmatig te verplaatsen."
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr "Internet-site; e-mail wordt direct verzonden en ontvangen via SMTP"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr "e-mail met smarthost; e-mail wordt ontvangen via SMTP of fetchmail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "en verzonden via een smarthost; Geen lokale e-mail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "Enkel lokale e-mail; wanneer u niet over een netwerk beschikt"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr "handmatig aangemaakte Exim3 configuratie zelf omzetten"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "Nu niet configureren"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "Algemeen type e-mailconfiguratie:"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+"Er zijn verschillende algemene types van e-mailsysteem mogelijk. Welke "
+"hiervan komt het best met uw behoeften overeen?"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"Systemen met dynamische IP-adressen (dus ook inbelsystemen), dienen "
+"normaliter ingesteld te worden om uitgaande mail naar een zogenaamde "
+"'smarthost' machine te sturen. U kunt kiezen om e-mail te ontvangen op zo'n "
+"machine; of om lokale e-mail enkel af te leveren voor de gebruikers root en "
+"postmaster."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "Wilt u Exim4 handmatig configureren?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+"U heeft aangegeven dat u een handmatig gemaakte Exim3-configuratie heeft. Om "
+"deze om te zetten naar een Exim4-configuratie kunt u het hulpprogramma "
+"exim_convert4r4(8) gebruiken. Meer informatie vindt u in /usr/share/doc/"
+"exim4-base/examples/example.conf.gz en /usr/share/doc/exim4-base/README."
+"Debian.gz."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+"Zolang uw e-mailsysteem niet ingesteld is zal het in een niet-werkende "
+"staat, en dus onbruikbaar zijn."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "Bent u zeker dat u het e-mailsysteem niet wilt configureren?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"Zolang uw e-mailsysteem niet ingesteld is, is het in een niet-werkende staat "
+"en kan het dus niet gebruikt worden. U kunt de instellingen natuurlijk later "
+"alsnog maken, hetzij handmatig, hetzij door 'dpkg-reconfigure exim4-config' "
+"uit te voeren als root."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "Systeem e-mail-naam:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"Uw `e-mail-naam' is de computernaam die getoond gebruikt wordt voor het bij "
+"uitgaande niews- en e-mailberichten getoonde adres (wat volgt op de "
+"gebruikersnaam en het @-teken)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"Omdat deze naam ook door andere programma's dan Exim gebruikt wordt dient "
+"deze de volledige domeinnaam (FQDN) te zijn waarvan berichten zullen lijken "
+"te komen."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"Als u dit systeem als satellietsysteem instelt zal deze naam niet in het "
+"afzenderadres verschijnen, daar herschrijven dan gebruikt wordt."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "Andere bestemmingen waarvoor e-mail geaccepteerd wordt:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"Voor welke domeinen functioneert deze machine als eindbestemming (e-mail-"
+"naam (${mailname}) en 'localhost' hoeft u hier niet te vermelden)?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"Standaard worden alle domeinen op dezelfde manier afgehandeld; als u "
+"verschillende domeinen verschillend wilt behandelen zult u het "
+"configuratiebestand zometeen handmatig moeten aanpassen."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+"Als er meer zijn dient u ze hier op te geven gescheiden door dubbele punten. "
+"U kunt dit leeg laten als er geen zijn."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "Domeinen waarvoor mail door te sturen:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr "Domeinen waarvoor u e-mail wilt doorsturen:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"Dit zijn domeinen waarvoor u e-mail wilt accepteren van om het even waar op "
+"het Internet. Lokale domeinen dienen hier niet vermeld te worden."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr ""
+"De hier ingevoerde domeinen dienen gescheiden te zijn door dubbele punten. "
+"Jokers mogen gebruikt worden."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "Machines waarvoor email te accepteren:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr "Voor welke lokale netwerken wilt u e-mail accepteren?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+"Alle machines die dit systeem als smarthost gebruiken dienen van de "
+"doorstuur-controle uitgesloten te worden, aangezien het doorsturen van e-"
+"mail voor hen net de bedoeling is."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"Als er zo zijn dient u ze hier op te geven, gescheiden door dubbele punten; "
+"hierbij dient u het standaard adres/lengte formaat te gebruiken (bv. "
+"194.222.242.0/24)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+"Bij IPv6-adressen dient u voor elke dubbele punt twee dubbele punten in te "
+"voeren (bv. 5f03::1200::836f::::/48) "
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "Domeinnaam voor lokale gebruikers:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"Aangezien dit een satellietsysteem wordt dient u een domeinnaam op te geven "
+"die gebruikt zal worden voor e-mail van lokale gebruikers; meestal is dit de "
+"machine waarop u normaal uw e-mail ontvangt."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr "Waar zullen de gebruikers hun e-mail lezen?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr "Machine die de uitgaande mail voor dit systeem afhandeld (smarthost):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr ""
+"Voer de computernaam in van het systeem waarnaar de uitgaande e-mail "
+"verstuurd zal worden."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"Zie /usr/share/doc/exim4-base/README.SMTP-AUTH voor opmerkingen in verband "
+"met het instellen van SMTP-authenticatie."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "Ontvanger van root en postmaster e-mail:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"E-mail voor de \"postmaster\" en \"root\" gebruikers wordt meestal omgeleid "
+"naar de gebruikersaccount(s) van de eigenlijke systeembeheerder(s). "
+"Standaard is het zo ingesteld dat de e-mail voor \"postmaster\" en andere "
+"systeem-accounts omgeleid wordt naar \"root\", en dat de mail voor \"root\" "
+"omgeleid wordt naar de gewone gebruikersaccount van de systeembeheerder. Dit "
+"kan veranderd worden door /etc/aliases aan te passen."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"Merk op dat de postmaster-e-mail normaal gelezen dient te worden op het "
+"systeem naarwaar ze wordt omgeleid, en niet naar elders doorgestuurd; om die "
+"reden dient (op z'n minst) n van uw gebruikers ervoor te kiezen om z'n e-"
+"mail niet om te leiden naar een ander systeem."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"Naar welke gebruikers dient de e-mail voor de systeembeheerder doorgestuurd "
+"te worden? Gelieve n of meer gebruikersnamen in te voeren gescheiden door "
+"komma's. Voer \"none\" in indien u deze e-mail niet wilt omleiden (OPGELET: "
+"dit wordt sterk afgeraden). Exim kan geen berichten afleveren als root en "
+"zal de berichten opslaan in /var/mail/mail. Merk ook op dat de "
+"gebruikersnamen opgegeven dienen te worden met kleine letters!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "Bestaande bestand /etc/aliases overschrijven?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"Hoewel u reeds een /etc/aliases bestand heeft, stuurt deze de mail van root "
+"niet door naar een gebruikersaccount (wat sterk aangeraden wordt). Wilt u "
+"dat het bestaande bestand vervangen wordt (de oude versie wordt bewaard als "
+"aliases.O)?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr ""
+"IP-adressen waarop geluisterd moet worden naar inkomende SMTP-verbindingen:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"Voer een door dubbele punten gescheiden lijst van IP-adressen in. In IPv6 "
+"adressen dient u de dubbele punten te verdubbelen (vb. 5f03::1200::836f::::)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+"Als u deze waarde leeg laat zal Exim op de SMTP-poort van alle beschikbare "
+"netwerkapparaten naar verbindingen luisteren."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"Indien dit systeem geen e-mail rechtstreeks via SMTP van ANDERE systemen "
+"ontvangt, maar enkel van lokale diensten zoals fetchmail of uw e-mail "
+"programma (MUA) pratend met localhost, kunt u best externe verbindingen met "
+"Exim voorkomen door deze optie in te stellen op 127.0.0.1 (waardoor er niet "
+"meer geluisterd wordt op publieke netwerk-interfaces."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr "Aantal DNS-vragen minimaliseren (inbellen-op-aanvraag)?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"In de normale operatiemodus zal Exim DNS-opzoekingen doen bij het opstarten, "
+"bij het ontvangen of versturen van een bericht, enz.; dit omwille van "
+"logboekdoeleinden en om het aantal in het configuratiebestand vastgezette "
+"waarden klein te houden."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"Indien dit systeem niet altijd toegang heeft tot naamservers (DNS) kan het "
+"gebruik van inbellen-op-aanvraag het ongewenste gevolg hebben dat er bij het "
+"opstarten van exim, of bij het afhandelen van de wachtrij (zelfs wanneer "
+"deze geen berichten bevat) ingebeld wordt."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+"Indien u inbellen-op-aanvraag gebruikt kunt u deze optie best aanvaarden, "
+"anders kunt u best weigeren."
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "Exim v4 wordt ingesteld (exim4-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "Configuratiebestand opsplitsen in kleinere bestanden?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"Om de uiteindelijke configuratie te genereren kunnen de Debian exim4-"
+"pakketten of 1 groot monolitisch bestand (/etc/exim4/exim4.conf.template), "
+"of ongeveer 40 kleinere bestanden in /etc/exim4/conf.d/ gebruiken."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"Een groot monolitisch bestand is het meest geschikt voor grote aanpassingen "
+"en is stabieler, terwijl een hoop kleine bestanden meer geschikt is om een "
+"een heleboel kleine aanpassingen te maken en kwetsbaarder is (wat kan leiden "
+"tot een niet-werkende configuratie bij grote aanpassingen)."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr "Bij twijfel kunt u best het grote monolitische bestand gebruiken."
+
+#~ msgid ""
+#~ "internet site; mail is sent and received directly using SMTP, mail sent "
+#~ "by smarthost; received via SMTP or fetchmail, mail sent by smarthost; no "
+#~ "local mail, local delivery only; not on a network, manually convert from "
+#~ "handcrafted Exim v3 configuration, no configuration at this time"
+#~ msgstr ""
+#~ "Internet-site; e-mail wordt direct verzonden en ontvangen via SMTP, e-"
+#~ "mail met smarthost; e-mail wordt ontvangen via SMTP of fetchmail, en "
+#~ "verzonden via een smarthost; Geen lokale e-mail, Enkel lokale e-mail; "
+#~ "wanneer u niet over een netwerk beschikt, handmatig aangemaakte Exim3 "
+#~ "configuratie zelf omzetten, Nu niet configureren"
diff --git a/debian/po/pt.po b/debian/po/pt.po
new file mode 100644
index 0000000..7c147a9
--- /dev/null
+++ b/debian/po/pt.po
@@ -0,0 +1,595 @@
+# Portuguese (Portugal) Translation Project (traduz@debianpt.org)
+# Nuno Sénica <njs@av.it.pt>, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: exim4-config 4.30-7\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-03-17 17:02+0100\n"
+"Last-Translator: Nuno Sénica <njs@av.it.pt>\n"
+"Language-Team: Portuguese <traduz@debianpt.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr "Remover mails não entregues no diretório de spool?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"Existem mails no diretório de spool do exim /var/spool/exim4/input que ainda "
+"não foram entregues. Poderá mantê-los no caso de decidir reinstalar o Exim "
+"posteriormente ou poderá optar por removê-los."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr "Mover mails ainda não entregues do exim(v3) para o spool do exim4?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"Existem alguns mails não entregues no directório de spool do exim ou do exim-"
+"tls em /var/spool/exim/input. Estes podem ser movidos para o spool do exim4 "
+"(/var/spool/exim4/input) agora, onde serão geridos pelo exim4."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+"Atenção que este procedimento apenas funciona num único sentido, o exim4 "
+"pode gerir o spool do exim(v3) mas o contrário não é possível."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"Mova os mails apenas se não pretender voltar ao exim(v3), ou, caso "
+"contrário, os mails não deverão ser movidos agora mas sim manualmente assim "
+"que sua instalação for convertida."
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr "site internet; o mail é enviado e recebido usando SMTP"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr "mail enviado por smarthost; recebido por SMTP ou fetchmail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "mail enviado por smarthost; não existe mail local"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "apenas entrega local; não se encontra numa rede"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr "converter manualmente de uma configuração manual do Exim v3"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "sem nenhuma configuração neste momento."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "Tipo geral de configuração de mail:"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+"Diversos tipos gerais de configurações de sistemas de mail são possíveis. "
+"Seleccione aquela que melhor se adequa às suas necessidades."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"Sistemas com endereços IP dinâmicos, incluíndo sistemas de acesso "
+"telefónico, provavelmente deverão ser configurados para enviar mails para "
+"outra máquina, chamada de \"smart host\" , para que o mesmo possa ser "
+"entregue. Pode optar por receber mail em sistemas como esse; ou não ter "
+"entrega de mail local, excepto mail para o root e para o postmaster."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "Configurar Exim4 manualmente?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+"Indicou que possui uma configuração manual do Exim 3. Para convertê-la para "
+"o Exim 4 pode usar a ferramenta exim_convert4r4(8) depois da instalação."
+"Consulte os ficheiros /usr/share/doc/exim4-base/examples/example.conf.gz e /"
+"usr/share/doc/exim4-base/README.Debian.gz!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+"Enquanto o sistema de mail não estiver configurado, não poderá ser usado."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "Pretende deixar o sistema de mail não configurado?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"Enquanto o sistema de mail não estiver configurado, não poderá ser usado."
+"Poderá sempre configurá-lo manualmente mais tarde ou executando o comando "
+"\"dpkg-reconfigure exim4-config\" como root."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "Nome do sistema de mail:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"O \"mail name\" (nome do sistema de mail) é a parte do nome do sistema "
+"(hostname) do endereço que será exibido em mensagens de e-mail (após o nome "
+"de utilizador e o símbolo @)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"Este nome será usado por outros programas além do Exim. Por isso, deverá ser "
+"um nome de domínio totalmente qualificado (FQDN) e único, a partir do qual o "
+"mail aparenta ter originado."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"Se estiver a configurar este sistema como 'satélite' este nome não irá "
+"aparecer nas linhas From: do mail, uma vez que técnicas de reescrita são "
+"usadas."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "Outros destinos para os quais o mail deve ser aceite:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"Por favor introduza uma lista de domínios para os quais esta máquina deve "
+"considerar como sendo o destino final, sem contar com o mail name "
+"{${mailname}) e \"localhost\"."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"Por padrão todos os domínios serão tratados de forma idêntica. Caso precise "
+"que os nomes de domínios sejam tratados de maneira diferentei, será preciso "
+"editar os ficheiros de configuração posteriormente."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+"Caso existam mais, introduza-os aqui, separados por dois pontos. Pode deixar "
+"este valor em branco caso não existam mais."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "Domínios para os quais fazer relay:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr ""
+"Por favor introduza os domínios para os quais você aceitará fazer relay de "
+"mail."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"Tais domínios são domínios para os quais está preparado para aceitar mail "
+"originado de qualquer local na Internet. Não mencione domínios locais aqui."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr ""
+"Os domínios que aqui introduzir deverão estar separados por dois pontos. "
+"Caracteres especiais podem ser usados."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "Máquinas para as quais fazer relay:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr ""
+"Por favor introduzir aqui as redes de máquinas locais para as quais aceita "
+"fazer relay de mensagens."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+"Obviamente, quaisquer máquinas que nos utilizem como um smarthost precisam "
+"de ser excluídas dos controlos de relaying, uma vez que usar-nos para fazer "
+"relay de mail é a idéia de um smarthost."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"Caso existam, introduza-as aqui, separadas por dois pontos. Deverá usar o "
+"formato padrão endereço/máscara (exemplo, 194.222.242.0/24)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+"Precisa de duplicar a quantidade de dois pontos em endereços IPv6 (por "
+"exemplo, 5f03::1200::836f::::/48)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "Nome de domínio para utilizadores locais:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"Uma vez que que este será um sistema satélite, deve especificar o nome de "
+"domínio a ser usado nos mails enviados por utilizadores locais; tipicamente, "
+"este nome é o nome da máquina na qual recebe normalmente suas mensagens."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr "Onde irão os seus utilizadores ler o mail?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr "Máquina que gere a entrega final do mail para este host (smarthost):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr ""
+"Introduza o hostname da máquina para a qual o mail enviado será enviado."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"Consulte o ficheiro /usr/share/doc/exim4-base/README.SMTP-AUTH para notas "
+"acerca de autenticação SMTP."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "Destinatário do mail para root e postmaster:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"O mail para as contas \"postmaster\" e para o \"root\" são normalmente "
+"redirecionado para uma ou mais contas de utilizador dos administradores do "
+"sistema actuais. O padrão é configurar os redirecionamentos para que o mail "
+"para a conta \"postmaster\" e para as várias contas de sistema seja "
+"redirecionado para a conta \"root\" e o mail para a conta \"root\" seja "
+"redirecionado para um utilizador real, Isto pode ser mudado através da "
+"edição do arquivo /etc/aliases."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"Note que o mail para o postmaster deve normalmente ser lido no sistema para "
+"o qual o mesmo é direcionado em vez de serem encaminhadas para qualquer "
+"outro sitio, portanto as suas escolha (pelo menos uma delas) não deverá "
+"causar o redirecionamento do mail para fora desta máquina."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"O mail para o administrador do sistema será entregue para quais contas de "
+"utilizador? Introduza um ou mais nomes de utilizadores separados por espaços "
+"ou vírgulas. Introduza \"none\" caso não pretenda redirecionar o mail - não "
+"é de todo recomendado. O Exim não pode executar entregas como root e irá "
+"gravar as mensagens em /var/mail/mail. De notar também que os nomes de "
+"utilizadores devem ser escritos em letras minúsculas!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "Sobreescrever o ficheiro /etc/aliases existente?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"Já possui um ficheiro /etc/aliases, que não redireciona o mail para o root "
+"para uma conta de utilizador, o que é fortemente recomendado. Se aceitar "
+"sobreescrevê-lo, o ficheiro antigo será mantido e renomeado para aliases.0."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr "Lista de endereços IP nos quais escutar por ligações SMTP:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"Introduza uma lista separada por dois pontos contendo endereços IP nos quais "
+"pretende esperar por ligações SMTP. Precisa de duplicar a quantidade de dois "
+"pontos caso use endereços IPv6 (por exemplo, 5f03::1200::836f::::)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+"Se mantiver este valor vazio, o Exim irá esperar por ligações na porta SMTP "
+"de todas as interfaces de rede disponíveis."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"Se este computador não receber mail directamente via SMTP de OUTROS hosts e "
+"recebe mail de serviços locais como o fetchmail ou do seu programa de mail "
+"(MUA) que comunicam com o localhost, deverá proibir ligações originadas "
+"externamente com destino ao Exim configurando esta opção para 127.0.0.1 e "
+"portanto desactivando a escuta em interfaces de rede públicas."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr "Manter o número de pesquisas DNS mínimas (Dial-on-Demand)?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"No modo normal de operação o Exim executa pesquisas DNS na inicialização, "
+"quando recebe ou entrega mails, para propósitos de logging e para manter "
+"baixo o número de valores codificados manualmente no ficheiro de confiuração."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"Se este fosse um host sem acesso a um servidor de nomes DNS permanente, que "
+"usasse Dial-on-Demand, isto poderia ter a consequência indesejada de activar "
+"um evento de pedido que envolvesse custos telefónicos sempre que o Exim "
+"fosse iniciado ou a fila de mails fosse executada (mesmo sem nenhum mail em "
+"espera)."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+"Active esta funcionalidade caso esteja a usar Dial-on-Demand; Caso "
+"contrário, desactive-a."
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "A configurar o Exim v4 (exim-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "Dividir a configuração em pequenos ficheiros?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"Os pacotes Debian do exim4 podem usar um único ficheiro monolítico (/etc/"
+"exim4/exim4.conf.template) ou por volta de 40 pequenos ficheiros localizados "
+"no diretório /etc/exim4/conf.d/, para gerar a configuração final."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"O primeiro método é o mais indicado para grandes modificações e é geralmente "
+"mais estável. O último método oferece uma maneira confortável de fazer "
+"pequenas mudanças mas é mais frágil e pode perder consistência se for "
+"modificado extensivamente."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr "Se estiver com dúvidas não deve escolher para dividir a configuração."
diff --git a/debian/po/pt_BR.po b/debian/po/pt_BR.po
new file mode 100644
index 0000000..a9ed766
--- /dev/null
+++ b/debian/po/pt_BR.po
@@ -0,0 +1,711 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: exim4 4.24-3\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-01-08 17:09-0300\n"
+"Last-Translator: André Luís Lopes <andrelop@debian.org>\n"
+"Language-Team: Debian-BR Project <debian-l10n-portuguese@lsts.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr "Remover mensagens não entregues no diretório de spool ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"Existem mensagens no diretório de spool /var/spool/exim4/input que ainda não "
+"foram entregues. Você pode mantê-las caso você decida reinstalar o Exim "
+"posteriormente ou você pode optar por removê-las."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr ""
+"Mover mensagens ainda não entregues do exim(v3) para o spool do exim4 ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"Existem algumas mensagens não entregues no diretório de spool do exim ou do "
+"exim-tls em /var/spool/exim/input. As mesmas podem ser movidas para o spool "
+"do exim4 (/var/spool/exim4/input) agora, onde serão gerenciadas pelo exim4."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+"Esteja avisado que esse procedimento funcionamento somente em um único "
+"sentido, ou seja, o exim4 pode gerenciar o spool do exim(v3) mas o contrário "
+"não é possível."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"Movas as mensagens somente caso você não planeje voltar para o exim(v3), ou, "
+"caso contrário, as mensagens não deverão ser movidas agora mas sim "
+"manualmente assim que sua instalação for convertida."
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr ""
+"site internet; as mensagens são enviadas e recebidas diretamente usando SMTP"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr "mensagens enviadas por smarthost; recebidas por SMTP ou fetchmail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "mensagens enviadas por smarthost; nenhuma mensagem local"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "somente entrega local; fora de uma rede"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr "converter manualmente de uma configuração Exim v3 feita manualmente"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "sem configuração no momento."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "Tipo geral de configuração de e-mail :"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+"Diversos tipos gerais de configurações de sistemas de mensagens são "
+"possíveis. Selecione aquele que atende melhor a suas necessidades."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"Sistemas com endereços IP dinâmicos, incluíndo sistemas discados, "
+"provavelmente deverão ser configurados para enviar mensagens para outra "
+"máquina, chamada de \"smart host\" , para que as mesmas possam ser "
+"entregues. Você pode optar por receber mensagens em sistemas como esse; ou "
+"não ter entrega de mensagens local, exceto mensagens para o root e para o "
+"postmaster."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "Configurar Exim4 manualmente ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+"Você indicou que possui uma configuraçã do Exim 3 feita manualmente. Para "
+"convertê-la para o Exim 4 você pode usar a ferramenta exim_convert4r4(8) "
+"depois da instalação. Consulte os arquivo /usr/share/doc/exim4-base/README."
+"Debian.gz !"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+"Seu sistema de mensagens estará quebrado e não poderá ser usado até que seja "
+"configurado."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "Realmente deixar o sistema de mensagens não configurado ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"Seu sistema de mensagens estará quebrado e não poderá ser usado até que seja "
+"configurado. Você pode, é claro, configurá-lo posteriormente manualmente ou "
+"executando o comando \"dpkg-reconfigure exim4-config\" como root."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "Nome do sistema de mensagens :"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"Seu \"mail name\" (nome do sistema de mensagens) é a porção nome de máquina "
+"(hostname) do endereço que será exibido em mensagens de e-mail (após o nome "
+"de usuário e o símbolo @)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"Esse nome será usado por outros programas além do Exim. Por isso, deverá ser "
+"um nome de domínio totalmente qualificado (FQDN) e único, a partir do qual "
+"as mensagens parecerão ter originado."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"Caso você esteja configurando este sistema como 'satélite', esse nome não "
+"irá aparecer em linhas From: de mensagens, uma vez que técnicas de reescrita "
+"serão usadas."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "Outros destinos para os quais mensagens devem ser aceitas :"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"Por favor, forneça uma lista de domínios para os quais esta máquina deve "
+"considerar como sendo ela mesma o destino final, fora o `mail "
+"name' {${mailname}) e \"localhost\"."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"Por padrão, todos os domínios serão tratados de forma idêntica. Caso você "
+"precise que nomes de domínios sejam tratados de maneira diferente será "
+"preciso editar os arquivos de configuração posteriormente."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+"Caso existam mais, informe-os aqui, separados por dois pontos. Você pode "
+"manter esse valor em branco caso não existam mais."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "Domínios para os quais fazer relay :"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr ""
+"Por favor informe os domínios para os quais você aceitará fazer relay de "
+"mensagens."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"Tais domínios são domínios para os quais você está preparado para aceitar "
+"mensagens originadas de qualquer local na Internet. Não mencione domínios "
+"locais aqui."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr ""
+"Os domínios que você informar aqui deverão estar separados por dois pontos. "
+"Caracteres curingas podem ser usados."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "Máquinas para as quais fazer relay :"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr ""
+"Por favor informe aqui as redes redes de máquinas locais para as quais você "
+"aceita fazer relay de mensagens."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+"Obviamente, quaisquer máquinas que nos utilize como um smarthost precisa ser "
+"excluída dos controles de relaying, uma vez que nos usar para relay de "
+"mensagens é a idéia de um smarthost."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"Caso existam, informe-as aqui, separadas por dois pontos. Você deverá usar o "
+"formato padrão endereço/tamanho (exemplo, 194.222.242.0/24)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+"Você precisa duplicar a quantidade de dois pontos em endereços IPv6 (por "
+"exemplo, 5f03::1200::836f::::/48)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "Nome de domínio para usuários locais :"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"Uma vez que que este será um sistema satélite, você deve especificar o dome "
+"de domínio a ser usado em mensagens enviadas por usuários locais. "
+"Tipicamente, este nome é o nome da máquina na qual você normalmente recebe "
+"suas mensagens."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr "Onde seus usuários irão ler suas mensagens ?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr ""
+"Máquina que gerencia a entrega final de mensagens para este host "
+"(smarthost) :"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr ""
+"Informe o hostname da máquina para a qual as mensagens enviadas serão "
+"repassadas."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"Consulte o arquivo /usr/share/doc/exim4-base/README.SMTP-AUTH para ter "
+"acesso a documentação para configurar autenticação SMTP."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "Destinatário das mensagens para root e postmaster :"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"As mensagens para as contas \"postmaster\" e para o \"root\" são normalmente "
+"redirecionadas para uma ou mais contas de usuário dos administradores de "
+"sistema atuais. O padrão é configurar os redirecionamentos para que as "
+"mensagens para a conta \"postmaster\" e para vários contas do sistema sejam "
+"redirecionadas para a conta \"root\" e as mensagens para a conta \"root\" "
+"seja redirecionada para um usuário real, Isto pode ser mudado através da "
+"edição do arquivo /etc/aliases."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"Note que as mensagens para o postmaster devem normalmente serem lidas no "
+"sistema para o qual as mesmas são direcionadas ao invés de serem "
+"encaminhadas para qualquer outro lugar, portanto, suas escolha (ao menos uma "
+"delas) não deverá causar o redirecionamento das mensagens para fora desta "
+"máquina."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"As mensagens para o administrador do sistema serão entregues para quais "
+"contas de usuário ? Informe um ou mais nomes de usuários separados por "
+"espaços ou vírgulas. Informe \"none\" caso você não queira redirecionar as "
+"mensagens - isso é fortemente desencorajado. O Exim não pode executar "
+"entregas como root e irá gravar as mensagens em /var/mail/mail. Note também "
+"que os nomes de usuários devem estar em letras minúsculas !"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "Sobreescrever arquivo /etc/aliases existente ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"Você já possui um arquivo /etc/aliases, mas o mesmo não redireciona as "
+"mensagens para o root para uma conta de usuário, o que é fortemente "
+"recomendado. Caso você aceite sobreescrevê-lo, o arquivo antigo será mantido "
+"e renomeado para aliases.0."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr "Lista de endereços IP nos quais escutar por conexões SMTP :"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"Informe uma lista separada por dois pontos contendo endereços IP nos quais a "
+"escuta por conexões SMTP deve estar habilitada. Você precisa duplicar a "
+"quantidade de dois pontos caso use endereços IPv6 (por exemplo, "
+"5f03::1200::836f::::)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+"Caso você matenha este valor em branco, o Exim irá escutar por conexões na "
+"porta SMTP de todas as interfaces de rede disponíveis."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"Caso este computador não receba mensagens diretamente via SMTP de OUTROS "
+"hosts e somente receba mensagens de serviços locais como o fetchmail ou de "
+"seu programa de mensagens (MUA) conversando com o localhost você "
+"prvavelmente deverá proibir conexões originadas externamente com destino ao "
+"Exim configurando esta opção para 127.0.0.1 e portanto desabilitando a "
+"escuta em interfaces de rede públicas."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr "Manter o número de pesquisas DNS mínimas (Discar-sob-Demanda) ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"No modo normal de operação o Exim executa pesquisas DNS na inicialização, "
+"quando recebe ou entrega mensagens, para propósitos de logging e para manter "
+"baixo o número de valores codificados manualmente no arquivo de confiuração."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"Caso este fosse um host sem acesso a um servidor de nomes DNS permanente , "
+"que usasse Discagem-sob-Demanda, isso poderia ter a consequência indesejada "
+"de ativar um evento de discagem que envolvesse custos telefônicos sempre que "
+"o Exim fosse iniciado ou a fila de mensagens fosse executada (mesmo sem "
+"nenhuma mensagem em espera)."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+"Habilite este recurso caso você esteja usando Discagem-sob_Demanda. Caso não "
+"esteja, desabilite-o."
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "Configurando o Exim v4 (exim-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "Dividir a configuração em pequenos arquivos ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"Os pacotes Debian do exim4 pode usar um único arquivo monolítico (/etc/exim4/"
+"exim4.conf.template) ou por volta de 40 pequenos arquivos localizados no "
+"diretório /etc/exim4/conf.d/, de onde a configuração final será gerada."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"O primeiro método é melhor indicado para grandes modificações e é geralmente "
+"mais estável. O últio método oferece uma maneira confortável de fazer "
+"pequenas mudanças mas é mais frágil e pode quebrar caso modificado "
+"extensivamente."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr ""
+"Caso você esteja com dúvidas você deveria escolher dividir a configuração."
+
+#~ msgid ""
+#~ "internet site; mail is sent and received directly using SMTP, mail sent "
+#~ "by smarthost; received via SMTP or fetchmail, mail sent by smarthost; no "
+#~ "local mail, local delivery only; not on a network, manually convert from "
+#~ "handcrafted Exim v3 configuration, no configuration at this time"
+#~ msgstr ""
+#~ "site internet; as mensagens são enviadas e recebidas diretamente usando "
+#~ "SMTP, mensagens enviadas por smarthost; recebidas por SMTP ou fetchmail, "
+#~ "mensagens enviadas por smarthost; nenhuma mensagem local, somente entrega "
+#~ "local; fora de uma rede, converter manualmente de uma configuração Exim "
+#~ "v3 feita manualmente, sem configuração no momento."
+
+#~ msgid "internet, smarthost, satellite, local, none"
+#~ msgstr "internet, smarthost, satelite, local, nenhuma"
+
+#~ msgid ""
+#~ "You must choose one of the options below as configuration type for the "
+#~ "Exim mail transport agent:"
+#~ msgstr ""
+#~ "Você deve escolher uma das opções a seguir para ser usada como o tipo de "
+#~ "configuração para o agente de transporte de mensagens Exim :"
+
+#~ msgid ""
+#~ "Internet site - mail is sent and received directly using SMTP. If your "
+#~ "needs don't fit neatly into any category, you probably want to start with "
+#~ "this one and then edit the config file by hand."
+#~ msgstr ""
+#~ "Internet Site - as mensagens são enviadas e recebidas diretamente usando "
+#~ "o protocolo SMTP. Caso suas necessidades não se encaixem em nenhuma outra "
+#~ "opção apresentada, você provavelmente iniciará com esta opção e então "
+#~ "poderá editar o arquivo de configuração manualmente para personalizá-lo."
+
+#~ msgid ""
+#~ "Internet site using smarthost - You receive Internet mail on this "
+#~ "machine, either directly by SMTP or by running a utility such as "
+#~ "fetchmail. Outgoing mail is sent using a smarthost. optionally with "
+#~ "addresses rewritten. This is probably what you want for a dialup system."
+#~ msgstr ""
+#~ "Internet site usando smarthost - Você recebe e-mail Internet nesta "
+#~ "máquina diretamente via SMTP ou executando um utilitário como o "
+#~ "fetchmail. As mensagens com destino externo são enviadas usando um "
+#~ "smarthost, opcionalmente com os endereços reescritos. Esta é "
+#~ "provavelmente a opção que você precisa para um sistema com conexão "
+#~ "discada (dialup)."
+
+#~ msgid ""
+#~ "Satellite system - All mail is sent to another machine, called a \"smart "
+#~ "host\" for delivery. root and postmaster mail is delivered according to /"
+#~ "etc/aliases. No regular mail is delivered locally."
+#~ msgstr ""
+#~ "Sistema satélite - Todas as mensagens são enviadas para uma outra "
+#~ "máquina, conhecida como \"smart host\" para entrega. As mensagens para o "
+#~ "root e para o postmaster são entregues de acordo com o arquivo /etc/"
+#~ "aliases. Nenhuma mensagem comum será recebida localmente."
+
+#~ msgid ""
+#~ "Local delivery only - You are not on a network. Mail for local users is "
+#~ "delivered."
+#~ msgstr ""
+#~ "Entrega somente local - Você não está em uma rede. As mensagens para "
+#~ "usuários locais serão entregues."
+
+#~ msgid "Should they be removed?"
+#~ msgstr "As mensagens devem ser removidas ?"
+
+#~ msgid "You must choose one of the options below:"
+#~ msgstr "Você deve escolher uma das opções a seguir :"
+
+#~ msgid "`mail name' of your system, (not visible for satellite-system)"
+#~ msgstr "`mail name' de seu sistema, (não visível para sistema satélite)"
+
+#~ msgid "Accept mail for which other destinations? (blank for none)"
+#~ msgstr ""
+#~ "Aceitar mensagens para quais outros destinos ? (em branco para nenhum)"
+
+#~ msgid "If there are any more, enter them here, separated by colons."
+#~ msgstr "Caso existam mais, informe-os aqui, separados por dois pontos."
+
+#~ msgid "Relay for which domains?"
+#~ msgstr "Fazer relay para quais domínios ?"
+
+#~ msgid "Allow relaying for which machines?"
+#~ msgstr "Permitir relaying para quais máquinas ?"
+
+#~ msgid "Which machine will act as the smarthost and handle outgoing mail?"
+#~ msgstr ""
+#~ "Qual máquina irá atuar como o smarthost e lidar com o envio de mensagens ?"
+
+#~ msgid "Who is to receive root and postmaster mail?"
+#~ msgstr "Quem receberá as mensagens enviadas para o root e postmaster ?"
diff --git a/debian/po/ru.po b/debian/po/ru.po
new file mode 100644
index 0000000..825141f
--- /dev/null
+++ b/debian/po/ru.po
@@ -0,0 +1,699 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: exim4 4.24-2\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-01-12 15:30+0500\n"
+"Last-Translator: Ilgiz Kalmetev <translator@ilgiz.pp.ru>\n"
+"Language-Team: russian <translator@ilgiz.pp.ru>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=KOI8-R\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr " ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+" /var/spool/exim4/input "
+" . , "
+" Exim, "
+" ."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr ""
+" exim(v3) "
+" exim4?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+" /var/spool/exim4/input exim exim-tls "
+" . "
+" exim4 ((/var/spool/exim4/input/), exim4."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+" , , exim4 "
+" exim(v3), ."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+" , "
+" exim(v3), "
+", , ."
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr ""
+"Internet-; SMTP"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr ""
+" ; SMTP "
+"fetchmail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr " ; "
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr " ; "
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr " Exim v3 "
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr " "
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr " :"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+" . "
+" , ."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+" IP-, "
+", , "
+" , \"\". , "
+" , "
+" root postmaster."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr " Exim4 ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+" , Exim 3. "
+" Exim 4, "
+" exim_convert4r4(8). /usr/share/doc/exim4-"
+"base/examples/example.conf.gz /usr/share/doc/exim4-base/README.Debian.gz!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+" , , "
+" ."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr " , ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+" , , "
+" . , "
+" root \"dpkg-reconfigure exim4-"
+"config\""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr " :"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+" ` ' - , "
+" ( "
+" @)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+" , Exim, ; "
+" (FQDN), ."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+" `', "
+" From: , ."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr " , :"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+" , "
+", (${mailname}) \"localhost\"."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+" ; , "
+" -, "
+" ."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+" - , , . "
+" ."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr ", :"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr ""
+" , ."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+" , . "
+" ."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr ""
+" . "
+"."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr ", :"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr ""
+" , ."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+", , , , "
+" , - "
+"."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+" , , . "
+" / (, 194.222.242.0/24)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+" IPv6 (, "
+"5f03::1200::836f::::/48)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr " "
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+" -, , "
+" ; "
+", ."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr " ?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr ", ():"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr ""
+" , ."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+" , SMTP, /"
+"usr/share/doc/exim4-base/README.SMTP-AUTH."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr " , root postmaster:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+" \"postmaster\" \"root\" "
+" "
+". , \"postmaster\" "
+" \"root\", "
+" \"root\" . "
+", /etc/aliases."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+" , "
+" , , -, "
+" m , , "
+" ."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+" ? "
+" , . \"none"
+"\", . - : "
+". Exim root "
+" /var/mail/mail. , "
+"!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr " /etc/aliases?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+" /etc/aliases, root "
+" , . "
+" , aliases.O."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr " IP- SMTP?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+" IP-, , "
+" . IPv6 (, "
+"5f03::1200::836f::::)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+" , Exim SMTP-"
+" ."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+" SMTP , "
+" , fetchmail, "
+" (MUA), localhost, "
+" , 127.0.0.1, "
+" ."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr " DNS ( )?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+" Exim DNS- ( , "
+" ..) "
+" , ."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+" DNS- "
+"--, , .. "
+" exim ( ) "
+" ."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+" --, ; "
+" - ."
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr " Exim v4 (exim4-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr " ?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+" exim4 Debian (/etc/exim4/"
+"exim4.conf.template) 40 /etc/exim4/"
+"conf.d/ ."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+" "
+", "
+", "
+" ."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr ""
+" , "
+"."
+
+#~ msgid ""
+#~ "internet site; mail is sent and received directly using SMTP, mail sent "
+#~ "by smarthost; received via SMTP or fetchmail, mail sent by smarthost; no "
+#~ "local mail, local delivery only; not on a network, manually convert from "
+#~ "handcrafted Exim v3 configuration, no configuration at this time"
+#~ msgstr ""
+#~ "Internet-; "
+#~ "SMTP, ; SMTP "
+#~ " fetchmail, ; "
+#~ ", ; , "
+#~ " Exim v3 , "
+
+#~ msgid "internet, smarthost, satellite, local, none"
+#~ msgstr ", , -, , "
+
+#~ msgid ""
+#~ "You must choose one of the options below as configuration type for the "
+#~ "Exim mail transport agent:"
+#~ msgstr ""
+#~ " Exim, "
+#~ " :"
+
+#~ msgid ""
+#~ "Internet site - mail is sent and received directly using SMTP. If your "
+#~ "needs don't fit neatly into any category, you probably want to start with "
+#~ "this one and then edit the config file by hand."
+#~ msgstr ""
+#~ "- - SMTP . "
+#~ " , : "
+#~ " ."
+
+#~ msgid ""
+#~ "Internet site using smarthost - You receive Internet mail on this "
+#~ "machine, either directly by SMTP or by running a utility such as "
+#~ "fetchmail. Outgoing mail is sent using a smarthost. optionally with "
+#~ "addresses rewritten. This is probably what you want for a dialup system."
+#~ msgstr ""
+#~ "-, , - "
+#~ " SMTP, , "
+#~ "fetchmail. , , "
+#~ " . "
+#~ "."
+
+#~ msgid ""
+#~ "Satellite system - All mail is sent to another machine, called a \"smart "
+#~ "host\" for delivery. root and postmaster mail is delivered according to /"
+#~ "etc/aliases. No regular mail is delivered locally."
+#~ msgstr ""
+#~ "- - , "
+#~ " \"smart host\". root postmaster "
+#~ " /etc/aliases. "
+#~ "."
+
+#~ msgid ""
+#~ "Local delivery only - You are not on a network. Mail for local users is "
+#~ "delivered."
+#~ msgstr ""
+#~ " - . "
+#~ " ."
+
+#~ msgid "Should they be removed?"
+#~ msgstr " ?"
+
+#~ msgid "You must choose one of the options below:"
+#~ msgstr " :"
+
+#~ msgid "`mail name' of your system, (not visible for satellite-system)"
+#~ msgstr "` ' ( -)"
+
+#~ msgid "Accept mail for which other destinations? (blank for none)"
+#~ msgstr ""
+#~ " - ? ( , "
+#~ ")"
+
+#~ msgid "If there are any more, enter them here, separated by colons."
+#~ msgstr " - , , ."
+
+#~ msgid "Relay for which domains?"
+#~ msgstr " (relay)?"
+
+#~ msgid "Allow relaying for which machines?"
+#~ msgstr " ?"
+
+#~ msgid "Which machine will act as the smarthost and handle outgoing mail?"
+#~ msgstr ""
+#~ " "
+#~ "?"
+
+#~ msgid "Who is to receive root and postmaster mail?"
+#~ msgstr " root postmaster?"
diff --git a/debian/po/sv.po b/debian/po/sv.po
new file mode 100644
index 0000000..b7d0553
--- /dev/null
+++ b/debian/po/sv.po
@@ -0,0 +1,603 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: exim4-config\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-03-20 02:19+0100\n"
+"Last-Translator: André Dahlqvist <andre.dahlqvist@telia.com>\n"
+"Language-Team: Swedish <debian-boot@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr "Ta bort olevererade e-postmeddelanden i kökatalogen?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"Det finns e-postmeddelanden i exims kökatalog /var/spool/exim4/input vilka "
+"ännu inte har levererats. Du kan behålla dem i händelse av att du beslutar "
+"att installera om Exim vid en senare tidpunkt, eller så kan du välja att ta "
+"bort dem."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr ""
+"Flytta hittils olevererade e-postmeddelanden från exim(v3):s till exim4:s "
+"kökatalog?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"Det finns vissa olevererade e-postmeddelanden i exim:s eller exim-tls "
+"kökatalog i /var/spool/exim/input/. De kan flyttas till exim4:s kö (/var/"
+"spool/exim4/input/) där de kommer att hanteras av exim4."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+"Var medveten om att detta enbart funkar ena vägen; exim4 kan hantera exim"
+"(v3):s kökatalog men det omvända gäller inte."
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"Flytta e-postmeddelandena endast om du inte planerar att gå tillbaka till "
+"exim(v3). Annars bör e-posten inte flyttas nu utan manuellt när du har "
+"konverterat ditt system."
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr "internetvärd; e-post skickas och tas emot direkt med SMTP"
+
+# FIXME: Översätta "smarthost"? "E-postserver" i sådana fall.
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr "e-post skickas av smarthost; tas emot via SMTP eller fetchmail"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "e-post skickas av smarthost; ingen lokal e-post"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "endast lokal leverans; inte del av ett nätverk"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr "konvertera manuellt från en hemsnickrad Exim v3-konfiguration"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "ingen konfigurering just nu"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "Generell typ av e-postkonfiguration:"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+"Flera generella konfigurationer av e-postsystem är möjliga. Välj den som "
+"bäst uppfyller dina behov."
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"System med dynamiska IP-adresser, däribland system med uppringd förbindelse, "
+"bör konfigureras att skicka utgående e-post till en annan maskin, en så "
+"kallad smarthost, för leverans. Du kan välja att ta emot e-post på ett "
+"sådant system eller att inte ha någon lokal e-postleverans förutom till root "
+"och postmaster."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "Konfigurera Exim4 manuellt?"
+
+# "Hemsnickrad" igen.
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+"Du angav att du har en hemsnickrad Exim 3-konfiguration. För att konvertera "
+"denna till Exim 4 kan du använda verktyget exim_convert4r4(8) efter "
+"installationen. Konsultera /usr/share/doc/exim4-base/examples/example.conf."
+"gz och /usr/share/doc/exim4-base/README.Debian.gz!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+"Till dess att ditt e-postsystem är konfigurerat kommer det att vara trasigt "
+"och inte möjligt att använda."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "Ska e-postsystemet verkligen lämnas okonfigurerat?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"Till dess att ditt e-postsystem är konfigurerat kommer det att vara trasigt "
+"och inte möjligt att använda. Du kan givetvis konfigurera det senare, "
+"antingen för hand eller genom att köra \"dpkg-reconfigure exim4-config\" som "
+"root."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "Systemets e-postnamn:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"Ditt \"e-postnamn\" är värdnamnsdelen av adressen som ska visas på utgående "
+"diskussionsgrupps- och e-postmeddelanden (efter användarnamnet och @-"
+"tecknet)."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"Detta namn kommer att användas av andra program förutom Exim; det bör vara "
+"det enda, fullständiga domännamnet (FQDN) från vilket e-post ska se ut att "
+"härstamma."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"Om du konfigurerar det här system som ett \"satellitsystem\" kommer detta "
+"namn inte att visas på From:-raderna i e-postmeddelanden eftersom "
+"adressomskrivning används."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "Andra destinationer för vilka e-post accepteras:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"Ange en lista med domäner för vilka denna maskin ska betrakta sig själv som "
+"den slutgiltiga destinationen, förutom e-postnamnet (${mailname}) och "
+"\"localhost\"."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"Som standard behandlas alla domäner lika; om du vill att skilda domännamn "
+"ska behandlas olika måste du redigera konfigurationsfilerna efteråt."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+"Om det finns några fler så ange dem här, åtskilda med kolon. Du kan lämna "
+"det här tomt om det inte finns några."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "Domäner för vilka e-post ska vidarebefordras:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr "Ange domänerna som du accepterar att vidarebefordra e-post för."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"Sådana domäner är domäner åt vilka du är beredd att acceptera e-post från "
+"var som helst på internet. Ange inte lokala domäner här."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr "Domänerna du anger ska avgränsas med kolon. Jokertecken kan användas."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "Maskiner för vilka e-post ska vidarebefordras:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr ""
+"Ange nätverken eller lokala maskinerna för vilka du accepterar att "
+"vidarebefordra e-post."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+"Naturligtvis ska alla maskiner som använder oss som smarthost undantas från "
+"vidarebefordringskontrollen eftersom användningen av oss för att "
+"vidarebefordra e-post åt dem är hela poängen."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"Om det finns några sådana ska du ange dem här, åtskilda med kolon. Du ska "
+"använda standardformatet adress/längd (t ex 194.222.242.0/24)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+"Du måste dubblera kolona i IPv6-adresser (t ex 5f03::1200::836f::::/48)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "Domännamn för lokala användare:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"Eftersom detta kommer att vara ett sattelitsystem måste du ange domännamnet "
+"som ska användas för e-post från lokala användare; detta är vanligtvis den "
+"maskin som du tar emot din e-post på."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr "Var kommer dina användare att läsa sin e-post?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr "Maskin som hanterar utgående e-post för denna värd (smarthost):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr "Ange värdnamnet på den maskin som utgående e-post skickas till."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"Referera till /usr/share/doc/exim4-base/README.SMTP-AUTH för anteckningar om "
+"hur SMTP-autentisering konfigureras."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "Mottagare för e-post till root och postmaster:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"E-post till \"postmaster\"- och \"root\"-kontona vidarebefordras vanligtvis "
+"till ett eller flera användarkonton tillhörande de riktiga "
+"systemadministratörerna. Som standard är konfigurationen sådan att e-post "
+"till \"postmaster\" och till diverse systemkonton vidarebefordras till \"root"
+"\" och e-post till \"root\" vidarebefordras till en riktig användare. Detta "
+"kan ändras genom att redigera /etc/aliases."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"Notera att e-post till postmaster vanligtvis bör läsas på systemet till "
+"vilket den var riktad, istället för att vidarebefordras någon annanstans, så "
+"(åtminstone en av) användarna som du väljer bör inte vidarebefordra sin e-"
+"post från denna maskin."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"Systemadministratörernas e-post går till vilka användarkonton? Ange ett "
+"eller flera användarnamn åtskilda med blanksteg eller komman. Ange \"none\" "
+"om du inte vill vidarebefordra e-posten. Notera att detta avråds starkt "
+"ifrån. Exim kan inte utföra leveranser som root och kommer att spara e-"
+"posten i /var/mail/mail. Notera också att användarnamnen ska vara gemena."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "Skriv över befintlig /etc/aliases?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"Du har redan en /etc/aliases-fil, men den vidarebefordrar inte e-post avsedd "
+"för root till ett användarkonto, vilket är starkt rekommenderat. Om du "
+"godkänner att den skrivs över kommer den gamla filen att sparas och döpas om "
+"till aliases.0."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr "IP-adresser att lyssna på efter inkommande SMTP-anslutningar:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"Ange en komma-avskild lista med IP-adresser som ska lyssnas på. Du måste "
+"dubblera kolona i IPv6-adresser (t ex 5f03::1200::836f::::)."
+
+# FIXME: Bättre översättning av "network interfaces" krävs. "Nätverkskort"
+# används på andra ställen, men här funkar det inte.
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+"Om du lämnar det här värdet tomt kommer Exim att lyssna efter anslutningar "
+"på SMTP-porten på alla nätverksanslutningar."
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"Om denna dator inte tar emot e-post direkt med SMTP från ANDRA värdar, utan "
+"endast från lokala tjänster som fetchmail eller ditt e-postprogram (MUA) som "
+"talar till \"localhost\" bör du förbjuda externa anslutningar till Exim "
+"genom att ange 127.0.0.1 här och därigenom stänga av lyssning på publika "
+"nätverksanslutningar."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr "Håll antal DNS-förfrågningar till ett minimum (ring-vid-behov)?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"I normalt driftläge gör Exim DNS-uppslagningar vid uppstart, vid mottagande "
+"och leverans av meddelanden etcetera. Detta görs i loggningssyfte samt för "
+"att hålla nere antalet hårdkodade värden i konfigurationsfilen."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"Om detta vore en värd utan permanent DNS-namnserveråtkomst som använde ring-"
+"vid-behov (Dial-on-Demand) så kunde detta få den oönskade följden att en "
+"start av exim eller att kön jobbas igenom (även när inga meddelanden väntar) "
+"kunde orsaka en kostsam uppringning."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+"Aktivera denna funktion om du använder ring-vid-behov (Dial-on-demand). "
+"Annars ska den avaktiveras."
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "Konfigurerar Exim v4 (exim4-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "Dela konfigurationen i små filer?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"Debians exim4-paket kan antingen använda en ensam monolitisk fil (/etc/exim4/"
+"exim4.conf.template) eller ungefär 40 små filer i /etc/exim4/conf.d/ för att "
+"skapa den slutgiltiga konfigurationen."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"Det förstnämnda passar bättre för stora ändringar och är generellt sett "
+"stabilare, medan det senare erbjuder ett praktiskt sätt att göra mindre "
+"ändringar men är bräckligare och kan gå sönder om stora ändringar görs."
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr "Om du är osäker så ska du inte använda delad konfiguration."
diff --git a/debian/po/templates.pot b/debian/po/templates.pot
new file mode 100644
index 0000000..1d9b123
--- /dev/null
+++ b/debian/po/templates.pot
@@ -0,0 +1,494 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr ""
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr ""
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr ""
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr ""
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr ""
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr ""
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr ""
diff --git a/debian/po/zh_CN.po b/debian/po/zh_CN.po
new file mode 100644
index 0000000..7515a6c
--- /dev/null
+++ b/debian/po/zh_CN.po
@@ -0,0 +1,558 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: exim4\n"
+"POT-Creation-Date: 2004-03-24 12:32+0100\n"
+"PO-Revision-Date: 2004-01-28 01:50+1300\n"
+"Last-Translator: Carlos Z.F. Liu <carlos_liu@yahoo.com>\n"
+"Language-Team: Chinese/Simplified <i18n-translation@lists.linux.net.cn>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid "Remove undelivered mails in spool directory?"
+msgstr "删除缓冲目录中未投递的信件吗?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:4
+msgid ""
+"There are mails in the exim spool directory /var/spool/exim4/input which "
+"have not yet been delivered. You can keep them in case you decide to re-"
+"install Exim at a later date, or you can choose to remove them."
+msgstr ""
+"有些未投递的信件被存放在 exim 的缓冲目录 /var/spool/exim4/input 中。如果您决"
+"定以后要重新安装 Exim ,您可以选择保存这些信件,否则您可以选择删除它们。"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid "Move yet undelivered mails from exim(v3) to exim4 spool?"
+msgstr "将未投递的信件从 exim(v3) 移到 exim4 的缓冲区中吗?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"There are some undelivered mails in the spool directory of exim or exim-tls "
+"in /var/spool/exim/input/. They can be moved to exim4's spool (/var/spool/"
+"exim4/input/) now where they will be handled by exim4."
+msgstr ""
+"有些未投递出去的信件被存放在 exim 或 exim-tls 的缓冲目录 /var/spool/exim/"
+"input 中。它们可以被移到由 exim4 负责处理的缓冲区(/var/spool/exim4/input/)"
+"中。"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Be aware that this works only one-way, exim4 can handle exim(v3)'s spool but "
+"not the other way round."
+msgstr ""
+"请小心,这项工作完全是单向的,exim4 可以处理 exim(v3) 的缓冲区,但反之则不可"
+"行。"
+
+#. Type: boolean
+#. Description
+#: ../exim4-base.templates.master:12
+msgid ""
+"Move the mails only if you don't plan to go back to exim(v3), otherwise the "
+"mail shouldn't be moved now but manually once you've converted your setup."
+msgstr ""
+"如果您计划不再返回使用 exim(v3),您可以移动这些信件。否则,请不要立刻移动它"
+"们。而应该等您到完成设置的转换后,用手动方式转移它们。"
+
+#. Type: select
+#. Choices
+#. Translators beware! the following six strings form a single
+#. Choices menu. - Every one of these strings has to fit in a standard
+#. 80 characters console, as the fancy screen setup takes up some space
+#. try to keep below ~72 characters.
+#: ../exim4-config.templates.master:7
+msgid "internet site; mail is sent and received directly using SMTP"
+msgstr "互联网站;直接通过 SMTP 发送或接收信件"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; received via SMTP or fetchmail"
+msgstr "用 smarthost 发信;通过 SMTP 或 fetchmail 接收信件"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "mail sent by smarthost; no local mail"
+msgstr "用 smarthost 发信;无本地信件"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "local delivery only; not on a network"
+msgstr "仅在本地投递信件; 无网络连接"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "manually convert from handcrafted Exim v3 configuration"
+msgstr "手动转换手写的 Exim v3 的配置"
+
+#. Type: select
+#. Choices
+#: ../exim4-config.templates.master:7
+msgid "no configuration at this time"
+msgstr "现在不进行配置"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid "General type of mail configuration:"
+msgstr "邮件系统配置的常见模式:"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Several general types of mail system configuration are possible. Select the "
+"one that best meets your needs."
+msgstr "这里提供一些邮件系统的常见配置模式。请选择一个最适合您的需要的模式。"
+
+#. Type: select
+#. Description
+#: ../exim4-config.templates.master:8
+msgid ""
+"Systems with dynamic IP addresses, including dialup systems, probably should "
+"be configured to send outgoing mail to another machine, called a \"smart host"
+"\" for delivery. You can choose to receive mail on such a system; or to have "
+"no local mail delivery, except mail for root and postmaster."
+msgstr ""
+"使用动态 IP 地址的系统,包括拔号系统,通常应该被设置为将寄出的信件送到另一台"
+"机器上,也就是用来完成投递工作的“smart host”。您可以选择在此系统上收信;或者"
+"不投递除 root 和 postmaster 的信件以外的本地信件。"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid "Configure Exim4 manually?"
+msgstr "手动配置 Exim4 吗?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"You indicated that you have a handcrafted Exim 3 configuration. To convert "
+"this to Exim 4, you can use the exim_convert4r4(8) tool after the "
+"installation. Consult /usr/share/doc/exim4-base/examples/example.conf.gz "
+"and /usr/share/doc/exim4-base/README.Debian.gz!"
+msgstr ""
+"您的 Exim 3 配置文件是手写的而非用工具自动生成。要想将其转换为 Exim 4 格式,"
+"请在安装结束后使用 exim_convert4r4(8) 工具。详情请参考 /usr/share/doc/exim4-"
+"base/examples/example.conf.gz 和 /usr/share/doc/exim4-base/README.Debian.gz!"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:20
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used."
+msgstr "在您完成邮件系统的设置之前,它将处于故障状态并不可使用。"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid "Really leave the mail system unconfigured?"
+msgstr "您真的不配置邮件系统吗?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:33
+msgid ""
+"Until your mail system is configured, it will be broken and cannot be used. "
+"You can of course configure it later, either by hand or by running \"dpkg-"
+"reconfigure exim4-config\" as root."
+msgstr ""
+"在您完成邮件系统的配置之前,它将处于故障状态并不可使用。当然,您可以稍后再手"
+"动或者以 root 身份执行“dpkg-reconfigure exim4-config”来进行配置。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid "System mail name:"
+msgstr "系统邮件名称:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"Your \"mail name\" is the hostname portion of the address to be shown on "
+"outgoing news and mail messages (following the username and @ sign)."
+msgstr ""
+"您的“邮件名称”指的是显示在发送出去的新闻或信件地址中的主机名部分(即跟在用户名"
+"和 @ 符号后的部分)。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"This name will be used by other programs besides Exim; it should be the "
+"single, full domain name (FQDN) from which mail will appear to originate."
+msgstr ""
+"这个名称也将被除 Exim 以外的其它程序所使用。它应该是一个能让信件显示其出处的"
+"单一的完整域名(FQDN)。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:40
+msgid ""
+"If you are configuring this system as 'satellite' this name won't appear on "
+"From: lines of mail, as rewriting is used."
+msgstr ""
+"如果您将这个系统配置成“卫星”模式,这个名称将不会显示在邮件的发件人中,就跟使"
+"用了重写(rewriting)功能一样。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid "Other destinations for which mail is accepted:"
+msgstr "其它可接受的邮件目的地址:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"Please enter a list of domains for which this machine should consider itself "
+"the final destination, apart from the mail name (${mailname}) and \"localhost"
+"\"."
+msgstr ""
+"请输入除邮件名称(${mailname})和“localhost”以外的被认为是以本机为最终目的地址"
+"的域名列表。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"By default all domains will be treated the same; if you want different "
+"domain names to be treated differently, you will need to edit the config "
+"files afterwards."
+msgstr ""
+"默认情况下,所有的域名都会被相同对待;如果您想对不同的域名区别对待,就需要在"
+"稍后编辑配置文件。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:53
+msgid ""
+"If there are any more, enter them here, separated by colons. You may leave "
+"this blank if there are none."
+msgstr "如果还有更多,请在这里输入它们,用冒号分隔。如果没有,请置空。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Domains to relay mail for:"
+msgstr "中转(relay)邮件的域名:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid "Please enter here the domains for which you accept to relay the mail."
+msgstr "请输入您接受中转(relay)的邮件的域名。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"Such domains are domains for which you are prepared to accept mail from "
+"anywhere on the Internet. Do not mention local domains here."
+msgstr ""
+"那些域名是指你用来接收来自因特网上任何地方的邮件的域名。这里不涉及到本\n"
+"地域名。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:68
+msgid ""
+"The domains you enter here should be separated by colons. Wildcards may be "
+"used."
+msgstr "您输入的域名应该用冒号分隔,可以使用通配符。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid "Machines to relay mail for:"
+msgstr "为这些主机进行邮件转发:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Please enter here the networks of local machines for which you accept to "
+"relay the mail."
+msgstr "请在此输入可以使用本机进行邮件转发的本地主机的网络名。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"Obviously, any machines that use us as a smarthost have to be excluded from "
+"the relaying controls, as using us to relay mail for them is the whole point."
+msgstr ""
+"很明显,任何将我们作为 smarthost 的主机都不应该进行转发控制,因为使用本机为它"
+"们转发信件是我们的主要目的。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"If there are any, enter them here, separated by colons. You should use the "
+"standard address/length format (e.g. 194.222.242.0/24)"
+msgstr ""
+"如果有,请把它们填在这里,地址之间用冒号分隔。你应该使用标准的 地址/长度 格式"
+"(例如:194.222.242.0/24)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:80
+msgid ""
+"You need to double the colons in IPv6 addresses (e.g. "
+"5f03::1200::836f::::/48)"
+msgstr "您需要在 IPv6 地址中使用双冒号(例如:5f03::1200::836f::::/48)"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Domain name for local users:"
+msgstr "本地用户的域名:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid ""
+"Since this is going to be a satellite system, you must specify the domain "
+"name to use for mail from local users; typically this is the machine on "
+"which you normally receive your mail."
+msgstr ""
+"因为本机将被配置为一台“卫星”系统,您必须指定本地用户邮件的域名,通常应该是您"
+"用来收取邮件的那台机器。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:96
+msgid "Where will your users read their mail?"
+msgstr "您的用户将从何处读取他们的邮件?"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Machine handling outgoing mail for this host (smarthost):"
+msgstr "负责处理从本机寄出的邮件的机器(smarthost):"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid "Enter the hostname of the machine to which outgoing mail is sent."
+msgstr "请输入邮件将被送抵的主机名。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:105
+msgid ""
+"Refer to /usr/share/doc/exim4-base/README.SMTP-AUTH for notes about setting "
+"up SMTP authentication."
+msgstr ""
+"有关设置 SMTP 验证的注意事项,请参阅 /usr/share/doc/exim4-base/README.SMTP-"
+"AUTH。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid "Root and postmaster mail recipient:"
+msgstr "root 和 postmaster 邮件的接受者:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Mail for the \"postmaster\" and \"root\" accounts is usually redirected to "
+"one or more user accounts of the actual system administrators. The default "
+"is to set things up so that mail for \"postmaster\" and for various system "
+"accounts is redirected to \"root\", and mail for \"root\" is redirected to a "
+"real user. This can be changed by editing /etc/aliases."
+msgstr ""
+"发往“postmaster”和“root”帐户的邮件通常会转发到一个或者多个真正的系统管理员帐"
+"户。默认的设置是把发往“postmaster”和其他系统帐号的信件转发给“root”,而发"
+"往“root”的信件转发到一个真实的用户。您也可以通过编辑 /etc/aliases 改变以上设"
+"置。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"Note that postmaster-mail should usually be read on the system to which it "
+"is directed, rather than being forwarded elsewhere, so (at least one of) the "
+"users you choose should not redirect their mail off this machine."
+msgstr ""
+"请注意,邮件管理员邮件(postmaster-mail)应该在它的目的主机上读取,而不是转发到"
+"别处,所以你选择的用户(至少有其中之一)不应该把他们的邮件重定向到其他机器。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:113
+msgid ""
+"System administrator mail goes to which user accounts? Enter one or more "
+"usernames separated by spaces or commas. Enter \"none\" if you do not want "
+"to redirect the mail. - NB this is strongly discouraged. Exim cannot run "
+"deliveries as root and will save the mail to /var/mail/mail Also, note that "
+"usernames should be lowercase!"
+msgstr ""
+"将系统管理员邮件发送给哪个用户帐号?请输入一个或多个用空格或逗号分隔的用户"
+"名。如果您不希望重定向管理邮件请输入“none”。- 注意:强烈建议不要这样做。Exim "
+"无法以 root 身份进行投递,并且会将这些邮件保存到 /var/mail/mail 中。另外还要"
+"注意,用户名应该是小写的。"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid "Overwrite existing /etc/aliases?"
+msgstr "/etc/aliases 已经存在,覆盖它吗?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:133
+msgid ""
+"You already have an /etc/aliases file, but it does not redirect mail for "
+"root to a user account, which is strongly recommended. If you accept "
+"overwriting it, the old file will be kept and renamed to aliases.O."
+msgstr ""
+"您的系统中已经存在一个 /etc/aliases 文件,但其设置并不会将寄给 root 的信件转"
+"发给一个普通用户(强烈推荐的此设定)。如果您同意覆盖它,原来的文件将被保留并更"
+"名为 aliases.O。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid "IP-addresses to listen on for incoming SMTP connections:"
+msgstr "要监听的入站 SMTP 连接的 IP 地址:"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"Enter a colon-separated list of IP-addresses to listen on. You need to "
+"double the colons in IPv6 addresses (e.g. 5f03::1200::836f::::)."
+msgstr ""
+"输入用冒号分隔的监听 IP 地址列表。您需要在 IPv6 地址中使用双冒号(例如:"
+"5f03::1200::836f::::)。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If you leave this value empty, Exim will listen for connections on the SMTP "
+"port of all available network interfaces."
+msgstr "如果你在这里保留空白,Exim 会在所有可用接口监听 SMTP 入站连接。"
+
+#. Type: string
+#. Description
+#: ../exim4-config.templates.master:141
+msgid ""
+"If this computer does not receive e-mail directly per SMTP from OTHER hosts, "
+"but only from local services like fetchmail or your e-mail program (MUA) "
+"talking to localhost you should prohibit external connections to Exim by "
+"setting this option to 127.0.0.1 and therefore disabling listening on public "
+"network interfaces."
+msgstr ""
+"如果这台计算机不直接通过 SMTP 接收来自其他主机的邮件,而仅仅通过 fetchmail 或"
+"邮件客户端(MUA)这类跟 localhost 交互的本地服务收取邮件,您应该将这个选项设定"
+"为 127.0.0.1 来阻止外部网络到 Exim 的连接并且因此取消了在公共接口上的监听。"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid "Keep number of DNS-queries minimal (Dial-on-Demand)?"
+msgstr "保持最小 DNS 查询量吗(按需拔号 Dial-on-Demand)?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"In normal mode of operation Exim makes DNS-lookups at startup, when "
+"receiving or delivering message, etc. for logging purposes and to keep the "
+"number of hard-coded values in the configuration file small."
+msgstr ""
+"在普通模式的操作中,出于纪录日志和保持配制文件中硬编码为一个小值的目的,Exim "
+"会在接收或者投递信件等动作开始的时候进行 DNS 查询。"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"If this were a host without permanent DNS-nameserver-access using Dial-on-"
+"Demand this might have the unwanted consequence that starting up exim or "
+"running the queue (even with no messages waiting) might trigger a costly "
+"dial-up-event."
+msgstr ""
+"如果这是一台使用按需拨号的不能永久访问 DNS 服务的主机,这可能会导致我们不想要"
+"的结果,当 exim 启动或者执行信件队列时(哪怕是队列里面没有信件等待投递)都可能"
+"触发一个昂贵的“在接到请求时拨号”动作。"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:157
+msgid ""
+"Enable this feature if you are using Dial-on-Demand; otherwise, disable it."
+msgstr "如果您在使用按需拔号(Dial-on-Demand),请开启此选项;否则,请禁用之。"
+
+#. Type: title
+#. Description
+#: ../exim4-config.templates.master:171
+msgid "Configuring Exim v4 (exim4-config)"
+msgstr "配置 Exim v4 (exim4-config)"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "Split configuration into small files?"
+msgstr "将配置文档分拆成小文件吗?"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The Debian exim4 packages can either use a single monolithic file (/etc/"
+"exim4/exim4.conf.template) or about 40 small files in /etc/exim4/conf.d/ to "
+"generate the final configuration."
+msgstr ""
+"Debian exim4 软件包既可以使用单个配置文件(/etc/exim4/exim4.conf.template),也"
+"可以通过 /etc/exim4/conf.d/ 下的大约 40 个小文件来产生最终的配置文档。"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid ""
+"The former is better suited for large modifications and is generally more "
+"stable, whereas the latter offers a comfortable way to make smaller "
+"modifications but is more fragile and might break if modified extensively."
+msgstr ""
+"前者更适合对配置进行大量更动,相对而言也较稳定。后者则提供了一种舒服地进行少"
+"量修改的方法,但也会比较脆弱,如果大量修改配置内容就可能会导致故障。"
+
+#. Type: boolean
+#. Description
+#: ../exim4-config.templates.master:175
+msgid "If you are unsure then you should not use split configuration."
+msgstr "如果您不太确定,请不要选择分拆配置。"
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..bce2d4c
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,402 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# This file is public domain software, originally written by Joey Hess.
+#
+# This version is for a hypothetical package that builds an
+# architecture-dependant package, as well as an architecture-independent
+# package.
+
+# Uncomment this to turn on verbose mode.
+export DH_VERBOSE=1
+
+buildname=$${build:-`$(SHELL) scripts/os-type`-`$(SHELL) scripts/arch-type`}
+
+# Include dpatch stuff.
+include /usr/share/dpatch/dpatch.make
+
+DEBIAN:=$(shell pwd)/debian
+
+CFLAGS = -g -Wall -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+CFLAGS += -O0
+else
+CFLAGS += -O2
+endif
+
+export CFLAGS
+
+# Which packages should we build?
+buildbasepackages=yes
+
+builddaemonpackages=exim4-daemon-heavy
+# If you want to build a daemon with a configuration tailored to YOUR special
+# needs, call "fakeroot debian/rules unpack-configs", copy EDITME.exim4-light
+# to EDITME.exim4-custom and modify it.
+#
+# If you want to create multiple custom packages with different names, use
+# the script debian/create-custom-name [suffix].
+#
+# Afterwards EITHER disable the definition of builddaemonpackages 4 lines above
+# by adding a hash-mark (#) at the start of the line and enable the one
+# below instead by removing the hash-mark OR simply call
+# "fakeroot debian/rules buildbasepackages=no builddaemonpackages=exim4-daemon-custom binary"
+#builddaemonpackages=exim4-daemon-custom
+
+# If you want to build a source-package that builds the custom daemon call
+# "fakeroot debian/rules pack-configs" after customizing EDITME.exim4-custom
+
+ifeq ($(buildbasepackages),yes)
+buildpackages=exim4-base exim4-daemon-light eximon4 $(builddaemonpackages)
+else
+buildpackages=$(builddaemonpackages)
+endif
+
+# generate -pexim4-base -peximon4 ... commandline for debhelper
+dhbuildpackages=$(addprefix -p,$(buildpackages))
+# exim4-daemon-light --> build-exim4-daemon-light/exim
+daemonbinaries=$(addprefix build-,$(addsuffix /exim,$(builddaemonpackages)))
+debiandaemonbinaries=$(addprefix $(DEBIAN)/,$(addsuffix /usr/sbin/exim4,$(builddaemonpackages)))
+
+# get upstream-version from debian/changelog, i.e. anything until the first -
+UPSTREAMVERSION := $(shell dpkg-parsechangelog | sed -n '/^Version: [0-9\.]\+-.\+/{s/^Version: \([0-9\.]\+\)-.\+/\1/;p;}')
+MTACONFLICTS := $(shell cat debian/mtalist)
+
+ifeq (,$(wildcard /usr/bin/po2debconf))
+PO2DEBCONF := no
+else
+PO2DEBCONF := yes
+endif
+
+unpack-configs: unpack-configs-stamp
+unpack-configs-stamp: patch-stamp
+ patch -o EDITME.eximon exim_monitor/EDITME debian/EDITME.eximon.diff
+ patch -o EDITME.exim4-light src/EDITME debian/EDITME.exim4-light.diff
+ -for editme in debian/EDITME.exim4-*.diff; do \
+ if [ "$$editme" != "debian/EDITME.exim4-light.diff" ]; then \
+ TARGETNAME=`basename $$editme .diff`; \
+ echo patch -o $$TARGETNAME EDITME.exim4-light $$editme; \
+ patch -o $$TARGETNAME EDITME.exim4-light $$editme; \
+ fi; \
+ done
+ touch unpack-configs-stamp
+
+pack-configs: patch
+ -diff -u src/EDITME EDITME.exim4-light > debian/EDITME.exim4-light.diff
+ -for editme in EDITME.exim4-*; do \
+ if [ "$$editme" != "EDITME.exim4-light" ]; then \
+ echo diff -u EDITME.exim4-light $$editme; \
+ diff -u EDITME.exim4-light $$editme > debian/$${editme}.diff; \
+ fi; \
+ done
+ -diff -u exim_monitor/EDITME EDITME.eximon > debian/EDITME.eximon.diff
+
+# only called manually by maintainer before upload.
+update-mtaconflicts:
+ which grep-available > /dev/null && \
+ grep-available --show-field=Package --field=Provides \
+ mail-transport-agent --no-field-names \
+ /var/lib/apt/lists/*Packages | grep -v exim | sort -u | \
+ tr '\n' ',' | sed -e 's/,/, /g;s/, $$//' > debian/mtalist
+
+configure: configure-stamp
+
+# the patches might change src/EDITME.
+configure-stamp: patch-stamp unpack-configs-stamp
+ dh_testdir
+ # Add here commands to configure the package.
+ touch configure-stamp
+
+exiscan-patched-stamp:
+ @echo DEBUG running $@
+ dh_testdir
+ @echo "applying exiscan patch"
+ patch -f --no-backup-if-mismatch --dry-run -p1 < debian/patches/exiscan.patch && \
+ patch -f --no-backup-if-mismatch -p1 < debian/patches/exiscan.patch > $@ 2>&1
+
+exiscan-unpatched:
+ @echo DEBUG running $@
+ @if test -e exiscan-patched-stamp ; then \
+ echo "reversing exiscan patch" && \
+ patch -f --no-backup-if-mismatch -p1 -R < debian/patches/exiscan.patch && \
+ rm -f exiscan-patched-stamp ; \
+ fi
+
+# Build binaries for the base package, the eximon4 package, and the
+# exim4-daemon-light package.
+build-exim4-daemon-light/exim: configure-stamp
+ echo build-exim4-daemon-light
+ dh_testdir
+ $(MAKE) -f $(DEBIAN)/rules exiscan-unpatched
+
+ rm -rf build-$(buildname)
+ # Add here command to compile/build the package.
+ mkdir -p Local
+ cp EDITME.exim4-light Local/Makefile
+ cp EDITME.eximon Local/eximon.conf
+ $(MAKE)
+ mv build-$(buildname) build-exim4-daemon-light
+
+build-exim4-daemon-custom/exim: configure-stamp
+ echo build-exim4-daemon-custom
+ dh_testdir
+ $(MAKE) -f $(DEBIAN)/rules exiscan-patched-stamp
+
+ rm -rf build-$(buildname)
+ # Add here command to compile/build the package.
+ mkdir -p Local
+ cp EDITME.exim4-custom Local/Makefile
+ $(MAKE) Local/Makefile configure
+ # This is a kludge. The upstream Makefile should be fixed, really.
+ $(MAKE) -C build-$(buildname) checklocalmake Makefile os.h os.c config.h buildpcre buildlookups buildrouters buildtransports buildauths exim
+ @for i in doc/exiscan-acl-examples.txt doc/exiscan-acl-spec.txt ; do \
+ test -e $$i && cp -v $$i build-$(buildname)/ ; \
+ done
+ mv build-$(buildname) build-exim4-daemon-custom
+ $(MAKE) -f $(DEBIAN)/rules exiscan-unpatched
+
+build-exim4-daemon-heavy/exim: configure-stamp
+ echo build-exim4-daemon-heavy
+ dh_testdir
+ $(MAKE) -f $(DEBIAN)/rules exiscan-patched-stamp
+
+ rm -rf build-$(buildname)
+ # Add here command to compile/build the package.
+ mkdir -p Local
+ cp EDITME.exim4-heavy Local/Makefile
+ $(MAKE) Local/Makefile configure
+ # This is a kludge. The upstream Makefile should be fixed, really.
+ $(MAKE) -C build-$(buildname) checklocalmake Makefile os.h os.c config.h buildpcre buildlookups buildrouters buildtransports buildauths exim
+ @for i in doc/exiscan-acl-examples.txt doc/exiscan-acl-spec.txt ; do \
+ test -e $$i && cp -v $$i build-$(buildname)/ ; \
+ done
+ mv build-$(buildname) build-exim4-daemon-heavy
+ $(MAKE) -f $(DEBIAN)/rules exiscan-unpatched
+
+build-indep: build-indep-stamp
+build-indep-stamp:
+ dh_testdir
+
+ # Add here command to compile/build the arch indep package.
+ # It's ok not to do anything here, if you don't need to build
+ # anything for this package.
+ #/usr/bin/docbook-to-man debian/exim.sgml > exim.1
+
+ touch build-indep-stamp
+
+build-arch: build-arch-stamp
+
+ifeq ($(buildbasepackages),yes)
+build-arch-stamp: build-exim4-daemon-light/exim $(daemonbinaries)
+else
+build-arch-stamp: $(daemonbinaries)
+endif
+ dh_testdir
+ touch build-arch-stamp
+
+build: build-arch build-indep
+
+clean: cleanfiles unpatch
+
+cleanfiles:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp configure-stamp installbase-stamp
+
+ # Add here commands to clean up after the build process.
+ -$(MAKE) clean
+ $(MAKE) -f $(DEBIAN)/rules exiscan-unpatched
+ -rm -rf build-* doc/tmp
+ -rm -f EDITME.* Local/Makefile Local/eximon.conf unpack-configs-stamp
+
+ #these are identical for all daemon-* and therefore symlinked
+ @cd $(DEBIAN) && find . -maxdepth 1 \
+ -regex '^\./exim4-daemon-.*\.\(postinst\|prerm\)$$' \
+ -and -not -name 'exim4-daemon-light.*' -print0 \
+ | xargs -0r rm -v
+
+ pwd
+ chmod 755 $(DEBIAN)/exim-gencert
+ifeq ($(PO2DEBCONF),yes)
+ # Compatibility with woody.
+ echo 1 > debian/po/output
+ for i in debian/*.templates.master ; do \
+ po2debconf $$i > debian/`basename $$i .master`; \
+ done
+ rm -f debian/po/output
+endif
+ dh_clean podebconfize
+ rm -rf Local
+
+installbase-stamp: build-exim4-daemon-light/exim
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ rm -rf build-$(buildname)
+ ln -s build-exim4-daemon-light build-$(buildname)
+ $(MAKE) install \
+ INSTALL_ARG=-no_symlink \
+ inst_conf=$(DEBIAN)/exim4-base/usr/share/doc/exim4-base/examples/example.conf \
+ inst_aliases=$(DEBIAN)/exim4-base/usr/share/doc/exim4-base/examples/aliases \
+ inst_dest=$(DEBIAN)/exim4-base/usr/sbin
+ sed -e 's,/[a-zA-Z/0-9.-]*exim4-base/examples/,/etc/,' \
+ < $(DEBIAN)/exim4-base/usr/share/doc/exim4-base/examples/example.conf \
+ > $(DEBIAN)/exim4-base/usr/share/doc/exim4-base/examples/example.conf.tmp
+ mv $(DEBIAN)/exim4-base/usr/share/doc/exim4-base/examples/example.conf.tmp \
+ $(DEBIAN)/exim4-base/usr/share/doc/exim4-base/examples/example.conf
+ sed -e 's,PERL_COMMAND,/usr/bin/perl,' < src/convert4r4.src \
+ > $(DEBIAN)/exim4-base/usr/sbin/exim_convert4r4
+ chmod 755 $(DEBIAN)/exim4-base/usr/sbin/exim_convert4r4
+ mv $(DEBIAN)/exim4-base/usr/sbin/exim \
+ $(DEBIAN)/exim4-daemon-light/usr/sbin/exim4
+ # fix permssions of /usr/sbin/exim4 if running with restrictive umask,
+ # dh_fixperms sanitizes anything else
+ chmod 4755 $(DEBIAN)/exim4-daemon-light/usr/sbin/exim4
+ mv $(DEBIAN)/exim4-base/usr/sbin/eximon \
+ $(DEBIAN)/eximon4/usr/sbin
+ mv $(DEBIAN)/exim4-base/usr/sbin/eximon.bin \
+ $(DEBIAN)/eximon4/usr/lib/exim4
+ pod2man --center=EXIM4 --section=8 \
+ $(DEBIAN)/exim4-base/usr/sbin/eximstats \
+ $(DEBIAN)/exim4-base/usr/share/man/man8/eximstats.8
+ install -m755 $(DEBIAN)/syslog2eximlog $(DEBIAN)/exim4-base/usr/sbin/
+ pod2man --center=EXIM4 --section=8 \
+ $(DEBIAN)/syslog2eximlog \
+ $(DEBIAN)/exim4-base/usr/share/man/man8/syslog2eximlog.8
+ # if you change anything here, you will have to change
+ # config-custom/debian/rules as well
+ sed -e \
+ "s/^UPEX4C_version=\"\"/UPEX4C_version=\"`dpkg-parsechangelog | sed -n '/^Version: /s/^Version: //p'`\"/" \
+ < $(DEBIAN)/debconf/update-exim4.conf \
+ > $(DEBIAN)/exim4-config/usr/sbin/update-exim4.conf
+ chmod 755 $(DEBIAN)/exim4-config/usr/sbin/update-exim4.conf
+ install -m 755 $(DEBIAN)/update-exim4defaults $(DEBIAN)/exim4-config/usr/sbin
+
+ cd $(DEBIAN)/debconf/conf.d && \
+ tar cf - `find \( -path '*/CVS/*' -prune \) -or \( -type f -print \)` | \
+ { cd $(DEBIAN)/exim4-config/etc/exim4/conf.d/ && \
+ tar xf - ; }
+
+ # ship a copy in examples
+ # install -m644 debian/debconf/exim4.conf.template debian/exim4-config/usr/share/doc/exim4-config/examples/exim4.conf.template.debconf
+ install -m644 debian/email-addresses debian/exim4-config/etc/
+ install -m755 debian/ip-up.d debian/exim4-config/etc/ppp/ip-up.d/exim4
+ install -m640 -oroot -groot debian/passwd.client $(DEBIAN)/exim4-config/etc/exim4/
+ # generate .template. Ugly - better alternative?
+ cd $(DEBIAN)/debconf/conf.d/ && \
+ for i in main acl router transport retry rewrite auth ; do \
+ cat `env LC_ALL=C ls -d $$i/* | grep -v /CVS` ; \
+ done \
+ > $(DEBIAN)/exim4-config/etc/exim4/exim4.conf.template
+# dh_movefiles
+ touch installbase-stamp
+
+
+# This dependency expands to
+# debian/exim4-daemon-heavy/usr/sbin/exim4: build-exim4-daemon-heavy/exim
+$(debiandaemonbinaries): $(DEBIAN)/%/usr/sbin/exim4: build-%/exim
+ dh_testdir
+ dh_testroot
+ dh_installdirs
+ install -m4755 -oroot -groot $< $@
+
+
+podebconfize:
+ifeq ($(PO2DEBCONF),yes)
+ # let debhelper do po2debconf if it is new enough.
+ if dh_testversion 4.1.16 >/dev/null 2>&1 ; then \
+ for i in debian/*.templates.master ; do \
+ cat $$i > debian/`basename $$i .master`; \
+ touch --reference=$$i debian/`basename $$i .master` ; \
+ done \
+ fi
+endif
+ touch $@
+
+# Build architecture-independent files here.
+# this is just exim4-config and exim4.
+binary-indep: build $(install) podebconfize
+ifeq ($(buildbasepackages),yes)
+ dh_testdir -i
+ dh_testroot -i
+ # upstream changelog is only in exim4-base
+ dh_link -i
+ dh_installchangelogs -i
+ dh_installdocs -i
+ dh_installexamples -i
+ #dh_installmenu -i
+ dh_installdebconf -i
+ dh_installlogrotate -i
+# dh_installemacsen -i
+ #dh_installpam -i
+ #dh_installmime -i
+# dh_installinit -i
+ dh_installcron -i
+# dh_installinfo -i
+# dh_undocumented -i
+ dh_installman -i
+ dh_install -i
+ dh_strip -i
+ dh_compress -i
+ dh_fixperms -i -X/etc/exim4/passwd.client
+# dh_makeshlibs -i
+ dh_installdeb -i
+# dh_perl -i
+ dh_shlibdeps -i
+ dh_gencontrol -i -- -VUpstream-Version=$(UPSTREAMVERSION) -VMTA-Conflicts="$(MTACONFLICTS)"
+ dh_md5sums -i
+ dh_builddeb -i
+endif
+
+# Build architecture-dependent files here.
+ifeq ($(buildbasepackages),yes)
+install=installbase-stamp $(debiandaemonbinaries)
+else
+install=$(debiandaemonbinaries)
+endif
+
+binary-arch: build $(install) podebconfize
+ dh_testdir $(dhbuildpackages)
+ dh_testroot $(dhbuildpackages)
+ # symlink identical maintainerscripts
+ @for i in $(builddaemonpackages) ; do \
+ ln -sfv exim4-daemon-light.prerm \
+ "$(DEBIAN)/$$i.prerm" ; \
+ ln -sfv exim4-daemon-light.postinst \
+ "$(DEBIAN)/$$i.postinst" ; \
+ done
+ # upstream changelog is only in exim4-base, the other packages include
+ # a symlink
+ dh_installchangelogs -pexim4-base doc/ChangeLog
+ # remove "-pexim4-base" from "-pexim4-base -pexim4-daemon-light ..."
+ dh_installchangelogs $(subst -pexim4-base,,$(dhbuildpackages))
+ dh_installdocs $(dhbuildpackages)
+ dh_installexamples $(dhbuildpackages)
+ dh_installmenu $(dhbuildpackages)
+ dh_installdebconf $(dhbuildpackages)
+ dh_installlogrotate $(dhbuildpackages)
+# dh_installemacsen $(dhbuildpackages)
+ dh_installpam $(dhbuildpackages)
+ dh_installmime $(dhbuildpackages)
+ dh_installinit $(dhbuildpackages) --noscripts --init-script=exim4
+ dh_installcron $(dhbuildpackages)
+# dh_installinfo $(dhbuildpackages)
+# dh_undocumented $(dhbuildpackages)
+ dh_installman $(dhbuildpackages)
+ dh_install $(dhbuildpackages)
+ dh_strip $(dhbuildpackages)
+ dh_link $(dhbuildpackages)
+ dh_compress $(dhbuildpackages)
+ dh_fixperms $(dhbuildpackages) -Xusr/sbin/exim4
+# dh_makeshlibs $(dhbuildpackages)
+ dh_installdeb $(dhbuildpackages)
+# dh_perl $(dhbuildpackages)
+ dh_shlibdeps $(dhbuildpackages)
+ dh_gencontrol $(dhbuildpackages) -- -VUpstream-Version=$(UPSTREAMVERSION) -VMTA-Conflicts="$(MTACONFLICTS)"
+ dh_md5sums $(dhbuildpackages)
+ dh_builddeb $(dhbuildpackages)
+
+binary: binary-arch binary-indep
+.PHONY: build clean binary-indep binary-arch binary install exiscan-unpatched
diff --git a/debian/syslog2eximlog b/debian/syslog2eximlog
new file mode 100755
index 0000000..edf974b
--- /dev/null
+++ b/debian/syslog2eximlog
@@ -0,0 +1,60 @@
+#!/usr/bin/perl -w
+#
+# Copyright (c) 2003 Martin A. Godisch for Debian GNU/Linux, GPL
+
+=head1 NAME
+
+syslog2eximlog - make syslog output suitable for eximstats
+
+=head1 SYNOPSIS
+
+B<syslog2eximlog> B<<> I<mail.log> B<|> B<eximstats>
+
+=head1 DESCRIPTION
+
+syslog2eximlog converts logfiles produced by syslog when using
+B<log_file_path = syslog> in your I<exim.conf> back to exim
+logfile format, suitable for B<eximstats>. B<syslog_timestamp>
+may be B<true> or B<false>.
+
+The program always succeeds, invalid lines will be ignored.
+
+=head1 BUGS
+
+Please report any bugs directly to the author.
+
+=head1 AUTHOR
+
+Martin A. Godisch <godisch@debian.org> for Debian GNU/Linux.
+
+=head1 SEE ALSO
+
+B<eximstats>(8)
+
+=cut
+
+my @date = localtime(time);
+$date[4] += 1;
+$date[5] += 1900;
+my %names = (
+ "Jan", "01", "Feb", "02", "Mar", "03", "Apr", "04",
+ "May", "05", "Jun", "06", "Jul", "07", "Aug", "08",
+ "Sep", "09", "Oct", "10", "Nov", "11", "Dec", "12"
+);
+
+while (<>) {
+ next unless (s/^(\w{3})\s([\s\d]\d)\s(\d\d):(\d\d):(\d\d)\s\S+\sexim\[\d+\]:\s//);
+
+ my ($month, $day, $hour, $min, $sec) = ($names{$1}, $2, $3, $4, $5);
+
+ if (/^\d{4}-\d\d-\d\d\s\d\d:\d\d:\d\d\s/) {
+ print $_;
+ } else {
+ printf "%04d-%02d-%02d %02d:%02d:%02d %s",
+ # assume current year if month/day <= today, otherwise assume last year
+ $month > $date[4] || $month == $date[4] && $day > $date[3] ? $date[5] - 1 : $date[5],
+ $month, $day, $hour, $min, $sec, $_;
+ }
+}
+
+exit 0;
diff --git a/debian/update-exim4defaults b/debian/update-exim4defaults
new file mode 100644
index 0000000..ef4ee97
--- /dev/null
+++ b/debian/update-exim4defaults
@@ -0,0 +1,276 @@
+#!/bin/sh
+# update-exim4defaults(8): manage entries in /etc/default/exim4
+# per script
+
+[ -n "$EX4DEBUG" ] && set -x
+
+defaultfile=/etc/default/exim4
+
+EX4DEF_INIT=false
+EX4DEF_FORCE=false
+
+
+if [ -r ${defaultfile} ]; then
+ . ${defaultfile}
+fi
+
+
+# initialize variables
+EX4DEF_QUEUERUNNER="${QUEUERUNNER}"
+EX4DEF_QUEUEINTERVAL="${QUEUEINTERVAL}"
+EX4DEF_COMMONOPTIONS="${COMMONOPTIONS}"
+EX4DEF_QUEUERUNNEROPTIONS="${QUEUERUNNEROPTIONS}"
+EX4DEF_QFLAGS="${QFLAGS}"
+EX4DEF_SMTPLISTENEROPTIONS="${SMTPLISTENEROPTIONS}"
+
+EX4DEF_FLAGOPTIONS=false
+EX4DEF_FLAGREMOVE=false
+
+ex4def_usage ()
+{
+ echo "update-exim4defaults: manage entries in /etc/default/exim4"
+ echo " usage: update-exim4defaults [[--queuerunner combined|separate|queueonly|ppp|no|nodaemon]"
+ echo " [--qflags flags ] [--queuetime time] [--commonoptions options]"
+ echo " [--queuerunneroptions options] [--smtplisteneroptions options]]"
+ echo " [--remove-common options] [--remove-queue options]"
+ echo " [--remove-smtp options]"
+ echo " [--force|-f] [--help|-h]"
+ echo " [--init]"
+}
+
+
+# used for initialzing and with --force.
+ex4def_write(){
+ EX4DEF_TMP=`tempfile -m 600 -p ex4`
+ cat << EOF > "${EX4DEF_TMP}"
+# /etc/default/exim4
+EX4DEF_VERSION='${EX4DEF_VERSION}'
+
+# 'combined' - one daemon running queue and listening on SMTP port
+# 'no' - no daemon running the queue
+# 'separate' - two separate daemons
+# 'ppp' - only run queue with /etc/ppp/ip-up.d/exim4.
+# 'nodaemon' - no daemon is started at all.
+# 'queueonly' - only a queue running daemon is started, no SMTP listener.
+# setting this to 'no' will also disable queueruns from /etc/ppp/ip-up.d/exim4
+QUEUERUNNER='${EX4DEF_QUEUERUNNER}'
+# how often should we run the queue
+QUEUEINTERVAL='${EX4DEF_QUEUEINTERVAL}'
+# options common to quez-runner and listening daemon
+COMMONOPTIONS='${EX4DEF_COMMONOPTIONS}'
+# more options for the daemon/process running the queue (applies to the one
+# started in /etc/ppp/ip-up.d/exim4, too.
+QUEUERUNNEROPTIONS='${EX4DEF_QUEUERUNNEROPTIONS}'
+# special flags given to exim directly after the -q. See exim(8)
+QFLAGS='${EX4DEF_QFLAGS}'
+# options for daemon listening on port 25
+SMTPLISTENEROPTIONS='${EX4DEF_SMTPLISTENEROPTIONS}'
+EOF
+ cat "${EX4DEF_TMP}" > "${defaultfile}"
+ rm -f "${EX4DEF_TMP}"
+}
+
+## Parse commandline
+TEMP=$(getopt -n update-exim4defaults \
+ -l qflags:,queuerunner:,queuetime:,commonoptions:,queuerunneroptions:,smtplisteneroptions:,remove-common:,remove-queue:,remove-smtp:,force,help,init -- \
+ +fh "$@")
+
+if test "$?" != 0; then
+ echo "Terminating..." >&2
+ exit 1
+fi
+
+eval set -- ${TEMP}
+while test "$1" != "--"; do
+ case $1 in
+ -f|--force)
+ EX4DEF_FORCE=true
+ ;;
+ -h|--help)
+ ex4def_usage
+ exit 0
+ ;;
+ --qflags)
+ shift
+ EX4DEF_QFLAGS="$1"
+ ;;
+ --queuerunner)
+ shift
+ EX4DEF_QUEUERUNNER="$1"
+ if ! expr match "${EX4DEF_QUEUERUNNER}" '\(ppp\|no\|combined\|nodaemon\|queueonly\|separate\)$' >/dev/null ; then
+ echo "invalid argument ${EX4DEF_QUEUERUNNER} for --queuerunner" 1>&2
+ exit 1
+ fi
+ ;;
+ --queuetime)
+ shift
+ EX4DEF_QUEUETIME="$1"
+ ;;
+ --commonoptions)
+ shift
+ EX4DEF_COMMONOPTIONS="$1"
+ EX4DEF_FLAGOPTIONS=true
+ ;;
+ --queuerunneroptions)
+ shift
+ EX4DEF_QUEUERUNNEROPTIONS="$1"
+ EX4DEF_FLAGOPTIONS=true
+ ;;
+ --smtplisteneroptions)
+ shift
+ EX4DEF_SMTPLISTENEROPTIONS="$1"
+ EX4DEF_FLAGOPTIONS=true
+ ;;
+ --remove-common)
+ shift
+ EX4DEF_REMOVECOMMON="$1"
+ EX4DEF_FLAGREMOVE=true
+ ;;
+ --remove-queue)
+ shift
+ EX4DEF_REMOVEQUEUE="$1"
+ EX4DEF_FLAGREMOVE=true
+ ;;
+ --remove-smtp)
+ shift
+ EX4DEF_REMOVESMTP="$1"
+ EX4DEF_FLAGREMOVE=true
+ ;;
+ --init)
+ EX4DEF_INIT=true
+ ;;
+ esac
+ shift
+done
+shift
+
+# No non-option arguments allowed.
+if [ "$#" -ne 0 ]; then
+ echo "No non option arguments allowed" >&2
+ ex4def_usage >&2
+ exit 1
+fi
+
+if [ "${EX4DEF_FLAGREMOVE}" = "true" ] && [ "${EX4DEF_FLAGOPTIONS}" = "true" ] ; then
+ echo "Cannot use --remove-something together with --somethingoptions" >&2
+ ex4def_usage >&2
+ exit 1
+fi
+
+#if [ ! -r ${defaultfile} ]; then
+# echo "Cannot read ${defaultfile}, terminating" >&2
+# exit 1
+#fi
+
+if "${EX4DEF_INIT}" = "true" ] ; then
+ [ -e "${defaultfile}" ] && [ "${EX4DEF_FORCE}" != "true" ] && exit 0
+ # Reset to default values
+ EX4DEF_QUEUERUNNER='combined'
+ EX4DEF_QUEUEINTERVAL='30m'
+ EX4DEF_COMMONOPTIONS=''
+ EX4DEF_QUEUERUNNEROPTIONS=''
+ EX4DEF_QFLAGS=''
+ EX4DEF_SMTPLISTENEROPTIONS=''
+
+ ex4def_write
+ exit 0
+fi
+
+#Try removing
+if [ "${EX4DEF_FLAGREMOVE}" = "true" ] ; then
+ EX4DEF_REMOVEERROR="false"
+ if [ ! -z "${EX4DEF_REMOVECOMMON}" ] ; then
+ EX4DEF_COMMONOPTIONS=$(echo "${COMMONOPTIONS}" | \
+ sed -e "s${EX4DEF_REMOVECOMMON}" -e "s/ / /g" -e 's/^ //' -e 's/ $//')
+ [ "${EX4DEF_COMMONOPTIONS}" = "${COMMONOPTIONS}" ] && \
+ EX4DEF_REMOVEERROR="true"
+ fi
+ if [ ! -z "${EX4DEF_REMOVEQUEUE}" ] ; then
+ EX4DEF_QUEUERUNNEROPTIONS=$(echo "${QUEUERUNNEROPTIONS}" | \
+ sed -e "s${EX4DEF_REMOVEQUEUE}" -e "s/ / /g" -e 's/^ //' -e 's/ $//')
+ [ "${EX4DEF_QUEUERUNNEROPTIONS}" = "${QUEUERUNNEROPTIONS}" ] && \
+ EX4DEF_REMOVEERROR="true"
+ fi
+ if [ ! -z "${EX4DEF_REMOVESMTP}" ] ; then
+ EX4DEF_SMTPLISTENEROPTIONS=$(echo "${SMTPLISTENEROPTIONS}" | \
+ sed -e "s${EX4DEF_REMOVESMTP}" -e "s/ / /g" -e 's/^ //' -e 's/ $//')
+ [ "${EX4DEF_SMTPLISTENEROPTIONS}" = "${SMTPLISTENEROPTIONS}"] && \
+ EX4DEF_REMOVEERROR="true"
+ fi
+ if [ "x${EX4DEF_REMOVEERROR}" = "xtrue" ] ; then
+ echo "$0: removing failed, no changes" >&2
+ exit 64
+ fi
+
+ EX4DEF_TMP=`tempfile -m 600 -p ex4`
+ sed -e "s^QFLAGS=.*QFLAGS='${EX4DEF_QFLAGS}'" \
+ -e "s^QUEUERUNNER=.*QUEUERUNNER='${EX4DEF_QUEUERUNNER}'" \
+ -e "s^QUEUEINTERVAL=.*QUEUEINTERVAL='${EX4DEF_QUEUEINTERVAL}'" \
+ -e "s^COMMONOPTIONS=.*COMMONOPTIONS='${EX4DEF_COMMONOPTIONS}'" \
+ -e "s^QUEUERUNNEROPTIONS=.*QUEUERUNNEROPTIONS='${EX4DEF_QUEUERUNNEROPTIONS}'" \
+ -e "s^SMTPLISTENEROPTIONS=.*SMTPLISTENEROPTIONS='${EX4DEF_SMTPLISTENEROPTIONS}'" \
+ < $defaultfile > "${EX4DEF_TMP}"
+ mv "${EX4DEF_TMP}" $defaultfile
+ rm -f "${EX4DEF_TMP}"
+ exit 0
+fi
+
+if [ "${EX4DEF_FORCE}" = "true" ] ; then
+ ex4def_write
+ exit 0
+
+else
+ EX4DEF_DOANYTHING=0
+ EX4DEF_NOTALLOWED=0
+ if [ "x${QUEUERUNNER}" != "x${EX4DEF_QUEUERUNNER}" ]; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+1))
+ # switching the QUEUERUNNER modus is always allowed
+ #[ -z "${QUEUERUNNER}" ] || EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+1))
+ fi
+ if [ "x${QUEUEINTERVAL}" != "x${EX4DEF_QUEUEINTERVAL}" ] ; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+2))
+ [ -z "${QUEUEINTERVAL}" ] || \
+ EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+2))
+ fi
+ if [ "x${COMMONOPTIONS}" != "x${EX4DEF_COMMONOPTIONS}" ] ; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+4))
+ [ -z "${COMMONOPTIONS}" ] || \
+ EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+4))
+ fi
+ if [ "x${QUEUERUNNEROPTIONS}" != "x${EX4DEF_QUEUERUNNEROPTIONS}" ] ; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+8))
+ [ -z "${QUEUERUNNEROPTIONS}" ] || \
+ EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+8))
+ fi
+ if [ "x${SMTPLISTENEROPTIONS}" != "x${EX4DEF_SMTPLISTENEROPTIONS}" ] ; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+16))
+ [ -z "${SMTPLISTENEROPTIONS}" ] || \
+ EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+16))
+ fi
+ if [ "x${QFLAGS}" != "x${EX4DEF_QFLAGS}" ] ; then
+ EX4DEF_DOANYTHING=$((${EX4DEF_DOANYTHING}+32))
+ [ -z "${QFLAGS}" ] || \
+ EX4DEF_NOTALLOWED=$((${EX4DEF_NOTALLOWED}+32))
+ fi
+
+ [ ${EX4DEF_DOANYTHING} -eq 0 ] && exit 0
+ if [ ${EX4DEF_NOTALLOWED} -ne 0 ] ; then
+ echo "setting(s) conflict with current one, terminating" >&2
+ exit ${EX4DEF_NOTALLOWED}
+ fi
+
+ EX4DEF_TMP=`tempfile -m 600 -p ex4`
+ sed -e "s^QFLAGS=.*QFLAGS='${EX4DEF_QFLAGS}'" \
+ -e "s^QUEUERUNNER=.*QUEUERUNNER='${EX4DEF_QUEUERUNNER}'" \
+ -e "s^QUEUEINTERVAL=.*QUEUEINTERVAL='${EX4DEF_QUEUEINTERVAL}'" \
+ -e "s^COMMONOPTIONS=.*COMMONOPTIONS='${EX4DEF_COMMONOPTIONS}'" \
+ -e "s^QUEUERUNNEROPTIONS=.*QUEUERUNNEROPTIONS='${EX4DEF_QUEUERUNNEROPTIONS}'" \
+ -e "s^SMTPLISTENEROPTIONS=.*SMTPLISTENEROPTIONS='${EX4DEF_SMTPLISTENEROPTIONS}'" \
+ < $defaultfile > "${EX4DEF_TMP}"
+ mv "${EX4DEF_TMP}" $defaultfile
+ rm -f "${EX4DEF_TMP}"
+ exit 0
+fi
+
+
+