我正在尝试使用此代码发送电子邮件。但是当我尝试的时候。发送的html或电子邮件附件。 但不是两者。如果我省略附件,则会发送电子邮件正文。 但如果我添加附件,则不会发送电子邮件正文。请有人为您提供建议。
msg = EmailMultiAlternatives(subject=self.mail_subject, from_email=from_mail, to=(to,),
connection=connection)
if isinstance(attachment, list):
for attach_path in attachment:
msg.attach_file(attach_path)
msg.attach_alternative(html_with_context_data, "text/html")
try:
msg.send(fail_silently=True)
except:
pass
答案 0 :(得分:1)
使用这样的代码你期望什么?
try:
msg.send(fail_silently=True)
except:
pass
你告诉django失败默默这意味着它不会告诉你是否出现问题。即使您关闭了静音模式,您的异常处理也将确保您永远不会听到它!
永远不要这样做
except:
pass
始终捕获特定扩展,并且在极少数情况下需要捕获这样的通用异常,请记录它。
import traceback
except:
traceback.print_exc()
然后您将看到为什么没有发送您的附件。
(也许这应该是一个评论,但它太长了)
答案 1 :(得分:0)
花了2个小时后,我只添加了一行。现在我得到HTML和附件。
msg.content_subtype = 'html'