在 django 中向密件抄送和抄送发送电子邮件
Posted
技术标签:
【中文标题】在 django 中向密件抄送和抄送发送电子邮件【英文标题】:send email to bcc and cc in django 【发布时间】:2013-06-08 12:09:03 【问题描述】:views.py
if 'send_email' in request.POST:
subject, from_email, to = 'Parent Incident Notification',user.email, person.parent_email
html_content = render_to_string('incident/print.html','person':person,
'report':report,
)
text_content = strip_tags(html_content)
msg = EmailMultiAlternatives(subject, text_content, settings.DEFAULT_FROM_EMAIL, [to])
msg.attach_alternative(html_content, "text/html")
msg.send()
以上是发送电子邮件的视图。通过这种方式,我可以将html内容与邮件一起发送,它将电子邮件单独发送到[to]地址,我也想再做一个密件抄送和抄送。我经历了文档中的Emailmessage objects
。我不知道如何包含密件抄送和抄送来改变我的观点。
需要帮助。
谢谢
【问题讨论】:
【参考方案1】:EmailMultiAlternatives
是EmailMessage
的子类。初始化消息时可以指定bcc
和cc
。
msg = EmailMultiAlternatives(subject, text_content, from_email, [to_email], bcc=[bcc_email], cc=[cc_email])
【讨论】:
【参考方案2】:EmailMessage
现在支持cc
和bcc
:
https://docs.djangoproject.com/en/1.10/topics/email/#django.core.mail.EmailMessage
【讨论】:
【参考方案3】:我需要以 HTML 内容为正文的密件抄送,这是我的实现
from django.core.mail import EmailMessage
email = EmailMessage(
'Subject',
'htmlBody',
'from@email.com',
[to@email.com],
[bcc@email.com],
reply_to=['reply_to@email.com']
)
email.content_subtype = "html"
email.send(fail_silently=True)
更多详情请咨询Django docs
【讨论】:
【参考方案4】:您可以使用文本字段
class Client(models.Model):
bcc = models.TextField(null=True, blank=True)
像这样输入多封电子邮件(bcc 字段):test1@example.com,test2@example.com
from django.core.mail import EmailMessage
clients= Client.objects.all()
for client in clients:
subject = client.subject
content = client.body
contact_email = client.msg_from
to = client.msg_to
bcc_mails = client.bcc
bcc = bcc_mails.split(",")
bcc_mails.replace('"', "")
email = EmailMessage(
subject,
content,
contact_email,
[to],
bcc,
headers='Reply-To': contact_email
)
【讨论】:
以上是关于在 django 中向密件抄送和抄送发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章