Я разработал два метода: SendEmailBySmtp () и SendEmailAsyncBySmtp (), который использует SmtpClient.Send и SmtpClient.SendMailAsync соответственно.
В настоящее время первый метод работает, но второй - нет. Нет ошибки, но нет электронного письма.
Как я могу это исправить?
class Program
{
static void Main(string[] args)
{
SendEmailBySmtp();
SendEmailAsyncBySmtp();
}
static void SendEmailBySmtp()
{
MailMessage message = new MailMessage()
{
From = new MailAddress("test@example.com", "Test User"),
Subject = "Subject",
Body = "Body"
};
message.To.Add("test@example.com");
message.CC.Add("test@example.com");
message.BodyEncoding = UTF8Encoding.UTF8;
message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
using (SmtpClient client = new SmtpClient())
{
client.Port = 587;
client.Host = "smtp.office365.com";
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("test@example.com", "password");
client.Send(message);
}
}
static async Task SendEmailAsyncBySmtp()
{
MailMessage message = new MailMessage()
{
From = new MailAddress("test@example.com", "Test User"),
Subject = "Subject",
Body = "Body"
};
message.To.Add("test@example.com");
message.CC.Add("test@example.com");
message.BodyEncoding = UTF8Encoding.UTF8;
message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
using (SmtpClient client = new SmtpClient())
{
client.Port = 587;
client.Host = "smtp.office365.com";
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("test@example.com", "password");
await client.SendMailAsync(message);
}
}
}