【问题标题】:Add header to a mail using sendgrid & python使用 sendgrid 和 python 向邮件添加标题
【发布时间】:2017-12-01 23:54:48
【问题描述】:

我正在尝试使用 sendGrid 向邮件添加标题:

这是官网发邮件的代码,

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())

&它工作正常,现在添加一个我做的标题(使用这个: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'

我怎么解决这个问题?

【问题讨论】:

标签: python email header sendgrid


【解决方案1】:

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

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


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

【讨论】:

    【解决方案2】:

    试试这个,你可以使用set_headers方法来设置sendgrid邮件的标题。

    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)
    

    【讨论】:

      猜你喜欢
      • 2013-07-30
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-16
      • 2014-05-03
      • 1970-01-01
      相关资源
      最近更新 更多