如何在 Django 中为 EmailMultiAlternatives 自定义电子邮件后端
Posted
技术标签:
【中文标题】如何在 Django 中为 EmailMultiAlternatives 自定义电子邮件后端【英文标题】:How to customize email backend for EmailMultiAlternatives in Django 【发布时间】:2012-02-14 02:04:55 【问题描述】:背景:-
我的电子邮件后端是这样的:
EMAIL_HOST ='smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'feedback@example.com'
EMAIL_HOST_PASSWORD = 'XXX'
EMAIL_USE_TLS = True
问题:-
我正在使用 EmailMultiAlternatives 发送 html 邮件。 现在我想定义 auth_user 和 auth_password 以便我可以更改“来自”。基本上我想超越 EMAIL_HOST_USER,但希望 from_email 冗长,即“支持团队”。怎么办?
subject, from_email, to = "hello", 'Support Team','to_user@gmail.com'
text = "hello"
html = "<strong>hello</strong>"
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
msg.attach_alternative(html_content, "text/html")
msg.send(fail_silently=False,auth_user = 'support@example.me',auth_password = 'XXX')
【问题讨论】:
【参考方案1】:你可以这样做:
from django.core.mail import *
#retrieve emailbackend from settings.py
connection = get_connection(username, password)
#change connection parameters
connection.host='XXX'
msg = EmailMultiAlternatives(subject, text_content, from_email, [to], connection)
msg.attach_alternative(html_content, "text/html")
【讨论】:
connection.close() 是不需要的。它将引发错误,因为 send_messages 会关闭它打开的所有连接。 当 msg.send() 抛出异常时,我能够使用这个想法切换到备用 SMTP 服务器。效果很好。 可以直接传入连接。以上是关于如何在 Django 中为 EmailMultiAlternatives 自定义电子邮件后端的主要内容,如果未能解决你的问题,请参考以下文章