Мы используем решение, аналогичное методу MailProxy, описанному tvanfosson. Однако у нас есть несколько отличий, которые, я чувствую, стоит упомянуть. Во-первых, мы просто расширяем класс SmtpClient и переопределяем методы Send в среде разработки или тестирования. Мы используем конфигурационный файл для определения среды. Затем мы используем этот класс в любое время, когда нам нужно отправить электронные письма. Этот класс определит, кто в данный момент вошел в приложение, и перенаправит все сгенерированные им электронные письма, при переходе на другой ресурс к стандартному списку получателей, если вошедший в систему пользователь по какой-либо причине недоступен. Это помогает, если у вас есть несколько человек, которые тестируют или разрабатывают, так как они будут получать только те письма, которые они сгенерировали. Мы также добавляем исходных получателей сообщения в тело сообщения. Это снова полезно при тестировании сообщений типа рабочего процесса, чтобы убедиться, что они отправляются нужным лицам. Наконец, я считаю полезным добавить тег [DEV] или [QA] к теме сообщения, чтобы я мог настроить правило в своем почтовом клиенте для обработки всех тестовых сообщений.