Как установить SMTP-клиент в POSTAL MVC, а не в WEB.Config

У меня проблема при использовании POSTAL MVC в моем проекте. Моя компания, предоставляющая услуги хостинга, требует от меня установки конфигурации клиента smtp в коде, а не в веб-конфигурации.

Как это сделать?

Я надеюсь, что кто-то может дать мне решение

Спасибо.

1 ответ

Решение

У меня такая же проблема. Там нет ни ссылки на официальную почтовую документацию, ни инструкции. Итак, вот один:

  1. Создайте экземпляр SmtpClient с пользовательской конфигурацией
  2. Создайте экземпляр Postal.EmailService, используя конструктор, который принимает 2 аргумента (ViewEngineCollection, Func "SmtpClient")
  3. Теперь вы можете отправить электронное письмо, используя пользовательскую конфигурацию 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);
Другие вопросы по тегам