ZOHO smtp SMTPAuthenticationError at /(535,'Authentication Failed')Django app

时间:2017-07-26 10:32:08

标签: django smtp zoho

我正在尝试使用以下代码通过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)

4 个答案:

答案 0 :(得分:5)

原来我是在欧洲主办的zoho注册的,所以我通过将EMAIL_HOST更改为' smtp.zoho.eu'

来修复它。

答案 1 :(得分:2)

这是我在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'

您可以使用enter image description here中的快速示例对其进行测试。

from django.core.mail import send_mail

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

Django Docs

答案 2 :(得分:0)

我必须添加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 :(得分:0)

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

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