首页 > 解决方案 > Django 发送带有链接的电子邮件不起作用

问题描述

我正在尝试发送带有附加链接的邮件Django

我的views.py

def mail_report(request, pk):
    admin_objs = Admin.objects.order_by()
    Report_obj = Report.objects.filter(pk=pk).first()

    to = []
    for i in admin_objs:
        to.append(i.email)

    mail_report_dict = {
        'report' : Report_obj,
    }
    html_content = render_to_string("app/mail_report.html", mail_report_dict)
    text_content = strip_tags(html_content)

    email = EmailMultiAlternatives(
        "Industry Inspection Report from Project Surokkha",
        text_content,
        settings.EMAIL_HOST_USER,
        to
    )
    email.send()

    return redirect('app:index')

我的template

<!DOCTYPE html>
{% load static %}
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <h3>Hello Admin,</h3>
    <p>
      Inspection Report of {{ report.name }} 
    </p>
    <p>
      Please check the report:
      <a href="https://html2canvas.hertzen.com/configuration" style="color: skyblue;">
        report link
      </a>
    </p>

  </body>
</html>

但是当收到邮件时,没有带有单词的超链接report link。注意:我mail_report.html也在我的浏览器中检查了,它完美地包含了链接。

我怎样才能解决这个问题?

标签: pythondjango

解决方案


您忘记附加替代html_content项,即将您的使用更改EmailMultiAlternatives为:

email = EmailMultiAlternatives(
    "Industry Inspection Report from Project Surokkha",
    text_content,
    settings.EMAIL_HOST_USER,
    to
)
email.attach_alternative(html_content, "text/html")
email.send()

另请参阅Django 文档


推荐阅读