We have a situation where postfix will not deliver a "delivery status 
notification" (DSN) when a remote server recjects the message postfix is trying 
to send.

Instead Postfix reports that "mail for news.t1ps.com loops back to myself" 
eventhough postfix is the final destination for the Return-Path address. It 
should deliver the DSN to a local cyrus instance via lmtp.

The problem only occurs when we use a VERP style address for the return path.

We have been on this problem for a week and searched far and wide with no 
success so far. So I have provided quite a bit of detail here below.

Any help is much appreciated.

Oliver


Failure Case
------------
This happens when yahoo/hotmail/aol/etc rejects the original mail with 
554 delivery error: This user doesn't have a yahoo.com account 
(nkaderibi...@yahoo.com).. in reply to end of DATA command

and postfix says:
to=<failures+nkaderibigbe=yahoo....@news.t1ps.com>, relay=none, delay=0.01, 
delays=0.01/0/0/0, dsn=5.4.6, status=bounced (mail for news.t1ps.com loops 
back to myself)

Success Case
------------
We have tested the same situation when sending to another postifix instance 
(happens to be on the same physical machine as the first postfix instance). 
Again we are sending to a non-existent address and the second postfix instance 
responds with 

550 5.1.1 <nob...@realtsp.com>: Recipient address rejected: User unknown in 
virtual mailbox table (in reply to RCPT TO command)

In this case postfix delivers the DSN as expected via lmtp to the local cyrus 
instance:
to=<failures+nobody=realtsp....@news.t1ps.com>, 
relay=smtp.news.t1ps.com[/var/imap/socket/lmtp], delay=0.76, 
delays=0/0.01/0/0.75, dsn=2.1.5, status=sent (250 2.1.5 Ok)

Verp
----
NOTE: The failure case only happens when we are using a VERP style address in 
Return-Path
The Return-Path for each case is:
Success case: failures+nobody=realtsp....@news.t1ps.com
Failure case: failures+nkaderibigbe=yahoo....@news.t1ps.com

Note if we don't use VERP, ie "Return-Path: <failu...@news.t1ps.com>" then 
yahoo works also.

Full maillog extracts, main.cf and master.cf included below.


realtsp.....working!
====================
Oct  6 16:46:08 milford postfix/smtpd[58480]: 5027DD6E971: 
client=takapuna.realtsp.com[89.187.108.20], sasl_method=LOGIN, 
sasl_username=*****
Oct  6 16:46:08 milford postfix/cleanup[58482]: 5027DD6E971: message-
id=<1254843968.4acb664042...@staging.t1ps.com>
Oct  6 16:46:08 milford postfix/qmgr[57929]: 5027DD6E971: 
from=<failures+nobody=realtsp....@news.t1ps.com>, size=9468, nrcpt=1 (queue 
active)
Oct  6 16:46:08 milford postfix/smtp[57936]: 5027DD6E971: 
to=<nob...@realtsp.com>, relay=milford.realtsp.com[89.187.108.21]:25, 
delay=0.64, delays=0.63/0/0/0.01, dsn=5.1.1, status=bounced (host 
milford.realtsp.com[89.187.108.21] said: 550 5.1.1 <nob...@realtsp.com>: 
Recipient address rejected: User unknown in virtual mailbox table (in reply to 
RCPT TO command))
Oct  6 16:46:08 milford postfix/bounce[58483]: 5027DD6E971: sender non-delivery 
notification: EA68FD6EAB7
Oct  6 16:46:08 milford postfix/qmgr[57929]: 5027DD6E971: removed


Oct  6 16:46:08 milford postfix/cleanup[58482]: EA68FD6EAB7: message-
id=<20091006154608.ea68fd6e...@smtp.news.t1ps.com>
Oct  6 16:46:08 milford postfix/qmgr[57929]: EA68FD6EAB7: from=<>, size=11600, 
nrcpt=1 (queue active)
Oct  6 16:46:09 milford postfix/lmtp[58484]: EA68FD6EAB7: 
to=<failures+nobody=realtsp....@news.t1ps.com>, 
relay=smtp.news.t1ps.com[/var/imap/socket/lmtp], delay=0.76, 
delays=0/0.01/0/0.75, dsn=2.1.5, status=sent (250 2.1.5 Ok)
Oct  6 16:46:09 milford postfix/qmgr[57929]: EA68FD6EAB7: removed


