Як перенаправити весь вихідний електронний лист з поштового коду на одну адресу для тестування


13

Я налаштовую тестувальний сервер для веб-програми, яка надсилає деякі повідомлення електронною поштою.

Іноді тестування проводиться з реальними даними клієнтів, і саме тому мені потрібно гарантувати, що сервер не зможе надсилати електронні листи нашим реальним клієнтам, поки ми тестуємо.

Мені потрібно налаштувати постфікс так, щоб він приймав будь-яку вихідну електронну пошту та перенаправляв її на одну адресу електронної пошти, а не доставку до реального місця призначення.

Я запускаю сервер Ubuntu 9.10.

Заздалегідь спасибі

Відповіді:


19

Налаштуйте місцевого користувача для отримання всієї захопленої пошти:

adduser mailtrap

Вам потрібно додати в main.cf:

transport_maps = hash:/etc/postfix/transport
luser_relay = mailtrap

Потім створіть / etc / postfix / транспорт із цим:

localhost :
your.hostname.example.com:
* local:mailtrap

Збережіть потім запуск: postmap /etc/postfix/transportнарешті перезапустіть постфіксinvoke-rc.d postfix restart

Вся електронна пошта буде доставлена ​​нормально, а зовнішня електронна пошта буде доставлена ​​на локальний mailtrapрахунок.


Це саме те, що я шукав ... дякую!
thatjuan

3
Роботи для мене , але тільки після того як я додав luser_relay = xxxxxв main.cf. Без цього електронні листи будуть відскакувати.
Alex R

1
Під час використання Ubuntu ви також можете перезапустити Postfix за допомогою sudo service postfix restart. Місце згаданого вище вашого файлу main.cf є /etc/postfix/main.cf. Під час першого встановлення та налаштування Postfix ви можете скористатися Local onlyопцією встановлення.
mtnorthrop

на MAC вам слід бігти postmap hash:/etc/postfix/transportі sudo postfix stop,sudo postfix start
Bang Dao

це чудово. хтось знає, як усунути дублікати, коли повідомлення має декілька одержувачів?
сірий

10

Краще створити віртуальний файл псевдоніма:

У /etc/postfix/main.cf:

virtual_alias_maps = pcre:/etc/postfix/virtual

В / etc / postfix / virtual:

/.*@.*/ root

Ви можете замінити rootтого, кому користувач хотів би отримати всі вихідні електронні листи. Цю модель можна змінити, якщо ви хочете, щоб локальна пошта нормально доставлялася (без перенаправлення):

/.*@(?!hostname\.localdomain$).*/ root

Тут знайдено оригінальну ідею: сервер розробки Postfix - перехоплення всієї вихідної пошти


2
Зауважте, що вам може знадобитися sudo apt-get install postfix-pcreзаздалегідь, щоб уникнути ... сюрпризів.
mirabilos

працює для мене дуже добре!
michael-mammut

помилка "Користувач невідомий у віртуальній псевдонімі таблиці"
Alex R

5

Postfix надає щось, що називається smtp-sink. За замовчуванням він обробляє весь електронний лист, який він отримує. Пізніші версії також можна налаштувати для захоплення електронної пошти у файли.

Це технічно не використовує постфікс (але утиліту, яку надає postfix.) Також технічно не перенаправляє кожен електронний лист на одну адресу електронної пошти. Але він захоплює весь трафік на порт 25 і скидає цей файл, який можна розібрати.


Як можна викликати smtp-раковину? Одна сторінка, яку я знайшов в Інтернеті, зробила це схожим на звичайну програму, але якщо вона поставляється з постфіксом, вона не встановлена ​​в моїй системі (OSX 10.6). Як би я запустив цю послугу?
Кріс Блум

Є сторінка для smtp-мийки. Але тут також описані деякі параметри: blog.malowa.de/2011/04/postfix-as-spam-trap-server.html
mailq
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.