2009-06-26 5 views
1

Я программист окон. Обычно мы программируем функциональность в пользовательский элемент управления. И многие функции времени требуют отправки электронной почты.Блок отправки писем

Я хочу сделать что-то вроде: - если я установил флаг «Это приложение работает в режиме тестирования». Затем вся почта, отправленная из приложения (из любого пользовательского элемента управления), должна быть заблокирована .

Помните, что я не хочу вносить какие-либо изменения в существующие пользовательские элементы управления. или отправку писем lib. Я хочу, чтобы это выполнялось только в контейнере или, скорее, в файле Program.cs.

Благодаря

+0

Рассмотрите мое приложение как большой контейнер. Я хочу следить за тем, что происходит в нем, например, какая-то сентиментальная почта. Поэтому любое решение на уровне приложения, а не в электронной почте (уже написано) или на уровне управления является для меня долгожданным решением. Спасибо –

ответ

0

Те рода настройки должны идти в файле app.config, в этом случае адрес SMTP-сервера. затем просто измените это значение на пустую для тестовой среды, чтобы ваша почта никуда не шла.

+0

Я поддерживаю этот ответ, НО мое требование - заблокировать его другими способами. поскольку мы не используем адрес smtp, мы не используем SMTP-адрес в appconfig. Библиотека позаботится об этом. и я не контролирую его. поэтому хотел сделать это с моей стороны. –

4

Вы можете использовать Inversion of Control. Имеют, например. интерфейс IMailer, реализованный RealMailer и TestingMailer. RealMailer фактически отправит электронное письмо, в то время как TestingMailer будет тихо отправлять письма. Настройте конфигурацию Production, которая вводит RealMailer, и тестовую конфигурацию, которая вводит TestingMailer.

0

Если вы хотите отключить его для локальной отладки, вы можете это сделать.

#if DEBUG 
    CallMethod(); 
#endif 

В противном случае ответ Мэтью Флашен работает хорошо.

Смежные вопросы