如何使用 Gmail SMTP 服务器在 C# 中发送邮件? [复制]
Posted
技术标签:
【中文标题】如何使用 Gmail SMTP 服务器在 C# 中发送邮件? [复制]【英文标题】:How to mail in C# with the Gmail SMTP server? [duplicate] 【发布时间】:2011-05-17 20:41:45 【问题描述】:可能重复:Sending email through Gmail SMTP server with C#
对于使用 C# 发送邮件和使用 Gmail SMTP 服务器,我们应该做些什么棘手的事情?因为经过大量搜索后,我找到了一些方法来做到这一点,但结果却出现了失败异常。我想这是因为我不处理 Gmail 的 TSL(因为它适用于 TSL),但我不知道如何使用 C# 处理 TSL 来执行此操作。我非常感谢任何帮助或指向有用示例的链接。这是我的代码:
public string SendMail(string senderMail, string receiverMail, string attachmentPath)
var fromMailAddress = new MailAddress(senderMail);
var toMailAddress = new MailAddress(receiverMail);
MailMessage mailMessage = new MailMessage(fromMailAddress, toMailAddress);
mailMessage.Subject = "My Subject";
mailMessage.Body = "This is the body of this message for testing purposes";
Attachment attachFile = new Attachment(attachmentPath);
mailMessage.Attachments.Add(attachFile);
SmtpClient emailClient = new SmtpClient();
NetworkCredential credential = new NetworkCredential();
credential.UserName = fromMailAddress.User;
credential.Password = "password";
emailClient.Credentials = credential;
emailClient.Port = 587;
emailClient.Host = "smtp.gmail.com";
//emailClient.EnableSsl = true; //Here should be for TSL, but how?
emailClient.Send(mailMessage);
【问题讨论】:
欢迎来到 SO!这是一个很好的问题,并且您附上了正确的代码。但是,之前有人问过类似的问题,请参阅上面的链接。可能是您遇到了特殊异常;在这种情况下,如果您发布异常的确切消息,人们可以更好地帮助您。 你用了三遍“TSL”这个词,但我不知道那是什么。您是说“TLS”吗? 感谢您的指导,是的,我的意思是 TLS:D 这是我的新愚蠢键盘,它让我犯了这些错误,或者我可能是盲人之类的:D。再次感谢您的指导,我真的很感激。 【参考方案1】:您应该告诉异常消息。 但是,是的,取消注释 emailClient.EnableSsl = true; 如果仍然无法正常工作,则可能是您的防火墙或路由器阻止了这些端口。
【讨论】:
【参考方案2】:试试下面的代码。这是我长期使用的工作代码。
// Configure mail client (may need additional
// code for authenticated SMTP servers).
SmtpClient mailClient = new SmtpClient("smtp.gmail.com", 587);
// Set the network credentials.
mailClient.Credentials = new NetworkCredential("YourGmailEmail@gmail.com", "YourGmailPassword");
//Enable SSL.
mailClient.EnableSsl = true;
// Create the mail message (from, to, subject, body).
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("zain.you2@gmail.com");
mailMessage.To.Add(to);
mailMessage.Subject = subject;
mailMessage.Body = body;
mailMessage.IsBodyhtml = isBodyHtml;
mailMessage.Priority = mailPriority;
// Send the mail.
mailClient.Send(mailMessage);
参考:Sending Email using a Gmail Account。
【讨论】:
非常感谢,它运行良好。我几乎想安装 IIS 和手动 SMTP 来处理这个问题,但现在我可以完美地使用 GMail,非常感谢。以上是关于如何使用 Gmail SMTP 服务器在 C# 中发送邮件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章