【问题标题】:ZOHO smtp SMTPAuthenticationError at / (535, 'Authentication Failed') Django appZOHO smtp SMTPAuthenticationError at / (535, 'Authentication Failed') Django 应用
【发布时间】:2018-01-01 15:02:09
【问题描述】:

我正在尝试使用以下代码在 VPS 上通过 shell 建立连接:

import smtplib
from email.mime.text import MIMEText


sender = 'my zoho email'
recipient = 'my gmail account email'


msg = MIMEText("Message text")
msg['Subject'] = "Sent from python"
msg['From'] = sender
msg['To'] = recipient


server = smtplib.SMTP_SSL('smtp.zoho.com', 465)

# Perform operations via server
server.login('my zoho account email', '*********')

所有凭据都正确,因为我已成功登录到我的帐户 https://www.zoho.eu/mail/

当我尝试登录时:

server.login('my zoho account email', '*********')

我收到 SMTPAuthenticationError 并且堆栈跟踪显示:

 self.connection.login(force_str(self.username), force_str(self.password)) 
 ...
 raise SMTPAuthenticationError(code, resp)

我的 settings.py 是:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'     
EMAIL_USE_TSL = True
EMAIL_PORT = 465
EMAIL_HOST = 'smtp.zoho.com'
EMAIL_HOST_USER = '**********'
EMAIL_HOST_PASSWORD = '*********'

网上有很多关于这个的话题,但甚至没有一个答案。他们的支持现在第三天没有回应......

我正在使用 NGINX,默认配置未设置为 https://,但我的自定义配置是,并且网站运行在 https:// 上。

编辑:如果我尝试通过端口 587 连接:

server = smtplib.SMTP_SSL('smtp.zoho.com', 587)

我明白了:

SSLError: [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:590)

【问题讨论】:

  • 希望您检查过密码。
  • 确保您没有启用两步验证。
  • 我使用的密码与登录他们网站的密码相同。那应该是正确的。我已经改过两次密码了。
  • @MuhammadAsif 我没有启用它。
  • @HenryLynx 587 永远不会使用 SSL。根据 Zoho mail 的文档,587 使用 tls。我建议您使用 587 加密的 tls 而不是 465 的 SSL 发送电子邮件

标签: django smtp zoho


【解决方案1】:

看起来您已经解决了这个问题,但我遇到了同样的错误,并发现解决方案是我最近在帐户上启用了 2FA,所以我必须添加一个应用专用密码。

可以在Zoho Mail docs 中找到有关执行此操作的说明。

【讨论】:

    【解决方案2】:

    我必须添加 ignoreTLS 才能工作

    const transport = nodemailer.createTransport({
        host: "smtp.zoho.eu",
        port: 465,
        secure: true,
        auth: {
            user: config.ZOHO_USER,
            pass: config.ZOHO_PASS
        },
        ignoreTLS: true // <----
    });
    

    【讨论】:

      【解决方案3】:

      原来我是在 zoho 的欧洲主机下注册的,所以我通过将 EMAIL_HOST 更改为“smtp.zoho.eu”来修复它

      【讨论】:

      • 想象一下花几个小时在这上面,谢谢你。
      • 天哪!你是救命稻草,在过去的 2 个月里我无法弄清楚这一点,我联系了 namecheap,因为我认为他们有一些问题。
      • 您是如何发现自己在zoho的欧洲主机上注册的?
      • 在我的例子中是smtp.zoho.in
      【解决方案4】:

      这是我在 settings.py 中的唯一设置,足以让它工作。

      #Email Settings
      EMAIL_USE_SSL = True
      EMAIL_HOST = 'smtp.zoho.com'
      EMAIL_PORT = 465
      EMAIL_HOST_USER = 'someone@example.com'
      EMAIL_HOST_PASSWORD = 'yourpassword'
      DEFAULT_FROM_EMAIL = 'someone@example.com'
      SERVER_EMAIL = 'someone@example.com'
      

      您可以使用来自Django Docs 的快速示例对其进行测试。

      from django.core.mail import send_mail
      
      send_mail(
          'Subject here',
          'Here is the message.',
          'from@example.com',
          ['to@example.com'],
          fail_silently=False,
      )
      

      【讨论】:

      • SERVER_EMAIL 是我的settings.py 中缺少的内容。谢谢!
      猜你喜欢
      • 2019-06-02
      • 2021-07-30
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 2020-11-04
      • 2018-01-12
      • 2018-02-08
      • 2020-02-05
      相关资源
      最近更新 更多