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

Symfony Mailer配置错误:Shopware 6邮件SSL证书验证失败

Shopware 6 + Symfony邮件SSL证书验证失败问题解决指南

问题场景

Linux Nginx服务器上运行的Shopware 6项目,使用Symfony发送邮件时出现SSL证书验证失败错误。当前.env配置:

MAILER_URL=smtp://user:pass@mail.ourserver.de??encryption=ssl&auth_mode=login

错误日志:

app.ERROR: Could not send mail: Failed sending mail to following recipients: {{ recipients }} with Error: Connection could not be established with host "ssl://mail.ourserver.de :465": stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed Error Code:0


核心疑问解答

1. 是否需要为mail.ourserver.de配置SSL证书?

是的,这是解决问题的根本方案。错误日志明确指向证书验证失败,说明你的SMTP服务器mail.ourserver.de要么没有配置有效的SSL证书,要么服务器系统的CA根证书库不认可当前证书。

  • 如果mail.ourserver.de是你的自有邮件服务器,必须为其安装可信CA颁发的SSL证书(比如Let's Encrypt免费证书),自签证书默认不被系统信任,会触发验证失败。
  • 不需要手动修改Linux OpenSSL配置添加cert和key,只要邮件服务器正确配置证书,Shopware项目会自动通过系统默认的CA根证书库完成验证。

2. verify_peer=false参数的利弊

  • 临时可用,但绝非生产环境的最佳实践:添加该参数确实能绕过SSL证书验证,让邮件正常发送,但会带来致命安全风险。
  • 安全隐患:设置verify_peer=false后,SSL连接的证书验证会被完全禁用——你的服务器无法确认连接的SMTP服务器是否为真实的mail.ourserver.de,攻击者可通过中间人攻击拦截邮件流量,窃取账号密码或邮件内容。
  • 使用限制:只能在排查问题的短时间内临时启用,绝对不能用于生产环境。

正确解决方案步骤

  1. 为mail.ourserver.de安装可信CA颁发的SSL证书
    • 推荐用Let's Encrypt的certbot工具快速获取免费证书,配置到你的邮件服务器(如Postfix/Dovecot)中。
  2. 验证邮件服务器SSL证书有效性
    • 在Linux服务器执行命令:openssl s_client -connect mail.ourserver.de:465,检查输出中是否包含Verify return code: 0 (ok),确认证书已被系统信任。
  3. 恢复原始.env配置,移除verify_peer=false参数:
    MAILER_URL=smtp://user:pass@mail.ourserver.de??encryption=ssl&auth_mode=login
    
  4. 清除Shopware缓存,确保配置生效:
    bin/console cache:clear
    

内容的提问来源于stack exchange,提问作者Amir Dora.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:05:21