使用 sendgrid & python 添加 header 到邮件

Add header to a mail using sendgrid & python

我正在尝试使用 sendGrid 将 header 添加到邮件中:

这是从官网发送邮件的代码,

string apikey = "......."
sg = sendgrid.SendGridAPIClient( apikey =apikey)
to_email = Email("....@gmail.com")   
from_email =Email ("....")
subject= '...'
content=Content('..')
mail =Mail(...)
response = sg.client.mail.send.post(request_body=mail.get())

& 它工作正常,现在添加一个 header 我做了(使用这个:https://github.com/sendgrid/smtpapi-python

header = SMTPAPIHeader()
header.set_unique_args({'orderNumber':'123456'})  
mail.add_header(header)

然后

response = sg.client.mail.send.post(request_body=mail.get())

但我得到:

in get(self)
     70             headers = {}
     71             for key in self.headers:
---> 72                 headers.update(key.get())
     73             mail["headers"] = headers
     74 

AttributeError: 'SMTPAPIHeader' object has no attribute 'get'

我怎么解决这个问题?

是的,确实是通过个性化完成的:

mail.personalizations[0].add_header(Header("..","..."))


response = sg.client.mail.send.post(request_body=mail.get())

试试这个,您可以使用 set_headers 方法为 sendgrid 电子邮件设置 headers。

import sendgrid

sg = sendgrid.SendGridClient("XXXX-UR-API-KEY-XXXXX")

message = sendgrid.Mail()
message.add_to('to@email.com')
message.set_from("from@email.com>")
message.set_subject("email subject")
message.set_html('html body')

message.set_headers({'X-Priority' : '2'}) #<=== To add priority

sg.send(message)