Django 发送邮件,原来是可以的,后来照抄到新的环境之后报错
def send_email(request):
send_to=['xxxx@qq.com']
msg = EmailMultiAlternatives('主题', '测试', 'hvacreport@friendofhvac.com', send_to)
msg.attach_alternative('测试', "text/html")
msg.send()
[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1002)
百度+gpt了一下,说是新版本的python加强了SLL验证
于是改成了
from django.core.mail import EmailMultiAlternatives
import ssl
import smtplib
ctx = ssl.create_default_context()
ctx.set_ciphers('DEFAULT')
with smtplib.SMTP("mail.safemail.it", 587) as server:
server.starttls(context=ctx)
# Create your tests here.
def send_email(request):
send_to=['xxxx@qq.com']
msg = EmailMultiAlternatives('主题', '测试', 'hvacreport@friendofhvac.com', send_to)
msg.attach_alternative('测试', "text/html")
msg.send()
然后变成了连接不上TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
应该怎么弄呢?