我有一个标准的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);
Run Code Online (Sandbox Code Playgroud)
到达Send方法时,抛出异常,指出:
"SMTP服务器需要安全连接或客户端未经过身份验证.服务器响应为:5.5.1需要身份验证."
如何通过Google通过自定义域发送电子邮件?
谢谢!
我一直在努力寻找这个问题,到目前为止一直在悲惨地失败.我最近的尝试是从这个堆栈代码中解除的: 通过带有C#的Gmail SMTP服务器发送电子邮件,但我已经尝试了我可以在堆栈和其他地方找到的所有语法.我的代码目前是:
var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("me@gmail.com", "mypass"),
EnableSsl = true
};
client.Send("me@gmail.com","me@gmail.com","Test", "test message");
Run Code Online (Sandbox Code Playgroud)
运行该代码给我一个立即异常"发送邮件失败",其中包含"无法连接到远程服务器"的内容.
如果我将端口更改为465(如gmail文档建议的那样),我每次都会超时.
我已经读过465不是一个好用的端口,所以我想知道这笔交易是什么让我无法连接.我的用户和通行证是对的.我已经读过我必须在我的Gmail帐户上设置POP服务,所以我这样做了.徒劳无功.
我原本试图让我的品牌GMail帐户工作,但遇到同样的问题,我认为我/我的常规Gmail帐户将更容易...到目前为止,情况并非如此.