无法发送电子邮件 - Django

Posted

技术标签:

【中文标题】无法发送电子邮件 - Django【英文标题】:Not able to send email - Django 【发布时间】:2013-06-07 04:07:32 【问题描述】:

我的settings.py

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 
EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 587 
EMAIL_HOST_USER = 'rakil@gmail.com' 
EMAIL_HOST_PASSWORD = '*******' 
DEFAULT_FROM_EMAIL = 'testing@testing.com

但是邮件没有发送到该地址,在控制台中,当我点击send_email 时,print.html 正在打印,但它没有发送任何电子邮件。

我正在使用 Django 1.3.7 和 Python 2.6。

不知道是版本问题还是逻辑问题。

【问题讨论】:

你打开调试了吗? DEBUG = True 在 settings.py 中?那么,您可以使用其他本地邮件客户端发送电子邮件吗?你确定你的本地 smtp 设置没问题吗?系统邮件或http日志是否有错误? settings.py 中的电子邮件配置是什么? @nemesisfixx DEBUG = TRUE in settings.py,如何检查后一个 @SamueleMattiuzzo settings.py 更新 启动一个 manage.py shell 并尝试从那里发送邮件。 【参考方案1】:

settings.py

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

console.EmailBackend 将在控制台中打印邮件。所以使用

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

解决了我的问题。它已经记录在这里:Django docs: Email

【讨论】:

这个小小的改变让每一种自然的方式都变成了好的方式。除了这一行之外,一切都正确无误,它总是可以正常工作,但没有发送电子邮件。现在没有错误并发送电子邮件(:.【参考方案2】:

发生这种情况时,我个人刚刚切换到我的生产服务器。由于这是一个新的 IP 地址,Google 试图通过阻止登录来保护我的帐户。

为了解决这个问题,我按照this answer 中的步骤操作:

首先,在此处启用访问您的 Google 帐户中安全性较低的应用程序:https://www.google.com/settings/security/lesssecureapps

因为我已经这样做了,而我现在的问题是因为一个新的 IP 地址,所以我不得不使用此链接手动确认下一次登录尝试:https://accounts.google.com/DisplayUnlockCaptcha

有关更多信息,请参阅链接的答案。

【讨论】:

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

如何使用 django-mailer 定时发送电子邮件

如何使用 django-rest-auth 和 Mailgun 从 Django 发送密码重置电子邮件

使用 Redis、Celery 设置 Django 以通过 Gmail 发送电子邮件

Django中使用celery分布式处理邮件/信息发送任务

Django中使用celery分布式处理邮件/信息发送任务

Django 群发邮件/邀请函