yahoo.com...not working!
========================
Oct  6 16:42:01 milford postfix/smtpd[57732]: 33EBBD6EE87: 
client=takapuna.realtsp.com[89.187.108.20], sasl_method=LOGIN, 
sasl_username=****
Oct  6 16:42:01 milford postfix/cleanup[57735]: 33EBBD6EE87: message-
id=<1254843721.4acb654923...@staging.t1ps.com>
Oct  6 16:42:01 milford postfix/qmgr[57598]: 33EBBD6EE87: 
from=<failures+nkaderibigbe=yahoo....@news.t1ps.com>, size=9480, nrcpt=1 
(queue active)
Oct  6 16:42:10 milford postfix/smtp[57636]: 33EBBD6EE87: 
to=<nkaderibi...@yahoo.com>, relay=e.mx.mail.yahoo.com[206.190.53.191]:25, 
delay=9.4, delays=0.02/0/6.5/2.9, dsn=5.0.0, status=bounced (host 
e.mx.mail.yahoo.com[206.190.53.191] said: 554 delivery error: dd This user 
doesn't have a yahoo.com account (nkaderibi...@yahoo.com) [0] - 
mta164.mail.re2.yahoo.com (in reply to end of DATA command))
Oct  6 16:42:10 milford postfix/bounce[57756]: 33EBBD6EE87: sender non-delivery 
notification: A083ED6EA01
Oct  6 16:42:10 milford postfix/qmgr[57598]: 33EBBD6EE87: removed


Oct  6 16:42:10 milford postfix/cleanup[57735]: A083ED6EA01: message-
id=<20091006154210.a083ed6e...@smtp.news.t1ps.com>
Oct  6 16:42:10 milford postfix/qmgr[57598]: A083ED6EA01: from=<>, size=11696, 
nrcpt=1 (queue active)
Oct  6 16:42:10 milford postfix/smtp[57631]: A083ED6EA01: 
to=<failures+nkaderibigbe=yahoo....@news.t1ps.com>, relay=none, delay=0.01, 
delays=0.01/0/0/0, dsn=5.4.6, status=bounced (mail for news.t1ps.com loops 
back to myself)
Oct  6 16:42:10 milford postfix/qmgr[57598]: A083ED6EA01: removed

main.cf
=======
soft_bounce = no
queue_directory = /var/spool/postfix_rsh
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix_rsh
mail_owner = postfix
myhostname = smtp.news.t1ps.com
inet_interfaces = 89.187.108.81
local_recipient_maps = $virtual_mailbox_maps
unknown_local_recipient_reject_code = 550
mynetworks_style = host
relay_domains = $mydestination
recipient_delimiter = +
 
mailbox_transport  = lmtp:unix:/var/imap/socket/lmtp
  
header_checks = regexp:/usr/local/etc/postfix_rsh/header_checks
debug_peer_level = 10
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/local/sbin/sendmail
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = no
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix_rsh
readme_directory = no
masquerade_domains      = $mydomain
message_size_limit      = 51200000
virtual_transport       = lmtp:unix:/var/imap/socket/lmtp
virtual_mailbox_domains = news.t1ps.com, domain2.com, domain3.co.uk, 
domain4.com
virtual_alias_maps   = hash:/usr/local/etc/postfix_rsh/virtual
virtual_mailbox_maps = hash:/usr/local/etc/postfix_rsh/virtual_mailbox_maps
transport_maps       = regexp:/usr/local/etc/postfix_rsh/transport
broken_sasl_auth_clients = no
smtp_bind_address               = 89.187.108.81
smtpd_sasl_auth_enable          = yes
smtpd_sender_restrictions       = permit_sasl_authenticated, 
permit_mynetworks, reject_unauth_destination
smtpd_recipient_restrictions    = permit_sasl_authenticated, 
permit_mynetworks, reject_unauth_destination
smtpd_helo_restrictions         = reject_invalid_hostname
smtpd_require_helo              = yes
slow_destination_concurrency_limit = 15
slow_destination_recipient_limit = 5
syslog_facility = local1

/usr/local/etc/postfix_rsh/virtual_mailbox_maps
===============================================
failu...@news.t1ps.com dummy

master.cf
=========
pickup    fifo  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
smtp      unix  -       -       n       -       500     smtp

slow      unix  -       -       n       -       100     smtp
          -o smtp_connect_timeout=5

relay     unix  -       -       n       -       100     smtp
        -o fallback_relay=
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
retry     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache    unix  -       -       n       -       1       scache

26        inet  n       -       n       -       -       smtpd
         -o content_filter=

smtp      inet  n       -       n       -       -       smtpd
         -o content_filter=spamchk:dummy


spamchk   unix  -       n       n       -       10      pipe
         flags=Rq user=spamd argv=/usr/local/bin/spamchk_rsh -f ${sender} --
         ${recipient}
proxywrite unix -       -       n       -       1       proxymap

Reply via email to