Firebase Trigger Email处理异常:SSL版本错误及端口问题
解决Firebase触发邮件配置的两个SMTP错误
一、端口587的ssl3_get_record: wrong version number错误
你的SMTP URI协议与端口不匹配是核心问题:
- 587是STARTTLS端口,需使用
smtp://协议(连接后自动升级TLS加密),而smtps://仅适用于465这类直接SSL加密的端口。 - 修正后的URI应为:
smtp://{email}@smtp.office365.com:587 - 关键注意:若Office365账号开启了MFA,不能用普通密码,必须生成并使用应用专用密码填入URI,格式为:
smtp://{email}:{应用密码}@smtp.office365.com:587
二、端口465的缺失'delivery'字段错误
该错误与SMTP端口无关,是Firebase Trigger Email的邮件请求格式问题:
- 确保在Firebase Firestore或Realtime Database中写入的邮件文档包含完整的
delivery字段结构,示例格式:
{ "to": "recipient@example.com", "message": { "subject": "测试邮件", "text": "这是测试内容" }, "delivery": { "service": "smtp", "smtp": { "host": "smtp.office365.com", "port": 465, "auth": { "user": "{email}", "pass": "{应用密码}" } } } }
- 若通过扩展全局配置SMTP,需检查Firebase控制台中该扩展的配置项,确认所有必填参数(SMTP服务器、端口、账号、密码)均正确填写,避免依赖文档
delivery字段时出现缺失。
额外检查项
- 确认Office365账号允许SMTP访问:登录Outlook网页版,进入「设置→邮件→POP和IMAP」,确保SMTP服务已启用。
- 查看Firebase函数日志详情,排查是否存在密码错误、账号访问限制等底层认证问题。
内容的提问来源于stack exchange,提问作者Pyper
相关产品推荐
相关产品推荐

