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

Xamarin.Forms中邮件发送成功后Gmail无法接收问题求助

邮件发送后Gmail未收到的排查方案

问题背景

此前App使用以下代码发送邮件可正常运行,现在出现异常:App端显示邮件已发送,但目标Gmail账号(malitogroup061@gmail.com)无法收到邮件,代码无报错提示。

try
{
    MailMessage mail = new MailMessage();
    SmtpClient SmtpServer = new SmtpClient("outlook.live.com");

    mail.From = new MailAddress("requestsubscribe@outlook.com");
    mail.To.Add("malitogroup061@gmail.com");
    mail.Subject = subject;
    mail.Body = Helper.EmailBody.EmailBodyG(companyTypeString, item.CompanyName, item.NationalId, item.SharePercent, item.FullName, item.NationalCode
        , item.BirthdayDate, item.ActivityType, item.CellPhoneNumber, item.PhoneNumber, item.PostalCode, item.Address, request);

    SmtpServer.Port = 587;
    SmtpServer.Host = "outlook.live.com";
    SmtpServer.EnableSsl = true;
    SmtpServer.UseDefaultCredentials = false;
    SmtpServer.Credentials = new System.Net.NetworkCredential("requestsubscribe@outlook.com", "******");
    SmtpServer.SendMailAsync(mail);
    Navigation.PopPopupAsync();
    Toast.MakeText(Application.Context, "sending...", ToastLength.Short).Show();

}
catch (Exception)
{
    DisplayAlert("alert", "message", "ok");
}

排查步骤

  • 修复异步发送的异常捕获问题
    代码中使用SendMailAsync但未等待,异步操作的异常不会被外层try/catch捕获,导致实际发送失败但App无提示。修改代码:

    // 确保所在方法标记为async
    await SmtpServer.SendMailAsync(mail);
    

    这样才能捕获发送过程中的隐性错误,比如SMTP服务器的拒绝响应。

  • 检查发件方Outlook邮箱状态
    登录requestsubscribe@outlook.com,查看:

    • 已发送邮件:确认邮件是否真正被Outlook服务器接受
    • 垃圾邮件/退信文件夹:是否存在Gmail拒收后的退信通知,或者Outlook自身拦截了邮件
  • 检查目标Gmail的过滤规则
    登录malitogroup061@gmail.com:

    • 查看垃圾邮件文件夹,确认邮件是否被误判为垃圾
    • 进入设置→过滤器和屏蔽地址,检查是否有规则自动过滤该发件人的邮件
  • 验证Outlook SMTP账号权限

    • 如果账号开启了两步验证,必须使用应用密码代替原密码填写到NetworkCredential中,普通密码无法通过SMTP验证
    • 登录微软账号安全中心,确认是否有可疑登录记录,是否需要解锁SMTP登录权限
  • 测试邮件内容是否触发反垃圾机制
    临时替换邮件内容为简单文本(如"Test Email"),发送测试邮件。如果能收到,说明原邮件内容包含敏感词或格式问题,触发了Gmail的反垃圾规则。

  • 验证SMTP服务器配置
    建议将SMTP Host替换为微软官方推荐的smtp.office365.com(与outlook.live.com兼容,但稳定性更好),保持Port=587、EnableSsl=true的配置不变。可使用本地SMTP测试工具验证连接和发送是否正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 18:25:23