漆黑天使复活 2023-06-20 21:09 采纳率: 44.4%
浏览 97
已结题

Django 发送email,ssl握手失败

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] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

应该怎么弄呢?

  • 写回答

12条回答 默认 最新

  • PhoenixRiser 2023-06-20 21:20
    关注
    获得0.60元问题酬金

    TechWhizKid参考GPT回答:

    看起来你正在尝试通过SMTP服务器发送邮件,而在迁移到新的环境后遇到了SSL握手失败的问题。当你改变了SSL的默认环境和加密套件后,你遇到了连接超时的问题。

    这个问题可能有很多可能的原因,我会尝试给出一些可能帮助解决问题的建议:

    1. 检查SMTP服务器的设置和访问权限:请确保你的新环境被允许访问SMTP服务器。尤其是如果你在运行你的应用程序的机器或网络有任何防火墙设置,可能会阻止你的应用程序连接到SMTP服务器。

    2. 检查SMTP服务器的端口和SSL/TLS设置:在你的代码中,你尝试连接到SMTP服务器的端口是587,这通常是用于STARTTLS命令的端口,该命令会将现有的、未加密的SMTP连接升级为加密的连接。但是,如果你的SMTP服务器要求或期望使用SSL/TLS从一开始就加密连接,那么可能需要使用端口465,而不是端口587。

    3. 调整SSL环境的配置:你的代码已经尝试创建一个新的SSL环境,并设置其使用默认的加密套件。但是,这可能并不适合你的SMTP服务器。你可能需要找出SMTP服务器所需的具体加密套件,并将其设置在你的SSL环境中。

    4. 检查Python和Django的版本:你提到了新版本的Python增强了SSL验证,但你没有提供具体的版本号。确保你的Python和Django版本是最新的,或者至少是你的SMTP服务器所支持的版本。

    评论

报告相同问题?

问题事件

  • 系统已结题 6月28日
  • 赞助了问题酬金15元 6月20日
  • 修改了问题 6月20日
  • 创建了问题 6月20日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?