"Barry A. Warsaw" wrote:
> - Try to use Python's smtplib module directly to mimic the same calls
> Mailman is making to see what kind of failure or return value you're
> getting.
Heh. I hate to say this, but I know just enough perl to make my life easier, and
nothing about python except that which I can infer from reading existing code.
How do I use Python smtplib to mimic this?
> - Try adding a syslog() call to SMTPDirect.py's process() function,
> inside the "if code >= 500 and code <> 552" clause to log exactly
> which error codes you're receiving. Something like:
>
> syslog('debug', 'Received error code %d for recipient %s' % (code, recip))
>
> Then tail the logs/debug file to see which error codes your
> getting. Then try to figure out why qmail is returning these error
> codes. ;)
Nothing that says "Received error code...." in syslog. I don't appear to have a
log file called debug. Nothing in servicelog or messages. So I figure either I
dinna add it right, or else there's nothing to log. I'm appending a chunk of the
SMTPDirect.py file.
I'm willing to try anything that doesn't involve formatting the hard drive, at
this point...
=)
Amanda
This is what SMTPDirect.py looks like right now, starting on line 96:
for recip, (code, smtpmsg) in refused.items():
# DRUMS is an internet draft, but it says:
#
# [RFC-821] incorrectly listed the error where an SMTP server
# exhausts its implementation limit on the number of RCPT commands
# ("too many recipients") as having reply code 552. The correct
# reply code for this condition is 452. Clients SHOULD treat a 552
# code in this case as a temporary, rather than permanent failure
# so the logic below works.
#
if code >= 500 and code <> 552:
# It's a permanent failure for this recipient so register it. We
# don't save the list between each registration because we assume
# it happens around the whole message delivery sequence
### next line AJR 7/13/01 track breakdown delivering remote messages ###
syslog('debug', 'Received error code %d for recipient %s' %
(code,recip))
mlist.RegisterBounce(recip, msg)
else:
# Deal with persistent transient failures by queuing them up for
# future delivery. TBD: this could generate lots of log entries!
syslog('smtp-failure', '%d %s (%s)' % (code, recip, smtpmsg))
tempfailures.append(recip)
if tempfailures:
msgdata['recips'] = tempfailures
raise HandlerAPI.SomeRecipientsFailed
------------------------------------------------------
Mailman-Users maillist - [EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/mailman-users