首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用html_message发送电子邮件

用html_message发送电子邮件
EN

Stack Overflow用户
提问于 2021-03-02 12:35:31
回答 1查看 260关注 0票数 0

我想使用这样的Django模板发送HTML-email:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    Hello <strong>{{ message }}</strong> - your account is activated.
</body>
</html>

另外,我想用电子邮件从后端发送数据。在这个例子中,我想用电子邮件模板从后端发送一条消息。

以下是我的看法:

代码语言:javascript
复制
def home(request):
    message_name = "NAME"
    message_email = "EMAIL"
    message = "USER"
    msg_html = render_to_string('email/email.html')

    send_mail(
        'message from ' + message_name,  # subject
        message,  # message
        message_email,  # from email
        ['myemail@outlook.de'],  # To Email
        html_message=msg_html,
    )
    context = {'message': message, 'message_name': message_name, 'message_email': message_email}
    return render(request, 'email/email.html', context)

当我收到电子邮件时,我只得到文本,而不是{{ message },在这个示例中,{message}将是用户

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-02 13:11:01

您需要将上下文传递到render_to_string调用中。render_to_string接受模板并返回带有传递上下文的HTML。然后可以传递给send_mail。因此,将代码更改为:

代码语言:javascript
复制
[...]
message_name = 'NAME'
message_email = 'EMAIL'
message = 'USER'
context = {'message': message, 'message_name': message_name, 'message_email': message_email}
msg_html = render_to_string('email/email.html', context=context)
[...]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66439506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档