1

我正在使用 django 辅助方法 send_mail,这可能是问题所在,但我无法从文档中判断是否是这种情况。

所以 - 这是我的方法:

send_mail('Alert!', theEmail.format(user.username),'admin@site.com',
        [user.email], fail_silently=False)

电子邮件看起来像这样:

theEmail = """ 嗨 {0}!
这是一封提醒电子邮件
这是一个链接:及时链接

但是当我运行此代码时,电子邮件发送正常 - 但在 gmail 中,消息打印时所有标签都可见。

我打算做某种“以html形式发送”的事情吗?

4

3 回答 3

4

尝试类似:

from django.core.mail import EmailMessage

msg = EmailMessage(subject, html, from_email, [recipients])
msg.content_subtype = 'html'
msg.send()
于 2012-09-28T03:41:46.557 回答
1

您可以在发送之前使用一些 Django 的内置函数来转义 html 字符串(也许 gmail 自己会进行一些转义/取消转义),例如:

from django.utils.safestring import mark_for_escaping
my_html = mark_for_escaping(my_raw_html)

或者

from django.utils.safestring import mark_safe
my_html = mark_safe(my_raw_html)

send_mail不支持“以 html 格式发送”之类的功能。

于 2012-09-28T02:49:47.553 回答
1

尝试使用html_message参数:

send_mail('Alert!', '', 'admin@site.com', [user.email], html_message=theEmail.format(user.username), fail_silently=False)
于 2017-11-19T18:22:12.087 回答