升级v4.10.18后发邮件失败

从v4.10.12升级到v4.10.18,之前发送邮件是正常的,但升级到v4.10.18后就报以下错误,请问有人遇到吗?怎么解决啊?

下面邮件配置里有勾选SSL吗?勾选或者取消勾选试试呢

是用SSL加密的,以前也是这么配置的。

18升级了Django到5.2,可能smtp会严格校验邮件服务器证书了。你可以按下面这个步骤试一下看看能不能解决,如果不行从证书方面去看看咋解决,或者对接QQ邮件服务器使用。

  1. 取出 SMTP 证书链
    465(SSL):
    echo | openssl s_client -connect <SMTP主机>:465 -showcerts 2>/dev/null
    把输出里的中间 CA / 根 CA(或自签证书)保存为 PEM,例如 smtp-ca.crt
  2. 写入 core 容器信任库并刷新
    docker cp smtp-ca.crt jms_core:/usr/local/share/ca-certificates/smtp-ca.crt
    docker exec -u root jms_core update-ca-certificates

是自建的邮箱系统,证书也是公司内部CA签发的,因公司不允许用第三方邮箱收邮件。尝试将CA证书放到core容器对应目录然后update certs,还是不行,报另外的错。

这个好像是已知问题,新版本升级了 openssl ,等待修复吧

我复现了你的问题,建议如下:
首先保证证书确实挂载到了core内,

# 看你的 JumpServer 相关容器叫什么
docker ps --format '{{.Names}}' | grep -iE 'jms|core'

# 用上面查到的容器名替换 JMS_CONTAINER,用你的实际路径替换证书路径
JMS_CONTAINER=jms_core
CA_FILE=/root/mail-ca.crt

# 1)拷进容器(文件名必须以 .crt 结尾,update-ca-certificates 才识别)
docker cp "$CA_FILE" "$JMS_CONTAINER:/usr/local/share/ca-certificates/jms-mail-ca.crt"

# 2)容器内安装到系统信任库
docker exec "$JMS_CONTAINER" sh -c "mkdir -p /usr/local/share/ca-certificates && update-ca-certificates"

确认导入的证书没有问题(是导入公开的根ca,不是私钥 ca,也不要叶子 ca,假如使用了内网域名,确保证书 san 包含此域名,假如是使用的ip,确保ip被包含在证书内);

确认做好了证书持久化;

老师你导入的公共的受信CA证书没有问题,我导的是公司的自签CA证书很久前生成的,生成有些参数未设置,现对CA根证书校验比较严格。涉及到公司的自签证书和邮件系统的ssl证书都要按符合要求的规范重新生成,比较麻烦,不知道官方会不会推出忽略证书的参数或修复,谢谢老师!

我这里也是使用的自签 ca,我的意思是 ca 证书是一对密钥,把公钥分发