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

自定义邮箱通过Google SMTP发件失败,或需指定自定义发件人

解决Google自定义域名邮箱发件失败或Gmail代发显示自定义地址的问题

一、修复自定义域名Google账号(me@mydomain.com)发件失败的问题

针对535: 5.7.8 Username and Password not accepted错误,按以下步骤排查:

  • 确认应用专用密码的正确性
    必须在me@mydomain.com账号(已开启两步验证)下生成应用专用密码,生成时选择「邮件」类别,复制密码时确保完整无遗漏(注意密码中的空格是Google自动添加的,复制时要保留)。

  • 修正SMTP认证参数
    代码中smtp.Authenticate的用户名必须是me@mydomain.com,而非gmail账号,对应密码是该账号的应用专用密码,修改后的代码片段:

    smtp.Connect("smtp.gmail.com", 465, SecureSocketOptions.SslOnConnect);
    smtp.Authenticate("me@mydomain.com", "你的应用专用密码");
    
  • 尝试切换SMTP端口和加密方式
    如果465端口SSL连接失败,改用587端口加StartTls:

    smtp.Connect("smtp.gmail.com", 587, SecureSocketOptions.StartTls);
    
  • 检查账号安全拦截
    登录me@mydomain.com的Google账号,查看安全中心的登录通知,确认是否有Google拦截了此次SMTP登录请求,若有则点击「允许」并标记为可信设备。


二、用Gmail账号(me@gmail.com)发件但显示自定义域名地址

如果不想折腾自定义账号的配置,可以通过Gmail别名功能实现:

  1. 添加并验证自定义邮箱别名

    • 登录me@gmail.com的Gmail后台,进入「设置」→「账户和导入」
    • 点击「添加另一个电子邮件地址」,输入显示名称和me@mydomain.com
    • 选择「作为别名发送」,按照提示完成邮箱验证(Google会发验证邮件到me@mydomain.com,点击链接确认)
  2. 修改代码中的发件人地址
    保持SMTP认证参数为me@gmail.com和它的应用专用密码,仅修改email.From为自定义域名地址:

    var email = new MimeMessage();
    // 这里用自定义域名作为发件人
    email.From.Add(new MailboxAddress(_mailSettings.DisplayName, "me@mydomain.com"));
    email.To.Add(MailboxAddress.Parse(toEmail));
    email.Subject = subject;
    var builder = new BodyBuilder();
    builder.HtmlBody = body;
    email.Body = builder.ToMessageBody();
    using var smtp = new SmtpClient();
    smtp.Connect("smtp.gmail.com", 465, SecureSocketOptions.SslOnConnect);
    // 认证用gmail账号和它的应用密码
    smtp.Authenticate("me@gmail.com", "xxxx xxxx xxxx xxxx");
    await smtp.SendAsync(email);
    smtp.Disconnect(true);
    return "Email has been sent successfully.";
    

注意:如果未完成别名验证,Gmail会自动将发件人替换为me@gmail.com,务必确保验证步骤完成。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 06:03:40