Как установить SMTP-клиент в POSTAL MVC, а не в WEB.Config
У меня проблема при использовании POSTAL MVC в моем проекте. Моя компания, предоставляющая услуги хостинга, требует от меня установки конфигурации клиента smtp в коде, а не в веб-конфигурации.
Как это сделать?
Я надеюсь, что кто-то может дать мне решение
Спасибо.
1 ответ
У меня такая же проблема. Там нет ни ссылки на официальную почтовую документацию, ни инструкции. Итак, вот один:
- Создайте экземпляр SmtpClient с пользовательской конфигурацией
- Создайте экземпляр Postal.EmailService, используя конструктор, который принимает 2 аргумента (ViewEngineCollection, Func "SmtpClient")
- Теперь вы можете отправить электронное письмо, используя пользовательскую конфигурацию SmtpClient, вызвав emailService.
Вот полный пример кода:
dynamic email = new Email("Example");
email.To = "webninja@example.com";
email.FunnyLink = DB.GetRandomLolcatLink();
SmtpClient client = new SmtpClient("mail.domain.com");
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("user@domain.pt", "somepassword");
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Port = 25;
client.EnableSsl = false;
Postal.EmailService emailService = new Postal.EmailService(new ViewEngineCollection(), () => client);
emailService.Send(email);
Добавить к ответу Рафаэля. Если вы используете
Postal.EmailService emailService = new Postal.EmailService(new ViewEngineCollection(), () => client);
вы можете получить эту ошибку: Email view not found for [name for he email template]. Locations searched
так как new Postal.EmailService(new ViewEngineCollection(), () => client)
создает emailService с пустым механизмом просмотра. ИспользоватьViewEngines.Engines
на месте new ViewEngineCollection()
(как предложил @Houssam Hamdan в комментарии выше), чтобы использовать механизм просмотра бритвы.
Полная линия:
Postal.EmailService emailService = new Postal.EmailService(ViewEngines.Engines, () => client);