Назад | Перейти на главную страницу

Могу ли я запретить sendmail отправлять электронные письма и вместо этого сохранять их в файл?

Я хочу протестировать приложение информационного бюллетеня на фиктивном сервере, но я не хочу, чтобы все клиенты в моей БД (сброшенные с живого сервера) получали электронное письмо. Есть ли способ запретить sendmail действительно отправлять эти письма и вместо этого сохранять их в файл или что-то подобное?

Вы можете сделать что-то вроде этого:

LOCAL_CONFIG
# File that contains recipients usernames that interest us in this test
F{Users} -o /etc/mail/users-to-test
# File that contains recipients domains that interest us in this test
F{Domains} -o /etc/mail/domains-to-test

LOCAL_RULE_2
R $={Users} < @ $={Domains} . >      $#discard $: discard

/ etc / mail / users-to-test содержит имена пользователей, которые мы не хотим, чтобы они получали электронную почту с тестового сервера. Это дополнение к набору правил 2 отбрасывает всю направляемую им электронную почту, и предполагается, что вышеуказанный набор правил применяется к sendmail, работающему на вашем тестовом компьютере, а не на производственном сервере.

PS: вкладки отделяют левую от правой части правил. табуляции, а не пробелы, поэтому не копируйте и не вставляйте.

Мы делаем это, используя несколько экземпляров sendmail (каждый из которых прослушивает свой виртуальный интерфейс) на выделенном SMTP-сервере, на котором также работает cyrus IMAP-сервер. У нас есть несколько экземпляров, потому что у нас будет несколько наборов разработчиков / тестеров, пробующих разные вещи.

В mc-файле sendmail ...

FEATURE(`mailertable', `hash -o /etc/mail/mroute2-mailertable.db')dnl

В файле mailertable (поля разделены табуляцией, важен порядок строк) ...

mailtest.ncl.ac.uk smtp:mailtest.ncl.ac.uk
.         local:paul

В этом примере сообщения для пользователей в домене mailtest.ncl.ac.uk доставляются нормально, а все остальное доставляется в локальный почтовый ящик Пола. Если вы хотите, чтобы все сообщения хранились в локальном почтовом ящике, тогда всего одна строка формы

.    local:paul

должен это сделать.

Если у вас есть Windows, есть простой файл .EXE, который вы можете запустить - установка не требуется.

http://smtp4dev.codeplex.com/

Совместимый с Windows 7 / Vista / XP / 2003/2010 фиктивный SMTP-сервер. Сидит в системном трее и не доставляет полученные сообщения. Полученные сообщения можно быстро просмотреть, сохранить и проверить источник / структуру. Полезно для тестирования / отладки программного обеспечения, генерирующего электронную почту.

Мы используем его в наших системах разработки, и он отлично работает.