为了账号安全,请及时绑定邮箱和手机立即绑定

通过 Sendgrid API 发送电子邮件时出错

通过 Sendgrid API 发送电子邮件时出错

猛跑小猪 2022-01-18 17:45:24
在我的生产服务器上,我收到以下错误“ init () 得到了一个意外的关键字参数 'apikey'”开发服务器上的相同代码正在运行。我的生产服务器正在运行 gunicorn,并且我已将环境变量 SENDGRID_API_KEY 添加到 gunicorn.service 文件中。我已经重新启动了 gunicorn 和 nginx。我可以看到环境变量已加载。我调用发送电子邮件的方法如下:def sendtestemail(to):    sg = sendgrid.SendGridAPIClient(apikey=os.environ.get('SENDGRID_API_KEY'))    from_email = Email("<myemail>@<mydomain>.com")    to_email = Email(to)    subject = "Sending with SendGrid is Fun"    content = Content("text/plain", "and easy to do anywhere, even with Python")    mail = Mail(from_email, subject, to_email, content)    response = sg.client.mail.send.post(request_body=mail.get())    return [response.status_code, response.body, response.headers]
查看完整描述

1 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

该问题源于 sendgrid 6.0 中引入的一项重大更改。关键字参数 forapikey已被删除并替换为位置参数。

要解决您的示例,请apikey=从您的参数中删除,然后将 api_key 作为位置参数传递。

    sg = sendgrid.SendGridAPIClient(os.environ.get('SENDGRID_API_KEY'))

回顾之前的所有示例以及 GitHub 文档时,这可能会有点令人困惑,但官方文档中的这个示例确实是正确的。


注意:我确实看到在提出您的问题时,您确实遵循了我在上面正确链接的文档。有一些问题在很长一段时间内文档仍然不准确,但在 5 月份得到解决。


查看完整回答
反对 回复 2022-01-18
  • 1 回答
  • 0 关注
  • 228 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信