Django表单:让通过表单发出的文本在邮件中加粗

3 投票
1 回答
2227 浏览
提问于 2025-04-18 09:04

我有个简单的问题。如果我有一个表单,它发送内容到邮箱,有没有办法让发送的某些文字在邮件里显示为粗体呢?

1 个回答

5

在Django 1.7中,send_mail()这个函数可以接受一个叫做html_message的参数:

如果提供了html_message,这封邮件就会变成一种叫做multipart/alternative的格式,里面包含两种内容:一种是普通文本(text/plain),另一种是HTML格式的内容(text/html)。

举个例子:

send_mail('Subject', 'Content', 'sender@example.com', ['nobody@example.com'], 
          html_message='This is <b>HTML</b> Content')

如果你用的是Django版本低于1.7,可以参考这里的解决方案,或者使用一个第三方库,比如django-email-html


另外,还有一个你可以考虑使用的第三方包 - django-mail-templated。这个包的主要功能是让你可以用Django模板来描述你的邮件内容。此外,它还支持在模板中的html块里发送HTML格式的邮件。

比如:

  • 创建一个模板

    {% block subject %}
    Email subject
    {% endblock %}
    
    {% block body %}
    This is a plain text.
    {% endblock %}
    
    {% block html %}
    This is <b>HTML</b> Content.
    {% endblock %}
    
  • 然后发送它:

    from mail_templated import send_mail
    send_mail('my_template.tpl', {}, from_email, [user.email])
    

希望这些信息对你有帮助。

撰写回答