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

部署于Azure的Java应用邮件发送功能失效,寻求技术解决方案

解决方案:Java应用部署Azure后谷歌邮件发送异常

核心排查方向及修复步骤

  • 使用谷歌应用专用密码替代原账号密码
    开启两步验证后,谷歌不再允许使用账号原密码通过第三方应用登录SMTP服务,必须生成应用专用密码:

    1. 登录谷歌账号的安全设置页面
    2. 找到「应用专用密码」选项(需已开启两步验证)
    3. 为你的Java邮件应用生成一个16位的专用密码
    4. 将代码或配置文件中的邮箱密码替换为这个专用密码
  • 检查Azure网络出站规则
    Azure默认可能限制SMTP端口的出站流量:

    1. 进入Azure门户,找到你的应用服务/虚拟机对应的网络安全组(NSG)
    2. 确认出站规则中允许TCP端口587(TLS加密)或465(SSL加密)的流量
    3. 若使用应用服务,还需检查「配置>网络>出站流量」是否开启了必要的端口权限
  • 验证邮件客户端配置正确性
    确保代码中的SMTP配置符合谷歌要求:

    // 正确的谷歌SMTP配置示例
    Properties props = new Properties();
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true"); // 必须启用TLS
    

    注意:不要使用端口25,谷歌已不再支持未加密的25端口,且Azure默认封禁25端口出站。

  • 解锁谷歌账号的可疑登录
    谷歌可能会将Azure/虚拟机的IP判定为陌生登录环境,触发安全拦截:

    1. 登录谷歌账号的「最近活动」页面
    2. 查看是否有来自Azure区域的登录被标记为可疑
    3. 点击「这是我」解锁该登录请求,允许后续的SMTP连接
  • 切换至OAuth2认证(推荐长期方案)
    应用专用密码是临时方案,长期建议使用谷歌OAuth2认证:

    1. 在谷歌云控制台创建OAuth2客户端ID(选择Web应用/服务账号类型,适配服务器环境)
    2. 配置Java邮件客户端使用OAuth2认证,替代密码登录
    3. 为客户端ID授予Gmail API的发送权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 00:46:04