如何使用sendgrid发送电子邮件时解决HTTP错误401:未经授权?

时间:2019-06-12 14:02:37

标签: python django

我想编写一个在使用sendgrid时向用户发送电子邮件的应用程序,我去了sendgrid并遵循了所有说明,包括安装sendgrid和设置环境变量。

我尝试将环境变量放在路径中,但仍然显示错误

我也尝试将其放入代码中,但仍然失败,并出现相同的错误

这是我的send-mail.py代码:

import os
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail

message = Mail(
    from_email='from_email@example.com',
    to_emails='to@example.com',
    subject='Sending with Twilio SendGrid is Fun',
    html_content='<strong>and easy to do anywhere, even with 
Python</strong>')
try:
    sg = SendGridAPIClient(os.environ.get('SG.97- 
 h52MJSXK4C7_FIl5yzw.q3GsOa4P_AO1pKvUcOzQg6XzuRXEY3mzD-Ci5eN2I2E'))
    response = sg.send(message)
    print(response.status_code)
    print(response.body)
    print(response.headers)
except Exception as e:
    print(e
    )

我已经创建了一个名为Mail的文件夹,并在名为send_mail.py的内部创建了一个文件

我希望发送电子邮件,但会引发HTTP错误401:未经授权

1 个答案:

答案 0 :(得分:0)

您正在尝试获取名称为API密钥的环境变量。这很可能返回None,这会使您的身份验证失败。您可能还需要考虑重新生成您的API密钥,而您现在已经向Internet公开了它。

尝试将SendGridAPIClient(os.environ.get('SG.97- h52MJSXK4C7_FIl5yzw.q3GsOa4P_AO1pKvUcOzQg6XzuRXEY3mzD-Ci5eN2I2E'))替换为SendGridAPIClient('SG.97- h52MJSXK4C7_FIl5yzw.q3GsOa4P_AO1pKvUcOzQg6XzuRXEY3mzD-Ci5eN2I2E')