Настройка доставки электронной почты приложения между разработкой, тестированием и производством

У меня есть приложение ASP.NET 2, которое отправляет электронное письмо определенным пользователям, чтобы уведомить их об определенных событиях. Приложение использует класс System.Net.Mail.SmtpClient для создания электронного письма и его отправки.

При разработке и тестировании приложения я хотел бы убедиться, что мы не отправляем электронные письма на рабочие адреса электронной почты. Я бы хотел избежать ветвления в коде приложения (например, с использованием директив компилятора и конфигураций сборки), поскольку это означает, что не все пути кода могут быть протестированы, пока мы не развернем приложение в производственной среде. В идеале я бы хотел настроить разрабатываемое приложение для использования хоста SMTP-сервера разработки, который принимает всю электронную почту и отправляет ее на определенный адрес независимо от адреса, на который ему было поручено отправить. Возможно ли это при использовании Windows XP / IIS 5?

Какие еще подходы можно было бы использовать в этом сценарии.


person Tom Hunter    schedule 12.12.2011    source источник


Ответы (1)


Один из подходов - это похоже на тест флага или что-то в этом роде, так что в соответствии с настройками, например, в web.config, вы отправляете электронное письмо на тестовое электронное письмо, назначенное вами.

Но, на мой взгляд, это небольшая хитрость, альтернативным и более рекомендуемым решением было бы установить DeliveryMethod на SmtpDeliveryMethod.SpecifiedPickupDirectory в web.config и указать каталог для вашего сообщения должны быть сохранены, поэтому вместо фактической отправки электронной почты вы просто создаете ее и помещаете в папку, чтобы вы могли ее проверить. Таким образом, у вас может быть один web.config для тестирования, а другой - для производственной среды, для которого DeliveryMethod установлен как Сеть со всеми производственными настройками smtp.

person thiagoleite    schedule 12.12.2011