【问题标题】:Django Mailer not finding serverDjango Mailer 找不到服务器
【发布时间】:2016-04-23 04:15:09
【问题描述】:

我正在尝试通过 Django 的包装器发送电子邮件。

这是我的相关设置。

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

EMAIL_USE_TLS = True

EMAIL_HOST = 'smtp.gmail.com'

EMAIL_HOST_USER = 'myemail@gmail.com'

EMAIL_HOST_PASSWORD = 'mypassword'

EMAIL_PORT = 587

DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

电子邮件,我试图以最基本的视图形式隔离:

from django.core.mail import send_mail

def index(request):

    subject = 'Subject'
    message = 'message'
    from_email = settings.DEFAULT_FROM_EMAIL

    send_mail(subject, message, from_email, ['email@example.com'])

    return render(request, "index.html")

所有的电子邮件和密码都是合法的。当我执行代码时,我收到一条错误消息:

SMTPAuthenticationError at /....*Link to sign into my account*
Please log in via your web browser and\n5.7.14 then try again

我这样做了,但仍然收到相同的消息。我在应用程序中输入的密码是正确的。我的 gmail 帐户有什么需要配置的吗?

【问题讨论】:

  • return render(...) 行被错误地缩进显示,并且不会作为索引函数的一部分返回。这是您文件中的缩进吗?
  • 返回渲染行在我的文件中的正确位置,只是问题上的一个错字。
  • 在我的设置中,我必须设置 EMAIL_PORT = 587 才能通过带有 TLS 的 Gmail 发送;据我了解,Gmail 提供的端口是 25 用于无加密,465 用于 SSL,587 用于 TLS
  • 运气好吗?如果是这样,我将更新我的答案,以便它清楚地回答现在提出的问题

标签: python django django-mailer


【解决方案1】:

EMAIL_HOST = 'smtp.gmail.com ' 更改为EMAIL_HOST = 'smtp.gmail.com' 我敢打赌你的问题会消失 :)

编辑 #1 您遇到了身份验证问题,因为EMAIL_USE_TLSTrue,Gmail 只需要 TLS 连接,用于端口 587 上的 SMTP。更改为 EMAIL_PORT = 587,您应该绕过该问题。

编辑#2 您看到的错误可以通过您的 Gmail 设置修复。看 - Django SMTPAuthenticationError

【讨论】:

  • 很抱歉因为错字而浪费您的时间。这摆脱了错误消息,但让我回到了我在错字之前遇到的问题。当我尝试发送电子邮件时,浏览器会永远重新加载。 @伊恩价格
  • send_mail(subject, message, from_email, ['email@example.com']) 通常只会在视图中调用或由模型或表单上的方法触发。如果您使用调用 send_mail 函数的完整代码发布新问题,我们可以为您提供帮助。如果我帮助了你,请标记为完成。谢谢!
  • 我只需要等待一秒钟就可以让我接受答案。该函数在没有邮件相关代码的情况下可以正常工作的视图中调用。@Ian Price
猜你喜欢
  • 2013-03-18
  • 2019-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-02
  • 2012-11-30
  • 2013-12-12
  • 1970-01-01
相关资源
最近更新 更多