Django 在 Pythonanywhere 上使用 Office365 发送电子邮件

Posted

技术标签:

【中文标题】Django 在 Pythonanywhere 上使用 Office365 发送电子邮件【英文标题】:Django Sending Email with Office365 on Pythonanywhere 【发布时间】:2020-04-26 10:37:47 【问题描述】:

我已经在 Pythonanywhere 上部署了我的 Web 项目。我用 gmail SMTP 发送电子邮件,但我想用 Office365(公司帐户)发送。我使用了很多选项,但我没有弄清楚。它存在于Pythonanywhere的白名单中

它会抛出该错误:

期望值:[Errno 101] 网络不可达

在我的 settings.py 中是这样的:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

EMAIL_HOST = 'smtp.office365.com'

EMAIL_HOST_USER = 'xyz@domainname.com'

EMAIL_HOST_PASSWORD = '########'

EMAIL_PORT = 587

EMAIL_USE_TLS = 真

DEFAULT_FROM_EMAIL = 'xyz@domainname.com'

SERVER_EMAIL = 'xyz@domainname.com'

谢谢大家。

【问题讨论】:

【参考方案1】:

PythonAnywhere 上的免费帐户只能使用 HTTP 或 HTTPS 连接到列入白名单的外部服务器;您正在尝试使用 SMTP 进行连接,这是一种不同的协议。如果您想从免费帐户发送电子邮件,您需要使用 GMail,或者使用基于 HTTPS 的电子邮件解决方案,例如 MailGun 或 SendGrid。或者,您可以升级到付费帐户,这样您就可以使用 SMTP 连接其他服务器。

有更多关于this PythonAnywhere help page的信息。

【讨论】:

以上是关于Django 在 Pythonanywhere 上使用 Office365 发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Django 项目迁移到 Pythonanywhere

简易博客开发----django1.9 博客部署到pythonanywhere上

在 pythonanywhere 中托管时,django python 中的 Cloudinary Image Upload 错误

Django order_by() 在 PythonAnywhere 上不适合我

Django--在Pythonanywhere部署Django。

在 Pythonanywhere 上使用 Cloudinary 上传的图像得到 [错误 111]