[Mailman-Users] multiple/dynamic outbound smtp hosts?

Mark Sapiro msapiro at value.net
Mon Sep 25 05:09:46 CEST 2006

Ken MacFerrin wrote:
>> What do you get in smtp-failure from this?
>Currently I don't get anything.. I only get the errors I listed in my
>last email in /var/log/mailman/error.  The /var/log/mailman/smtp-failure
>log remains empty.

Yes, I overlooked the blindingly obvious - see below.

>>>        self.__conn.local_hostname = 'localhost'
>> I don't know why you want to do this. Also, if you need to do it, it is
>> better to give local_hostname='localhost' as an argument to the
>> smtplib.SMTP() constructor.
>I was doing this to hide the primary hostname for the machine from
>showing up in the Received header for mail being passed from Mailman to
>the outbound virtual domain smtp server since I don't want the headers
>to list the machine's fqdn in messages for the virtual domains.  Before
>doing this I was getting:
>Received: from host.domain.name by smtp.virtualdomain.com (Postfix)...
>Doing this I now get:
>Received: from localhost by smtp.virtualdomain.com (Postfix)...

OK. I understand.

>>>        self.__numsessions = mm_cfg.SMTP_MAX_SESSIONS_PER_CONNECTION
>>>        self.__set_debuglevel = 1
>> This does nothing useful. what you want is
>>         self.__conn.set_debuglevel(1)
>> and I would put it earlier - right after "self.__conn =
>> smtplib.SMTP()". Debug messages should go to Mailman's error log.
>I tried as you mentioned here but kept getting the following error when
>doing so:
>Sep 24 18:42:45 2006 (23668) Uncaught runner exception: Connection
>instance has no attribute '_Connection__set_debuglevel'

I don't understand the above error. It works for me.

>Here's the code I'm using now:
>    def __connect(self):
>        self.__conn = smtplib.SMTP()
>        self.__set_debuglevel = 1
>        if mlist:
>            host = mlist.host_name

The blindingly obvious - mlist is undefined.

>        else:
>            host = mm_cfg.SMTPHOST
>        syslog('smtp-failure', 'host = %s, port = %s', host,
>        x = self.__conn.connect(host, mm_cfg.SMTPPORT)
>        syslog('smtp-failure', 'connect returns: %s', x)
>        self.__conn.local_hostname = 'localhost'
>        self.__numsessions = mm_cfg.SMTP_MAX_SESSIONS_PER_CONNECTION

The attached patch works. This is a 2.1.9 base, you may have to adjust
the line numbers and of course remove the debugging stuff.

Mark Sapiro <msapiro at value.net>       The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: patch.txt
Url: http://mail.python.org/pipermail/mailman-users/attachments/20060924/3a4d9288/attachment.txt 

More information about the Mailman-Users mailing list