Taken from: https://github.com/freebsd/freebsd-ports.git Commit id: 5070672073b68be364139bc6b3a89100bd17d331
44 lines
2.1 KiB
Diff
44 lines
2.1 KiB
Diff
--- Mailman/Handlers/SMTPDirect.py.orig 2012-06-13 15:35:54.000000000 +0200
|
|
+++ Mailman/Handlers/SMTPDirect.py 2013-08-22 14:26:22.000000000 +0200
|
|
@@ -64,11 +64,11 @@
|
|
self.__conn.connect(mm_cfg.SMTPHOST, mm_cfg.SMTPPORT)
|
|
self.__numsessions = mm_cfg.SMTP_MAX_SESSIONS_PER_CONNECTION
|
|
|
|
- def sendmail(self, envsender, recips, msgtext):
|
|
+ def sendmail(self, envsender, recips, msgtext, mailopts=[]):
|
|
if self.__conn is None:
|
|
self.__connect()
|
|
try:
|
|
- results = self.__conn.sendmail(envsender, recips, msgtext)
|
|
+ results = self.__conn.sendmail(envsender, recips, msgtext, mailopts)
|
|
except smtplib.SMTPException:
|
|
# For safety, close this connection. The next send attempt will
|
|
# automatically re-open it. Pass the exception on up.
|
|
@@ -114,7 +114,7 @@
|
|
# recipients they'll swallow in a single transaction.
|
|
deliveryfunc = None
|
|
if (not msgdata.has_key('personalize') or msgdata['personalize']) and (
|
|
- msgdata.get('verp') or mlist.personalize):
|
|
+ (msgdata.get('verp') and mm_cfg.VERP_STYLE == 'Manual') or mlist.personalize):
|
|
chunks = [[recip] for recip in recips]
|
|
msgdata['personalize'] = 1
|
|
deliveryfunc = verpdeliver
|
|
@@ -376,6 +376,9 @@
|
|
if mlist.include_sender_header:
|
|
del msg['sender']
|
|
msg['Sender'] = '"%s" <%s>' % (mlist.real_name, envsender)
|
|
+ mailopts=[]
|
|
+ if msgdata.get('verp') and mm_cfg.VERP_STYLE == 'Postfix':
|
|
+ mailopts.append('XVERP=' + mm_cfg.POSTFIX_XVERP_OPTS)
|
|
# Get the plain, flattened text of the message, sans unixfrom
|
|
# using our as_string() method to not mangle From_ and not fold
|
|
# sub-part headers possibly breaking signatures.
|
|
@@ -385,7 +388,7 @@
|
|
msgid = msg['message-id']
|
|
try:
|
|
# Send the message
|
|
- refused = conn.sendmail(envsender, recips, msgtext)
|
|
+ refused = conn.sendmail(envsender, recips, msgtext, mailopts)
|
|
except smtplib.SMTPRecipientsRefused, e:
|
|
syslog('smtp-failure', 'All recipients refused: %s, msgid: %s',
|
|
e, msgid)
|