You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django中禁用对等验证?生产环境邮件连接异常问题

解决Django生产环境SMTP连接意外关闭问题并禁用对等验证

针对你遇到的生产环境邮件连接意外关闭问题,核心原因通常是默认SMTP后端会验证服务器证书,当生产环境的SMTP证书不被信任(比如自签名证书)时就会触发这类错误。以下是禁用对等验证的具体操作:

1. 创建自定义SMTP后端

在你的Django项目中新建工具文件(比如utils/email_backends.py),写入以下代码:

import ssl
from django.core.mail.backends.smtp import EmailBackend

class NoPeerVerifyEmailBackend(EmailBackend):
    def ssl_context(self):
        context = ssl.create_default_context()
        # 关闭主机名检查和证书验证,即禁用对等验证
        context.check_hostname = False
        context.verify_mode = ssl.CERT_NONE
        return context

2. 修改项目配置

在settings.py中替换原有的邮件后端配置:

EMAIL_BACKEND = '你的项目名.utils.email_backends.NoPeerVerifyEmailBackend'

额外注意事项

  • 若SMTP服务器使用25端口,通常需要开启STARTTLS,可添加配置:EMAIL_USE_TLS = True
  • 禁用对等验证会降低通信安全性,仅建议在内部可信环境或测试场景使用;生产环境优先通过配置可信证书解决问题,避免安全风险。

内容的提问来源于stack exchange,提问作者Javier Alejandro Nuñez Falcón

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 02:24:57