【发布时间】: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 发送电子邮件