Я использую Postal.MVC5 в моем проекте ASP MVC5. Изначально у меня была конфигурация smtp в web.config, так что этот кусок кода работал нормально и смог успешно отправлять электронную почту.
public async Task<ActionResult>SendEmail(EmployeeViewModel emailModel)
{
string _errorMessage;
emailModel.To = "john@outlook.com";
emailModel.Subject = "Test Subject";
emailModel.Message = "Test Message";
await emailModel.SendAsync();
return Json(new {ErrorMessage = _errorMessage});
}
Теперь мне нужно настроить Smtpclient во время выполнения и выполнить шаги, показанные в этом сообщении stackoverflow: Как установить SMTP-клиент в POSTAL MVC, а не в WEB.Config
public async Task<ActionResult>SendEmail(EmployeeEmailViewModel emailModel)
{
string _errorMessage;
emailModel.To = "john@outlook.com";
emailModel.Subject = "Test Subject";
emailModel.Message = "Test Message";
//new code
SmtpClient client = new SmtpClient("smtp.test.com");
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("secretId", "notSecretPassword");
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Port = 111;
client.EnableSsl = true;
Postal.EmailService emailService = new EmailService(new ViewEngineCollection(), () => client);
await emailService.SendAsync(emailModel);
return Json(new {ErrorMessage = _errorMessage});
}
Теперь этот код выдает ошибку примерно так:
System.Exception: представление электронной почты не найдено для EmployeeEmailViewModel. Места поиска:
at Postal.EmailViewRenderer.CreateView (String viewName, ControllerContext controllerContext)
at Postal.EmailViewRenderer.Render (электронная почта, строка viewName)
У меня есть представление EmployeeEmailViewModel в ~ / Views / Emails / EmployeeEmailViewModel.cshtml.
Любая идея, почему я получаю это сообщение об ошибке или как я могу решить его?
Спасибо
Санджив