Я пытаюсь отправить электронное письмо через MVC. Я специально говорю MVC, потому что тот же код (который довольно общий для Net.Mail
) работает в приложении Windows Forms, а не в MVC.
Я гуглил и пробовал разные настройки, но безуспешно. Я думаю, что это может быть проблема с MVC или какой-либо платформой, которую я использую.
SmtpClient smtp = new SmtpClient();
smtp.Port = Convert.ToInt16(ConfigurationManager.AppSettings["mailPort"]);
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["mailAccount"], ConfigurationManager.AppSettings["mailPassword"]);
smtp.Host = ConfigurationManager.AppSettings["mailHost"];
smtp.Timeout = (20 * 1000);
MailMessage mail = new MailMessage();
mail.IsBodyHtml = true;
mail.From = new System.Net.Mail.MailAddress(ConfigurationManager.AppSettings["mailAccount"]);
mail.To.Add(new MailAddress(item.Recipient));
mail.Subject = item.Subject;
mail.Body = item.Body;
smtp.Send(mail);
Все, что мне нужно, это способ отправки писем из MVC
Обновление: ошибка, которую я получаю:
[Обновление] Мои выводы:
На Thunderbird я использую порт 587 с STARTTLS.
Platform Port SSL Result
MVC 587 true Error
MVC 587 false got mail
MVC 465 true Time out
MVC 465 false Time out
WinForm 587 true got mail
WinForm 587 false got mail
WinForm 465 true Time out
WinForm 465 false Time out
Любые идеи
Не могу отправить почту из MVC не описывает проблему. Очень маловероятно, что произойдет тихий сбой, поэтому либо вы перехватываете и отбрасываете ошибку, либо код никогда не запускается, либо SMTP-сервер по какой-то причине не отправляет электронное письмо дальше.