Настройка доставки электронной почты приложения между разработкой, тестированием и производством - PullRequest
0 голосов
/ 12 декабря 2011

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

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

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

1 Ответ

3 голосов
/ 12 декабря 2011

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

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

...