无法使用G Suit帐户通过smtp发送电子邮件。

时间:2018-01-17 11:26:32

标签: c# asp.net-mvc email smtp gmail

这个问题可能被标记为重复但事实并非如此。因为代码在使用以 @ gmail.com 结尾的普通Gmail帐户时成功发送电子邮件。只有在使用自定义且以 @ yourdomainname.com 结尾的G套装帐户时才会出现此问题。

我正在使用此代码发送电子邮件。我的帐户有两步验证,因此我创建了一个应用密码进行验证并使用它来发送电子邮件。

using (var mm = new MailMessage(PrivateSettings.SenderEmail, message.Destination))
        {
            mm.Subject = message.Subject;
            mm.Body = message.Body;
            mm.IsBodyHtml = true;
            var smtp = new SmtpClient
            {
                Host = "smtp.gmail.com",
                EnableSsl = true
            };
            var networkCred = new NetworkCredential(PrivateSettings.SenderEmail, PrivateSettings.EmailPassword);
            smtp.UseDefaultCredentials = true;
            smtp.Credentials = networkCred;                
            smtp.Port = 587;                
            smtp.Send(mm);       
        }

以上代码在我使用普通的Gmail帐户时成功发送电子邮件,即se.natnael.zeleke@gmail.com。

但是当我使用我的G Suit帐户之一 connect@tatarri.com 时,发送电子邮件失败并显示此错误消息。

enter image description here

所以我的问题是;是G suit gmail帐户的附加配置。

其他信息。

我配置了两个电子邮件帐户以使用应用密码。 connect@tatarri.com也在我的G套装帐户中注册为管理员。

这两个电子邮件帐户都在设置中启用了IMAP。

我从namecheap购买了tatarri.com域名。

谢谢。

1 个答案:

答案 0 :(得分:0)

该行:

smtp.UseDefaultCredentials = true;

告诉SMTP客户端使用当前登录用户的默认凭据。这是您将用于客户端应用程序的内容。

在您的情况下,您要指定除当前用户以外的凭据,因此请将其设置为false

smtp.UseDefaultCredentials = false;