我想编写一个在使用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:未经授权
答案 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')
。