Django、Celery 和 SendGrid 的字符编码问题

Character Encoding Issue with Django, Celery, and SendGrid

提问人:HoliSimo 提问时间:10/11/2023 最后编辑:HoliSimo 更新时间:10/12/2023 访问量:24

问:

我一直在使用一个使用 Django 和 Celery 来发送电子邮件的设置,为此我们集成了 SendGrid。但是,我遇到了一个特殊的问题,我希望有人能对此有所了解。

对于某些电子邮件模板,在发送电子邮件时,带有变音符号的字符(特别是“ì”)将显示为另一个字符,在本例中为“ě”。我已经仔细检查并确保所有软件配置都设置为 utf-8 编码,但这种不一致仍然存在。

有没有人遇到过类似的问题,或者对如何调试或修复此问题有任何建议?

例: “Martedě”而不是“Martedì”

enter image description here

Martedě“而不是”Martedì

模板保存在 utf-8 编码的 html 文件中。 这是用于发送电子邮件的代码:

message = render_to_string(
    "emails/booking_canceled/cliente_to_client.html",
    {
        "first_name": booking.customer_first_name,
        # ...
    },
)

email = EmailMessage(
    subject=subject,
    body=message,
    from_email=DEFAULT_FROM_EMAIL,
    to=[booking.customer_email],
    headers={"Content-Type": "text/html; charset=UTF-8"},
)
email.content_subtype = "html"
email.send()
logger.info(
    "[booking_code:  %s][customer_email: %s] Sent.",
    booking.code,
    booking.customer_email,
)

提前感谢您的任何帮助!

Django Celery 发送网格

评论


答: 暂无答案