django sendgrid发送唯一参数

时间:2018-06-05 07:31:43

标签: django email sendgrid

Sendgrid允许在发送电子邮件时指定唯一参数。这些可用于事件webhook集成,以识别电子邮件doc

我在django中有一个现有的代码片段,它使用django.core.mail.EmailMultiAlternatives通过SendGrid发送电子邮件。如果可能的话,我想指定上面提到的唯一参数。到目前为止,我试图使用custom_args字段

email.custom_args = {'test_arg': 'value'}

但这似乎不起作用。 我看到有一个django-sendgrid module,但如果可能的话,我宁愿不必重新编写现有的代码库。

2 个答案:

答案 0 :(得分:1)

我没有使用SendGrid,但看起来Unique Arguments是电子邮件headers,而文档emailmessage,您可以添加headers例如:

from django.core.mail import EmailMultiAlternatives

subject, from_email, to = 'hello', 'EXAMPLE@FROM.com', 'EXAMPLE@TO.NET'
text_content = 'This is an important message.'
msg = EmailMultiAlternatives(
    subject,
    text_content,
    from_email,
    [to], headers={"customerAccountNumber": "55555", },
)
msg.send()

答案 1 :(得分:1)

您是否尝试过使用SendGrid Python Library

术语custom_args特定于Web API v3 Mail Send,因此将其添加到您的SMTP邮件将不起作用。 Web v3 API调用比SMTP事务更快,功能更全面,但是是新一代的调用,并且有一些更新的词汇。

如果您需要通过SMTP发送,则需要专门使用X-SMTPAPI header中的unique_args一词。这将允许将那些key:值附加到与该发送中生成的消息相关的所有事件。