使用smtp.js调用Gmail SMTP发送邮件失败求助
Gmail SMTP.js 邮件发送失败排查方案
核心问题排查点
1. 发件人地址不匹配
Gmail SMTP严格要求From地址必须与登录的Username完全一致,你当前代码中用用户输入的邮箱作为发件人,这会被Gmail拦截。必须将From设置为你的Gmail账号:
From: "mygmail@gmail.com", // 与Username保持一致
2. 缺少SMTP端口与加密配置
Gmail SMTP需要指定端口和加密方式,默认配置不完整会导致连接失败,补充以下参数:
Port: 465, // 推荐使用SSL端口,也可选择587(TLS端口) SecureToken: true // 启用加密传输
3. 未捕获错误信息
你现在的代码只处理成功回调,完全看不到失败原因,必须添加错误捕获:
btn.addEventListener('click', ()=> { Email.send({ // 你的配置项 }).then(msg => alert("Email Sent")) .catch(err => { console.error("邮件发送失败:", err); alert("发送失败,请查看控制台信息"); }) })
打开浏览器开发者工具(F12)的控制台,就能看到具体错误提示,这是定位问题的关键。
4. 应用专用密码有效性
- 确认是在开启两步验证后生成的应用专用密码
- 专用密码为16位无空格字符,检查是否输入错误
- 生成时选择的应用类型为"邮件"或"其他(自定义名称)"
5. Gmail账户SMTP服务状态
登录你的Gmail账户,进入「设置」→「转发和POP/IMAP」,确保「IMAP访问」已开启(SMTP依赖此服务)。
重要安全提示
前端代码直接暴露Gmail账号和应用专用密码存在极高风险,任何人都能通过查看源码获取你的账户信息。建议改为后端处理邮件发送逻辑,前端仅提交表单数据到后端接口。
内容的提问来源于stack exchange,提问作者Rob Shepherd
相关产品推荐
相关产品推荐

