On structure correctement les emails envoyés pour y ajouter des PJ.

* Le message est multipart/mixed
 * Les variantes du texte sont contenues dans un multipart/alternative
 * Les PJ sont directement dans le multipart/mixed
This commit is contained in:
Pierre-Elliott Bécue 2015-06-26 00:58:06 +02:00
parent 3214dd0213
commit 2bbdfc7fc9

View file

@ -71,7 +71,8 @@ def submessage(payload, type, charset='utf-8'):
"""Renvois un sous message à mettre dans un message multipart"""
submsg = MIMEText('', type, charset)
del(submsg['Content-Transfer-Encoding'])
submsg['Content-Transfer-Encoding'] = '8bit'
# submsg['Content-Transfer-Encoding'] = '8bit'
# submsg['Content-Disposition'] = 'inline'
submsg.set_payload(payload)
return submsg
@ -143,14 +144,15 @@ def generate(mail, params, lang=default_language, lang_fallback=default_language
else:
params['mailer'] = 'unknown file (%s)' % os.getlogin()
msg = MIMEMultipart('alternative')
msg = MIMEMultipart('mixed')
inline_msg = MIMEMultipart('alternative')
if os.path.isdir(template_path + mail):
for filename in [dir for dir in os.listdir(template_path + mail) if os.path.isdir(template_path + mail + '/' + dir)]:
lang_tmp, mk, file = get_lang(mail, filename, lang, lang_fallback)
if filename == 'body':
for part in body(mail, lang_tmp, lang_alt, mk, params, charset):
msg.attach(part)
inline_msg.attach(part)
else:
txt = templateEnv.get_template(file).render(params)
if filename in ['From', 'To', 'Cc', 'Bcc']:
@ -158,6 +160,7 @@ def generate(mail, params, lang=default_language, lang_fallback=default_language
else:
msg[filename] = Header(txt.encode(charset), charset)
msg['Date'] = formatdate(localtime=True)
msg.attach(inline_msg)
return msg