>1. turn up your logging ( -d +all, or log_selector = +all )
Here is logs of transaction with log_selector = +all
Oct 26 23:22:29 haven exim[25840]: 2006-10-26 23:22:29 SMTP connection from
[130.239.18.156]:47850 I=[82.193.185.25]:25 (TCP/IP connection count = 2)
Oct 26 23:22:29 haven exim[25840]: 2006-10-26 23:22:29 SMTP connection from
[130.239.18.156]:47851 I=[82.193.185.25]:25 (TCP/IP connection count = 3)
Oct 26 23:22:30 haven exim[25964]: 2006-10-26 23:22:30 H=mail.acc.umu.se
[130.239.18.156]:47850 I=[82.193.185.25]:25 U=postfix F=<dak@???>
temporarily rejected RCPT <bjorkriset-styrelse@???>:
require_files: error for
/home/sympa/expl/listor.skyddsrummet.net/bjorkriset-styrelse/config:
Permission denied
Oct 26 23:22:30 haven exim[25964]: 2006-10-26 23:22:30 H=mail.acc.umu.se
[130.239.18.156]:47850 I=[82.193.185.25]:25 U=postfix F=<dak@???>
temporarily rejected RCPT <bjorkriset-styrelse@???>:
require_files: error for
/home/sympa/expl/listor.skyddsrummet.net/bjorkriset-styrelse/config:
Permission denied
Oct 26 23:22:30 haven exim[25965]: 2006-10-26 23:22:30 H=mail.acc.umu.se
[130.239.18.156]:47851 I=[82.193.185.25]:25 U=postfix F=<dak@???>
temporarily rejected RCPT <bjorkriset-styrelse@???>:
require_files: error for
/home/sympa/expl/listor.skyddsrummet.net/bjorkriset-styrelse/config:
Permission denied
Oct 26 23:22:30 haven exim[25965]: 2006-10-26 23:22:30 H=mail.acc.umu.se
[130.239.18.156]:47851 I=[82.193.185.25]:25 U=postfix F=<dak@???>
temporarily rejected RCPT <bjorkriset-styrelse@???>:
require_files: error for
/home/sympa/expl/listor.skyddsrummet.net/bjorkriset-styrelse/config:
Permission denied
Oct 26 23:22:30 haven exim[25964]: 2006-10-26 23:22:30 H=mail.acc.umu.se
[130.239.18.156]:47850 I=[82.193.185.25]:25 U=postfix incomplete transaction
(RSET) from <dak@???>
Oct 26 23:22:30 haven exim[25964]: 2006-10-26 23:22:30 SMTP connection from
mail.acc.umu.se [130.239.18.156]:47850 I=[82.193.185.25]:25 closed by QUIT
Oct 26 23:22:30 haven exim[25965]: 2006-10-26 23:22:30 H=mail.acc.umu.se
[130.239.18.156]:47851 I=[82.193.185.25]:25 U=postfix incomplete transaction
(RSET) from <dak@???>
Oct 26 23:22:30 haven exim[25965]: 2006-10-26 23:22:30 SMTP connection from
mail.acc.umu.se [130.239.18.156]:47851 I=[82.193.185.25]:25 closed by QUIT
>2. post your ACLs (or more pertinently, the full config where relevant)
#########
# WARNING WARNING WARNING
# WARNING WARNING WARNING
# WARNING WARNING WARNING
# WARNING WARNING WARNING
# WARNING WARNING WARNING
# This file is generated dynamically from the files in
# the conf.d/ directory, or from exim4.conf.template respectively.
# Additional information is read from update-exim4.conf.conf
# This version of the file was created from the directory /etc/exim4
# 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
#########
log_selector = +all
.include /etc/xams/exim-custom.conf [included below]
hide mysql_servers = localhost/xams/xams/[deleted]
domainlist xams_domains = cdb;/etc/xams/localdomains.cdb
domainlist custom_local_domains =
domainlist custom_relay_to_domains =
hostlist custom_relay_from_hosts =
helo_try_verify_hosts = *
helo_lookup_domains = *
.ifdef EXISCAN_MODULE
# 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.
# Don't forget to add clamav UID to Debian-exim group.
av_scanner = clamd:/var/run/clamav/clamd.ctl
.endif
[end of include]
syslog_facility = mail
log_file_path = syslog
trusted_users = root : mail : xams : www-data : sympa
domainlist ListDomains = listor.skyddsrummet.net
domainlist local_domains =
@:+xams_domains:+custom_local_domains:kkr.nu:tallaksen.net:+ListDomains
domainlist relay_to_domains = +custom_relay_to_domains
hostlist relay_from_hosts = 127.0.0.1 : 10.4.3.2 :
+custom_relay_from_hosts
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_mail = acl_check_helo_slow
never_users = root
host_lookup = *
rfc1413_hosts = *
rfc1413_query_timeout = 30s
ignore_bounce_errors_after = 2d
timeout_frozen_after = 7d
.ifdef TLS_ENCRYPTION
tls_advertise_hosts = *
tls_certificate = /usr/local/exim/exim.cert
tls_privatekey = /usr/local/exim/exim.pem
.endif
.ifdef EXISCAN_MODULE
acl_smtp_data = acl_check_content
.endif
.ifdef MAILSCANNER_INCOMING
spool_directory = /var/spool/exim4_incoming
queue_only = true
.elifdef MAILSCANNER_OUTGOING
spool_directory = /var/spool/exim4
pid_file_path = /var/run/exim/eximqr.pid
.else
spool_directory = /var/spool/exim
.endif
.include /etc/xams/exim-global.conf [included below]
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}} \
${if def:tls_cipher {($tls_cipher)\n\t}}\
(Exim $version_number and XAMS pre-0.0.16)\n\t\
id $message_id\
${if def:received_for {\n\tfor $received_for}}
smtp_banner = $primary_hostname ESMTP Exim $version_number \
(powered by XAMS pre-0.0.16) $tod_full
[end of include]
.include /etc/xams/exim-sql-macros.conf [included below]
# Global macros
##############################################################
SQL_XAMS_DOMAINS = mysql {\
SELECT pm_domains.name \
FROM pm_sites \
INNER JOIN pm_domains \
ON pm_domains.siteid = pm_sites.id \
WHERE pm_sites.sitestate != 'lockedbounce'}
# Macros for routers
#########################################################
SQL_ALIASES_BOUNCEFORWARD_CONDITION = mysql {\
SELECT a.bounceforward \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_aliases a \
ON s.id = a.siteid \
WHERE '${quote_mysql:$local_part}' != '*' \
AND a.leftpart = '${quote_mysql:$local_part}' \
AND d.name = '$domain' \
AND s.sitestate != 'lockedbounce'}
SQL_ALIASES_BLACKHOLE_CONDITION = mysql {\
SELECT a.blackhole \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_aliases a \
ON s.id = a.siteid \
WHERE '${quote_mysql:$local_part}' != '*' \
AND a.leftpart = '${quote_mysql:$local_part}' \
AND d.name = '$domain' \
AND s.sitestate != 'lockedbounce'}
SQL_ALIASES_RIGHTPART = mysql {\
SELECT LOWER(a.rightpart) \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_aliases a \
ON s.id = a.siteid \
WHERE '${quote_mysql:$local_part}' != '*' \
AND a.leftpart = '${quote_mysql:$local_part}' \
AND d.name = '$domain' \
AND s.sitestate != 'lockedbounce'}
SQL_FORWARD_DATA = mysql {\
SELECT f.filter \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_users u \
ON s.id = u.siteid \
INNER JOIN pm_exim_filters f \
ON u.id = f.userid \
WHERE s.sitestate != 'lockedbounce' \
AND d.name = '${quote_mysql:$domain}' \
AND u.accountstate != 'lockedbounce' \
AND u.name = '${quote_mysql:$local_part}' \
AND f.active = 'true'}
SQL_LOCK = mysql {\
SELECT u.id \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_users u \
ON s.id = u.siteid \
WHERE (s.sitestate = 'lockedbounce' OR u.accountstate =
'lockedbounce') \
AND d.name = '$domain' \
AND u.name = '${quote_mysql:$local_part}'}
SQL_AUTOREPLY_ROUTER = mysql {\
SELECT u.autoreply \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_users u \
ON s.id = u.siteid \
WHERE u.name = '${quote_mysql:$local_part}' \
AND d.name = '$domain'}
SQL_USERS_CONDITION = mysql {\
SELECT u.id \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_users u \
ON s.id = u.siteid \
WHERE s.sitestate != 'lockedbounce' \
AND d.name = '$domain' \
AND u.name = '${quote_mysql:$local_part}' \
AND u.accountstate != 'lockedbounce'}
SQL_CATCH_ALIASES_BOUNCEFORWARD_CONDITION = mysql {\
SELECT a.bounceforward \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_aliases a \
ON s.id = a.siteid \
WHERE s.sitestate != 'lockedbounce' \
AND d.name = '$domain' \
AND a.leftpart = '*'}
SQL_CATCH_ALIASES_BLACKHOLE_CONDITION = mysql {\
SELECT a.blackhole \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_aliases a \
ON s.id = a.siteid \
WHERE s.sitestate != 'lockedbounce' \
AND d.name = '$domain' \
AND a.leftpart = '*'}
SQL_CATCH_ALIASES_RIGHTPART = mysql {\
SELECT LOWER(a.rightpart) \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_aliases a \
ON s.id = a.siteid \
WHERE s.sitestate != 'lockedbounce' \
AND d.name = '$domain' \
AND a.leftpart = '*'}
# Macros for address_data
####################################################
SQL_GET_SITENAME = mysql {\
SELECT s.name \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_users u \
ON s.id = u.siteid \
WHERE d.name = '$domain' \
AND u.name = '${quote_mysql:$local_part}'}
SQL_QUOTA_SITENAME = mysql {\
SELECT CASE \
WHEN u.quota = 0 THEN 1 \
WHEN u.quota < 0 THEN 0 \
ELSE concat(u.quota, 'K') \
END AS quota, \
s.name AS sitename \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_users u \
ON s.id = u.siteid \
WHERE d.name = '$domain' \
AND u.name = '${quote_mysql:$local_part}'}
SQL_SITENAME_AUTOREPLYTEXT = mysql {\
SELECT s.name AS sitename, \
u.autoreplysubject, \
u.autoreplytext \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_users u \
ON s.id = u.siteid \
WHERE d.name = '$domain' \
AND u.name = '${quote_mysql:$local_part}'}
# Macros for transports
######################################################
TXT_QUOTA_WARN_MESSAGE = "\
To: $local_part@$domain\n\
Subject: Your mailbox\n\n\
This message is automatically created \
by mail delivery software.\n\n\
The size of your mailbox has exceeded \
a warning threshold that is\n\
set by the system administrator.\n"
TXT_AUTOREPLY_TRANS_SUBJECT = "$local_part@$domain is not available to reply
to your mail"
# Authentication macros
######################################################
SQL_AUTH_PLAIN = mysql {\
SELECT u.id \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_users u \
ON s.id = u.siteid \
WHERE d.name = '${domain:$2}' \
AND u.relayonauth = 'true' \
AND u.name = '${local_part:$2}' \
AND password = '${md5:$3}'}
SQL_AUTH_UNIQUE_PLAIN = mysql {\
SELECT u.id \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_users u \
ON s.id = u.siteid \
WHERE u.uniquename = '$2' \
AND u.relayonauth = 'true' \
AND password = '${md5:$3}'}
SQL_AUTH_LOGIN = mysql {\
SELECT u.id \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_users u \
ON s.id = u.siteid \
WHERE d.name = '${domain:$1}' \
AND u.relayonauth = 'true' \
AND u.name = '${local_part:$1}' \
AND password = '${md5:$2}'}
SQL_AUTH_UNIQUE_LOGIN = mysql {\
SELECT u.id \
FROM pm_sites s \
INNER JOIN pm_domains d \
ON s.id = d.siteid \
INNER JOIN pm_users u \
ON s.id = u.siteid \
WHERE u.uniquename = '$1' \
AND u.relayonauth = 'true' \
AND password = '${md5:$2}'}
[end of include]
begin acl
acl_check_helo_slow:
accept authenticated = *
accept condition = ${if isip{$sender_helo_name}{yes}{no}}
warn condition = ${if eq {$sender_host_name}{}{yes}{no}}
set acl_m8 = ${lookup dnsdb{ptr=$sender_host_address}\
{${lc:$value}}{}}
warn condition = ${if eq {$sender_host_name}{}{no}{yes}}
set acl_m8 = $sender_host_name
accept condition = ${if match {$acl_m8}\
{${lc:$sender_helo_name}}{yes}{no}}
warn set acl_m9 = ${lookup dnsdb{a=$sender_helo_name}{$value}{}}
warn condition = ${if eq {$acl_m9}{}{no}{yes}}
set acl_m9 = ${tr{$acl_m9}{\n}{:}}
accept condition = ${if eq {$acl_m9}{}{no}{yes}}
condition = ${if match {$sender_host_address}\
{($acl_m9)}{yes}{no}}
deny condition = ${if eq {$acl_m9}{}{yes}{no}}
condition = ${if eq {$acl_m8}{}{yes}{no}}
message = Bad HELO: $sender_helo_name does not resolve\n\
Aditionally, $sender_host_address has no rDNS\n\
Please see RFC 2821 section 4.1.1.1,\n\
RFC 1123 section 6.1.1 and RFC 1912 section 2.1
accept condition = ${if eq {$acl_m8}{}{yes}{no}}
deny condition = ${if eq {${lc:$sender_helo_name}}\
{${lc:$sender_address_domain}}{yes}{no}}
message = Forged HELO: you are $acl_m8\n\
please don't pretend to be $sender_helo_name
log_message = Forged HELO: Hostname does not match HELO
deny condition = ${if match {$sender_helo_name}{yahoo}{yes}{no}}
message = Forged HELO: you are not $sender_helo_name
log_message = Forged HELO: Not a yahoo server
warn set acl_m9 = ${lookup{$sender_helo_name} \
partial-lsearch{/etc/exim4/helo-check} \
{${if eq{$value}{}{$sender_helo_name}{$value}}}{}}
accept condition = ${if eq {$acl_m9}{}{yes}{no}}
deny condition = ${if !match{$acl_m8}{$acl_m9}{yes}{no}}
message = Forged HELO: you are not $sender_helo_name
log_message = Forged HELO: Not a $acl_m9 server
accept
acl_check_rcpt:
.ifdef MAILSCANNER_INCOMING
defer
message = Please try later.
!hosts = /etc/greylistd/whitelist-hosts
!senders = :
log_message = greylisted.
set acl_m9 = ${mask:$sender_host_address/24}
$sender_address $local_part@$domain
set acl_m9 =
${readsocket{/var/run/greylistd/socket}{$acl_m9}{5s}{}{}}
condition = ${if eq {$acl_m9}{grey}{true}{false}}
.endif
accept hosts = :
accept hosts = 10.4.3.2
deny domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
deny domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
accept local_parts = postmaster
domains = +local_domains
require verify = sender
accept domains = +local_domains
endpass
verify = recipient
deny hosts = ! animal.mupp.net
message = rejected because $sender_host_address is in a
black list at $dnslist_domain\n$dnslist_text
dnslists = http.dnsbl.sorbs.net :\
socks.dnsbl.sorbs.net :\
misc.dnsbl.sorbs.net :\
smtp.dnsbl.sorbs.net :\
web.dnsbl.sorbs.net :\
block.dnsbl.sorbs.net :\
zombie.dnsbl.sorbs.net :\
badconf.rhsbl.sorbs.net :\
nomail.rhsbl.sorbs.net
accept domains = +relay_to_domains
endpass
verify = recipient
accept hosts = +relay_from_hosts
accept authenticated = *
deny message = relay not permitted
.ifdef EXISCAN_MODULE
acl_check_content:
accept hosts = +relay_from_hosts
accept authenticated = *
.include /etc/xams/exim-content-acl.conf
accept
.endif
begin routers
full_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup{$local_part@$domain}lsearch{/etc/full-aliases}}
file_transport = address_file
pipe_transport = address_pipe
.ifdef MAILSCANNER_INCOMING
defer_router:
driver = redirect
allow_defer
data = :defer: All deliveries are deferred
verify = false
.endif
Sympa_Robots:
driver = accept
domains = +ListDomains
local_parts = sympa : listmaster
transport = Sympa_Robots_Transport
Sympa_Robots_Request:
driver = redirect
domains = +ListDomains
local_parts = sympa-request : sympa-owner
data = postmaster@$domain
Sympa_Robots_Bounce:
driver = accept
domains = +ListDomains
local_part_prefix = bounce+
transport = Sympa_Bounce_Transports
Sympa_Owner_Bounce:
initgroups = true
driver = accept
domains = +ListDomains
require_files = /home/sympa/expl/$domain/$local_part/config
local_part_suffix = -owner
user = sympa
group = sympa
transport = Sympa_Owner_Bounce_Transport
Sympa_Lists:
initgroups = true
driver = accept
domains = +ListDomains
require_files = /home/sympa/expl/$domain/$local_part/config
transport = Sympa_Robots_Transport
user = sympa
group = sympa
Sympa_Lists_Suffixes:
initgroups = true
driver = accept
domains = +ListDomains
local_part_suffix = -request : -editor : -unsubscribe : -subscribe
require_files = /home/sympa/expl/$domain/$local_part/config
transport = Sympa_Robots_Transport_Suffixes
user = sympa
group = sympa
cookiemonster:
driver = manualroute
domains = cookiemonster.mupp.net
transport = remote_smtp
route_list = * 10.4.3.2
host_find_failed = defer
same_domain_copy_routing = yes
no_more
kkr:
driver = manualroute
domains = kkr.nu : *.kkr.nu
transport = remote_smtp
route_list = * 10.4.3.2
host_find_failed = defer
same_domain_copy_routing = yes
no_more
.include /etc/xams/exim-routers.conf [included below]
# handle normal (non-*) aliases - bounce on condition
xams_aliases_forward_before_bounce:
driver = redirect
condition = ${lookup SQL_ALIASES_BOUNCEFORWARD_CONDITION}
allow_defer
allow_fail
data = ${lookup SQL_ALIASES_RIGHTPART}
domains = +xams_domains
qualify_preserve_domain
retry_use_local_part
unseen
# handle normal (non-*) aliases - bounce and forward on condition
xams_aliases_bounce:
driver = redirect
condition = ${lookup SQL_ALIASES_BOUNCEFORWARD_CONDITION}
allow_defer
allow_fail
data = :fail: Unknown user
domains = +xams_domains
qualify_preserve_domain
retry_use_local_part
# handle normal (non-*) aliases - do nothing, delete that mail
xams_aliases_ignore:
driver = redirect
condition = ${lookup SQL_ALIASES_BLACKHOLE_CONDITION}
allow_defer
allow_fail
data = :blackhole: Move mail to blackhole
domains = +xams_domains
qualify_preserve_domain
retry_use_local_part
# Handle normal (non-*) aliases
xams_aliases:
driver = redirect
allow_defer
allow_fail
data = ${lookup SQL_ALIASES_RIGHTPART}
domains = +xams_domains
qualify_preserve_domain
retry_use_local_part
# Forward the mail (via Exim/XAMS filter)?
xams_forward:
driver = redirect
address_data = ${lookup SQL_QUOTA_SITENAME}
allow_filter
check_ancestor
user = mail
directory_transport = xams_address_file
no_expn
data = ${lookup SQL_FORWARD_DATA{${value}}}
domains = +xams_domains
file_transport = xams_address_file
pipe_transport = address_pipe
reply_transport = address_reply
retry_use_local_part
no_verify
router_home_directory = /var/mail/${lookup
SQL_GET_SITENAME{${value}}}/${lc:$local_part}
transport_home_directory =
/var/mail/${extract{sitename}{$address_data}}/${lc:$local_part}
# forbid_filter_perl = true
forbid_filter_readfile = true
forbid_filter_readsocket = true
forbid_filter_run = true
forbid_pipe = true
forbid_filter_existstest = true
forbid_filter_logwrite = true
forbid_filter_lookup = true
forbid_include = true
# Does not yet work for errors in SIEVE filters!
# errors are skipped and a keep; is run instead.
syntax_errors_to = $local_part@$domain
syntax_errors_text = \
This is an automatically generated message. An error has\n\
been found in your .eximfilter 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
to\n\
you. A copy of each incoming message will be put in your
normal\n\
mailbox.
# Fail if recipients mailbox (or his site) is set 'locked and bounced'
xams_lock:
driver = redirect
allow_defer
allow_fail
data = :fail: user not known to the system
domains = +xams_domains
condition = "${lookup SQL_LOCK}"
retry_use_local_part
# Is auto reply set on user's mailbox?
xams_autoreply:
driver = accept
address_data = ${lookup SQL_SITENAME_AUTOREPLYTEXT}
condition = ${lookup SQL_AUTOREPLY_ROUTER{${value}}}
domains = +xams_domains
transport = xams_autoreply_transport
unseen
# Standard delivery of mail to user's mailbox
xams_users:
driver = accept
address_data = ${lookup SQL_QUOTA_SITENAME}
condition = ${lookup SQL_USERS_CONDITION}
domains = +xams_domains
retry_use_local_part
router_home_directory = /var/mail/${lookup
SQL_GET_SITENAME{${value}}}/${lc:$local_part}
transport_home_directory =
/var/mail/${extract{sitename}{$address_data}}/${lc:$local_part}
transport = xams_delivery
# handle * aliases - bounce on condition
xams_catch_aliases_forward_before_bounce:
driver = redirect
condition = ${lookup SQL_CATCH_ALIASES_BOUNCEFORWARD_CONDITION}
allow_defer
allow_fail
data = ${lookup SQL_CATCH_ALIASES_RIGHTPART}
domains = +xams_domains
qualify_preserve_domain
retry_use_local_part
unseen
# handle * aliases - bounce and forward on condition
xams_catch_aliases_bounce:
driver = redirect
condition = ${lookup SQL_CATCH_ALIASES_BOUNCEFORWARD_CONDITION}
allow_defer
allow_fail
data = :fail: Unknown user
domains = +xams_domains
qualify_preserve_domain
retry_use_local_part
# handle * aliases - do nothing, delete that mail
xams_catch_aliases_ignore:
driver = redirect
condition = ${lookup SQL_CATCH_ALIASES_BLACKHOLE_CONDITION}
allow_defer
allow_fail
data = :blackhole: Move mail to blackhole
domains = +xams_domains
qualify_preserve_domain
retry_use_local_part
# handle * aliases - forward
xams_catch_aliases_forward:
driver = redirect
allow_defer
allow_fail
data = ${lookup SQL_CATCH_ALIASES_RIGHTPART{$value}}
domains = +xams_domains
qualify_preserve_domain
retry_use_local_part
# None of the routers found an user, aliases or whatever - Unknown user
xams_fail:
driver = redirect
allow_fail
domains = +xams_domains
data = :fail: Unknown user
haven:/etc/xams#
[end of include]
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{/etc/aliases}}
file_transport = address_file
pipe_transport = address_pipe
userforward:
driver = redirect
check_local_user
file = $home/.forward
no_verify
no_expn
check_ancestor
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply
localuser:
driver = accept
check_local_user
transport = local_delivery
cannot_route_message = Unknown user
begin transports
.include /etc/xams/exim-transports.conf [included below]
xams_delivery:
driver = appendfile
check_string =
delivery_date_add
envelope_to_add
group = mail
maildir_format
directory =
/var/mail/${extract{sitename}{$address_data}}/${lc:$local_part}
maildir_tag = ,S=$message_size
message_prefix =
message_suffix =
quota = ${extract{quota}{$address_data}}
maildir_use_size_file
quota_size_regex = S=(\d+):
quota_warn_threshold = 75%
quota_warn_message = TXT_QUOTA_WARN_MESSAGE
return_path_add
user = mail
create_file = belowhome
xams_address_file:
driver = appendfile
check_string =
delivery_date_add
envelope_to_add
group = mail
maildir_format = true
directory =
/var/mail/${extract{sitename}{$address_data}}/${lc:$local_part}/${sg{$addres
s_file}{^inbox}{}}
maildir_tag = ,S=$message_size
message_prefix =
message_suffix =
quota = ${extract{quota}{$address_data}}
maildir_use_size_file
quota_size_regex = S=(\d+):
return_path_add
user = mail
create_file = belowhome
xams_autoreply_transport:
driver = autoreply
user = mail
group = mail
once =
/etc/xams/autoreply/${extract{sitename}{$address_data}}/${lc:$local_part}.on
ce
once_repeat = 7d
subject = ${rfc2047:${extract{autoreplysubject}{$address_data}}}
to = $sender_address
from = $local_part@$domain
text = ${from_utf8:${extract{autoreplytext}{$address_data}}}
return_message = true
# Do you want to log all sent replies?
#log =
/etc/xams/autoreply/${extract{sitename}{$address_data}}/${lc:$local_part}.lo
g
[end of include]
Sympa_Robots_Transport:
driver = pipe
command = "/home/sympa/bin/queue $local_part@$domain"
return_path_add
delivery_date_add
envelope_to_add
user = sympa
group = sympa
current_directory = /home/sympa
home_directory = /home/sympa
Sympa_Bounce_Transports:
driver = pipe
command = "/home/sympa/bin/bouncequeue sympa@$domain"
return_path_add
delivery_date_add
envelope_to_add
user = sympa
group = sympa
current_directory = /home/sympa
home_directory = /home/sympa
Sympa_Owner_Bounce_Transport:
driver = pipe
command = "/home/sympa/bin/bouncequeue $local_part@$domain"
return_path_add
delivery_date_add
envelope_to_add
user = sympa
group = sympa
current_directory = /home/sympa
home_directory = /home/sympa
Sympa_Robots_Transport_Suffixes:
driver = pipe
command = "/home/sympa/bin/queue
$local_part$local_part_suffix@$domain"
return_path_add
delivery_date_add
envelope_to_add
user = sympa
group = sympa
current_directory = /home/sympa
home_directory = /home/sympa
remote_smtp:
driver = smtp
local_delivery:
driver = appendfile
file = /var/mail/$local_part
delivery_date_add
envelope_to_add
return_path_add
address_pipe:
driver = pipe
return_output
address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add
address_reply:
driver = autoreply
begin retry
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
begin rewrite
begin authenticators
plain:
driver = plaintext
public_name = PLAIN
server_condition = ${if !eq {} \
{${if eq {} {${domain:$2}} \
{${lookup SQL_AUTH_UNIQUE_PLAIN{1}}} \
{${lookup SQL_AUTH_PLAIN{1}}} \
}} \
{yes}{no} \
}
server_set_id = $2
login:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
server_condition = ${if !eq {} \
{${if eq {} {${domain:$1}} \
{${lookup SQL_AUTH_UNIQUE_LOGIN{1}}} \
{${lookup SQL_AUTH_LOGIN{1}}} \
}} \
{yes}{no} \
}
server_set_id = $1
> 3. run in session test mode ( -bh ip.add.re.ss ) with debug ( -d +all ) 3.
try >another angle of attack such as strace
Does any of the above give any clue? If not, I'll try stracing.