我有一个标准的Google Apps帐户 . 我已通过Google Apps设置了自定义域名 . 当我使用Gmail界面时,我可以通过Google Apps成功发送和接收电子邮件 . 但是,我想通过代码发送电子邮件 . 为了尝试这个,我一直在尝试以下代码:
MailMessage mailMessage = new MailMessage();
mailMessage.To.Add("someone@somewhere.com");
mailMessage.Subject = "Test";
mailMessage.Body = "<html><body>This is a test</body></html>";
mailMessage.IsBodyHtml = true;
// Create the credentials to login to the gmail account associated with my custom domain
string sendEmailsFrom = "emailAddress@mydomain.com";
string sendEmailsFromPassword = "password";
NetworkCredential cred = new NetworkCredential(sendEmailsFrom, sendEmailsFromPassword);
SmtpClient mailClient = new SmtpClient("smtp.gmail.com", 587);
mailClient.EnableSsl = true;
mailClient.DeliveryMethod = SmtpDeliveryMethod.Network;
mailClient.UseDefaultCredentials = false;
mailClient.Timeout = 20000;
mailClient.Credentials = cred;
mailClient.Send(mailMessage);
到达Send方法时,抛出异常,指出:
“SMTP服务器需要安全连接或客户端未经过身份验证 . 服务器响应为:5.5.1需要身份验证 . ”
如何通过Google通过自定义域发送电子邮件?
谢谢!
5 回答
无需对代码中的所有smtp设置进行硬编码 . 把它们放在web.config中 . 这样,您可以根据需要加密这些设置,并在不重新编译应用程序的情况下即时更改它们 .
发送电子邮件时结束只需在SmtpClient上启用SSL:
确保您从与Gmail尝试进行身份验证的电子邮件地址发送电子邮件 .
注意:从.NET 4.0开始,您可以将enableSsl = "true"插入到web.config中,而不是在代码中设置它 .
这就是我在WPF 4中使用的内容
注意防火墙和反病毒 . 这些令人毛骨悚然的东西往往会阻止发送电子邮我使用McAfee Enterprise,我必须添加可执行文件名(如Bazar.exe和Bazar.vshost.exe的Bazar . *)才能发送电子邮件...
将端口更改为465
没有必要做任何事情 . 只需首次登录您当前的帐户并按照说明操作即可 .
你的问题会解决 . 之所以出现这种情况,是因为您在Google应用中创建了该帐户但未登录 . 只需登录并按照说明进行操作即可 .
我的代码在Port = 587上使用TLS连接到smtp.google.com(SSL应该是端口465),但仍然需要EnableSsl = true
请注意您的G SUITE帐户中的这些重要先决条件
确保您使用的用户名已清除首次登录时显示的CAPTCHA字验证测试 .
确保该帐户具有安全密码 - https://support.google.com/accounts/answer/32040
确保为所需帐户启用了安全性较低的应用程序 - https://support.google.com/a/answer/6260879