optional mail.settings.sender, thanks Michele
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.4.1-alpha.2+timestamp.2013.01.09.16.09.41
|
Version 2.4.1-alpha.2+timestamp.2013.01.09.16.56.34
|
||||||
|
|||||||
+10
-9
@@ -272,7 +272,7 @@ class Mail(object):
|
|||||||
cc=None,
|
cc=None,
|
||||||
bcc=None,
|
bcc=None,
|
||||||
reply_to=None,
|
reply_to=None,
|
||||||
sender='%(sender)s',
|
sender=None,
|
||||||
encoding='utf-8',
|
encoding='utf-8',
|
||||||
raw=False,
|
raw=False,
|
||||||
headers={}
|
headers={}
|
||||||
@@ -360,9 +360,11 @@ class Mail(object):
|
|||||||
text = encode_header(text)
|
text = encode_header(text)
|
||||||
return text
|
return text
|
||||||
|
|
||||||
|
sender = sender or self.settings.sender
|
||||||
|
|
||||||
if not isinstance(self.settings.server, str):
|
if not isinstance(self.settings.server, str):
|
||||||
raise Exception('Server address not specified')
|
raise Exception('Server address not specified')
|
||||||
if not isinstance(self.settings.sender, str):
|
if not isinstance(sender, str):
|
||||||
raise Exception('Sender address not specified')
|
raise Exception('Sender address not specified')
|
||||||
|
|
||||||
if not raw:
|
if not raw:
|
||||||
@@ -458,11 +460,11 @@ class Mail(object):
|
|||||||
c.set_armor(1)
|
c.set_armor(1)
|
||||||
c.signers_clear()
|
c.signers_clear()
|
||||||
# search for signing key for From:
|
# search for signing key for From:
|
||||||
for sigkey in c.op_keylist_all(self.settings.sender, 1):
|
for sigkey in c.op_keylist_all(sender, 1):
|
||||||
if sigkey.can_sign:
|
if sigkey.can_sign:
|
||||||
c.signers_add(sigkey)
|
c.signers_add(sigkey)
|
||||||
if not c.signers_enum(0):
|
if not c.signers_enum(0):
|
||||||
self.error = 'No key for signing [%s]' % self.settings.sender
|
self.error = 'No key for signing [%s]' % sender
|
||||||
return False
|
return False
|
||||||
c.set_passphrase_cb(lambda x, y, z: sign_passphrase)
|
c.set_passphrase_cb(lambda x, y, z: sign_passphrase)
|
||||||
try:
|
try:
|
||||||
@@ -619,7 +621,6 @@ class Mail(object):
|
|||||||
# no cryptography process as usual
|
# no cryptography process as usual
|
||||||
payload = payload_in
|
payload = payload_in
|
||||||
|
|
||||||
sender = sender % dict(sender=self.settings.sender)
|
|
||||||
payload['From'] = encoded_or_raw(sender.decode(encoding))
|
payload['From'] = encoded_or_raw(sender.decode(encoding))
|
||||||
origTo = to[:]
|
origTo = to[:]
|
||||||
if to:
|
if to:
|
||||||
@@ -655,16 +656,16 @@ class Mail(object):
|
|||||||
attachments = attachments and [(a.my_filename, a.my_payload) for a in attachments if not raw]
|
attachments = attachments and [(a.my_filename, a.my_payload) for a in attachments if not raw]
|
||||||
if attachments:
|
if attachments:
|
||||||
result = mail.send_mail(
|
result = mail.send_mail(
|
||||||
sender=self.settings.sender, to=origTo,
|
sender=sender, to=origTo,
|
||||||
subject=subject, body=text, html=html,
|
subject=subject, body=text, html=html,
|
||||||
attachments=attachments, **xcc)
|
attachments=attachments, **xcc)
|
||||||
elif html and (not raw):
|
elif html and (not raw):
|
||||||
result = mail.send_mail(
|
result = mail.send_mail(
|
||||||
sender=self.settings.sender, to=origTo,
|
sender=sender, to=origTo,
|
||||||
subject=subject, body=text, html=html, **xcc)
|
subject=subject, body=text, html=html, **xcc)
|
||||||
else:
|
else:
|
||||||
result = mail.send_mail(
|
result = mail.send_mail(
|
||||||
sender=self.settings.sender, to=origTo,
|
sender=sender, to=origTo,
|
||||||
subject=subject, body=text, **xcc)
|
subject=subject, body=text, **xcc)
|
||||||
else:
|
else:
|
||||||
smtp_args = self.settings.server.split(':')
|
smtp_args = self.settings.server.split(':')
|
||||||
@@ -679,7 +680,7 @@ class Mail(object):
|
|||||||
if self.settings.login:
|
if self.settings.login:
|
||||||
server.login(*self.settings.login.split(':', 1))
|
server.login(*self.settings.login.split(':', 1))
|
||||||
result = server.sendmail(
|
result = server.sendmail(
|
||||||
self.settings.sender, to, payload.as_string())
|
sender, to, payload.as_string())
|
||||||
server.quit()
|
server.quit()
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
logger.warn('Mail.send failure:%s' % e)
|
logger.warn('Mail.send failure:%s' % e)
|
||||||
|
|||||||
Reference in New Issue
Block a user