Send SMTP email testing Microsoft Office 365 in .net
c#, exchange-server, office365, system.net.mail
Solution
this works for me ( edited from source )
ThreadPool.QueueUserWorkItem(t =>
{
SmtpClient client = new SmtpClient("smtp.office365.com",587);
client.EnableSsl = true;
client.Credentials = new System.Net.NetworkCredential("xxx@yyy.com", "password");
MailAddress from = new MailAddress("xxx@yyy.com", String.Empty, System.Text.Encoding.UTF8);
MailAddress to = new MailAddress("xxx@yyy.com");
MailMessage message = new MailMessage(from, to);
message.Body = "The message I want to send.";
message.BodyEncoding = System.Text.Encoding.UTF8;
message.Subject = "The subject of the email";
message.SubjectEncoding = System.Text.Encoding.UTF8;
// Set the method that is called back when the send operation ends.
client.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);
// The userState can be any object that allows your callback
// method to identify this send operation.
// For this example, I am passing the message itself
client.SendAsync(message, message);
});
private static void SendCompletedCallback(object sender, AsyncCompletedEventArgs e)
{
// Get the message we sent
MailMessage msg = (MailMessage)e.UserState;
if (e.Cancelled)
{
// prompt user with "send cancelled" message
}
if (e.Error != null)
{
// prompt user with error message
}
else
{
// prompt user with message sent!
// as we have the message object we can also display who the message
// was sent to etc
}
// finally dispose of the message
if (msg != null)
msg.Dispose();
}
Problem
i have a mail account on the Exchange Online service. Now i'm trying to test if i am able to send mails to customers ( on varoius domains and on Microsoft Office 365) through c# application I tried implementing the below code but i am getting the error "The remote certificate is invalid according to the validation procedure." ``` MailMessage mail = null; mail = new MailMessage(); string[] strToList = "abc@gmail.com" foreach (string strID in strToList) { if (strID != null) { mail.To.Add(new MailAddress(strID)); } } mail.From = "demo@onmicrosoft.com"; mail.Subject = "testing" mail.IsBodyHtml = true; mail.Body = "mail body"; SmtpClient client = new SmtpClient("smtp.outlook.office365.com"); client.Port = 587; client.EnableSsl = true; client.UseDefaultCredentials = false; NetworkCredential cred = new System.Net.NetworkCredential("demo@onmicrosoft.com", "mypassword"); client.Credentials = cred; client.Send(mail); ``` Please advice if i am doing anything wrong. Thanks a lot in advance.