отправлять письма асинхронно от c#
Я пытаюсь отправить почтовую почту асинхронно с c#, но там нет ошибки, а также нет отправки электронной почты на данный почтовый идентификатор. Вот что я использую код :-
В этом коде, когда я отправляю простую почту, она работает нормально.
public void SendMailAccro(int SlNo, string EmailId, string Body) { MailMessage mail = new MailMessage(); mail.From = new MailAddress("_____________", "___________", System.Text.Encoding.UTF8); mail.To.Add(EmailId); mail.Subject = "VOTING DETAILS"; mail.Body = Body; mail.Priority = MailPriority.Normal; mail.ReplyTo = new MailAddress("___________", "___________", System.Text.Encoding.UTF8); slno = SlNo; mail.IsBodyHtml = true; SmtpClient smtp = new SmtpClient(); smtp.Host = "__________________"; //smtp.EnableSsl = true; System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential(); NetworkCred.UserName = "_______"; NetworkCred.Password = "_______"; //smtp.UseDefaultCredentials = true; smtp.Credentials = NetworkCred; smtp.Port = "___" Object state = mail; smtp.SendCompleted += new SendCompletedEventHandler(smtpClient_SendCompleted); try { smtp.SendAsync(mail, "Name"); } catch (SmtpException ex) { Console.WriteLine(ex.Message); } finally { mail.Dispose(); } } void smtpClient_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e) { MailMessage mail = e.UserState as MailMessage; if (!e.Cancelled && e.Error != null) { //message.Text = "Mail sent successfully"; } }
Pascal-78
Пытались ли вы избавиться от почтового объекта только в событии SendCompleted ? (или не утилизировал его)
вы можете выйти из функции SendAsync и избавиться от почтового объекта до того, как он будет использоваться smtp-объектом.