新しい Office 365 ベータ版をテストしており、Exchange Online サービスにメール アカウントを持っています。現在、テスト アカウントから SMTP メールを送信できる LOB アプリケーションを接続しようとしています。
ただし、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("[email protected]", "password");
server.Timeout = 5000;
server.UseDefaultCredentials = false;
MailMessage mail = new MailMessage();
mail.From = new MailAddress("recipent@anyaddress");
mail.To.Add("[email protected]");
mail.Subject = "test out message sending";
mail.Body = "this is my message body";
mail.IsBodyHtml = true;
server.Send(mail);
ベストアンサー1
上記の動作コード内のいくつかのタイプミスを修正しました:
MailMessage msg = new MailMessage();
msg.To.Add(new MailAddress("[email protected]", "SomeOne"));
msg.From = new MailAddress("[email protected]", "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 アプリケーションが 2 つありますが、どちらも問題なく正常に動作します。