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

Flutter mailer包连接自定义SMTP服务器发信失败如何解决

问题原因

两个异常均由SMTP加密模式与端口不匹配导致:

  • 587端口触发WRONG_VERSION_NUMBER握手错误:587端口对应STARTTLS加密模式,连接建立初期为明文交互,后续才升级TLS加密,你当前代码给587端口设置ssl: true,要求连接初始就直接TLS握手,协议不匹配直接报错。
  • 465端口提示发送成功但收不到邮件:465为隐式SSL/TLS端口,ssl: true配置本身符合端口要求,收不到信属于发信链路后续的拦截、配置类问题,和握手错误无关。
修复步骤

修正587端口配置

587端口必须关闭初始SSL连接参数,mailer包会自动完成STARTTLS加密升级,替换原SmtpServer初始化代码如下:

final smtpServer = SmtpServer(
  'mail.yourcloudweb.com',
  port: 587,
  ignoreBadCertificate: false,
  ssl: false, // 587端口必填false,走STARTTLS流程
  username: username,
  password: password
);

修改后重新运行,587端口的TLS握手错误会直接消失,正常返回sendReport即代表发信请求已成功提交到邮件服务器。

排查465端口发信丢件问题

如果使用465端口(保持ssl: true配置)仍出现提示成功但收不到信的情况,按以下顺序排查:

  • 登录邮箱网页端,检查发件箱是否存在对应邮件,确认邮件是否真的从服务商系统发出
  • 核对收件人邮箱地址是否存在拼写错误
  • 联系邮件服务商确认账号是否存在发信权限限制、域名SPF/DKIM解析是否配置正确,这类问题会导致邮件被服务器静默拦截,或被收件方网关直接丢弃(不会进入垃圾邮件文件夹)
  • 先将收件人更换为同域名下的其他邮箱测试,排除外域发信的拦截规则影响

内容的提问来源于stack exchange,提问作者Sheets

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 23:24:24