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 上不适合我