我正在尝试使用SMTP和Django应用的sendgrid发送电子邮件。我可以在本地服务器上发送电子邮件,但是在我的Heroku应用程序上,我收到“ SMTPServerDisconnected”错误消息,提示“连接意外关闭。一旦部署到Heroku,是否可以通过sendgrid发送SMTP电子邮件?我似乎无法查找与此有关的任何文档。
这是我在settings.py中对电子邮件的设置:
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'EMAIL_HOST_USER'
EMAIL_HOST_PASSWORD = 'EMAIL_HOST_PASSWORD'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'email@email.com'
SENDGRID_API_KEY='SENDGRID_API_KEY'
SENDGRID_PASSWORD='SENDGRID_PASSWORD'
SENDGRID_USERNAME='SENDGRID_USERNAME'
请让我知道您用于发送SMTP电子邮件的设置。谢谢。
答案 0 :(得分:0)
您需要进入Sendgrid dyno。导航到“设置”>“ API密钥”。
单击创建API密钥,在编写此密钥时,它是页面右上角的蓝色按钮。
复制它们为您生成的密钥,并将其粘贴到本地计算机上的某个位置,然后导航回到heroku页面。导航到应用程序的“设置”,然后单击“显示配置变量”。现在,您应该看到所有环境变量的键值对。在“密钥”列中添加“ SENDGRID_API_KEY”,并在“值”列中添加您从Sendgrid网站复制的密钥。此时,以下python代码应该可以正常工作:
sg = sendgrid.SendGridAPIClient(os.environ['SENDGRID_API_KEY'])
message = Mail(from_email='example@example.com', to_emails='example@example.com',
subject='Example Subject ', html_content='<strong>and easy to do anywhere, even with Python</strong>')
response = sg.send(message)
如果保留response变量,则可以将代码包装在try块中,try块可以尝试捕获错误。对不起格式,我仍然是堆栈溢出的新手。