c# – 使用System.Net.Mail通过Exchange Online(Office 365)发送SMTP电子邮件

我们正在测试新的Office 365测试版,我在Exchange Online服务有一个邮件帐户。现在我试图连接一个LOB应用程序,可以从我的测试帐户发送smtp电子邮件。

但是,Exchange 365平台需要在端口587上使用TLS加密,并且System.Net.Mail的“功能”不允许隐式SSL加密。

有人设法让C#通过这个平台发送邮件?

我有以下基本代码,应该发送邮件 – 任何建议将不胜感激。

SmtpClient server = new SmtpClient("ServerAddress");
server.Port = 587;
server.EnableSsl = true;
server.Credentials = new System.Net.NetworkCredential("username@mydomain.com", "password");
server.Timeout = 5000;
server.UseDefaultCredentials = false;

MailMessage mail = new MailMessage();
mail.From = new MailAddress("recipent@anyaddress");
mail.To.Add("username@mydomain.com");
mail.Subject = "test out message sending";
mail.Body = "this is my message body";
mail.IsBodyHtml = true;

server.Send(mail);
最佳答案
修正了上面工作代码中的一些错别字:

MailMessage msg = new MailMessage();
msg.To.Add(new MailAddress("someone@somedomain.com", "SomeOne"));
msg.From = new MailAddress("you@yourdomain.com", "You");
msg.Subject = "This is a Test Mail";
msg.Body = "This is a test message using Exchange OnLine";
msg.IsBodyHtml = true;

SmtpClient client = new SmtpClient();
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("your user name", "your password");
client.Port = 587; // You can use Port 25 if 587 is blocked (mine is!)
client.Host = "smtp.office365.com";
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
try
{
    client.Send(msg);
    lblText.Text = "Message Sent Succesfully";
}
catch (Exception ex)
{
    lblText.Text = ex.ToString();
}

我有两个Web应用程序使用上述代码,都可以正常工作没有任何麻烦。

转载注明原文:c# – 使用System.Net.Mail通过Exchange Online(Office 365)发送SMTP电子邮件 - 代码日志