Настройка Почты Для Отладки Почтовых Функций Разрабатываемых Приложений На Ubuntu

Привет! Недавно купил новый ноутбук (старый уже совсем устарел).

Я на него установил Ubuntu (сначала описал, почему удалил другую ОС, но потом стер, чтобы не было флейма и холивара).

Чтобы отправка почты с PHP и все остальное работало, вам нужен MTA. Я использую Synaptic для установки большинства программ, и Postfix отмечен логотипом Ubuntu (это означает, что это MTA по умолчанию), поэтому я установил Postfix, не задумываясь.

При установке с помощью Synaptic появляется окно конфигурации Postfix, я выбрал вариант только localhost. Когда я дошел до тестирования одной функции PHP-приложения, связанной с отправкой почты, произошла забавная вещь.

Тестирую с копией живой базы, и после отправки письма оно естественно было отправлено МТА по назначению, к чему я уже отвык под виндой, где пользовался Курьерский почтовый сервер (кстати, очень маленький и удобный).

Разумеется, он сразу же извинился перед человеком, которому пришло письмо.

В связи с этим возник вопрос: как настроить почту, чтобы она не выходила за пределы локального хоста, или уходила на конкретный локальный ящик? Прервав работу сети, я понял, что самый простой вариант — перенаправить всю входящую почту в специальную очередь, которая называется Hold. Почта может оставаться в этой очереди сколько угодно долго; Он не потребляет никаких ресурсов, кроме дискового пространства.

Он настроен следующим образом: Строка добавляется в файл /etc/postfix/main.cf.

header_checks = regexp:/etc/postfix/header_checks

создается файл /etc/postfix/header_checks и в него добавляется следующая строка:

/^Received:/ HOLD

после чего команда выполняется

postmap /etc/postfix/header_checks

и постфикс «обновляется» командой

postfix reload

Как только изменения будут приняты постфиксом, вся входящая почта попадет в очередь удержания и никуда не будет отправлена.

Почту в этой очереди можно просмотреть несколькими способами:

  1. Любой просмотрщик текста, например, встроенный в mc. Все сообщения очереди расположены в каталоге /var/spool/postfix/hold в отдельных файлах, поэтому вы можете просмотреть любое сообщение.

  2. С помощью программы pfqueue (я ее устанавливал как синаптик).

pfqueue следует запускать следующим образом:

pfqueue -q 4

параметр q указывает номер очереди; очередь удержания имеет номер 4. + заголовки остаются неизменными - pfqueue не показывает тело сообщения (по крайней мере, для меня, сообщение по адресу 1251) Второй метод — пересылать всю почту в локальный почтовый ящик.

Просматривать почту из локального ящика удобно, настроив почтовый клиент (который обычно всегда работает) на локальном хосте POP3. Это делается так: с помощью Synaptic (или apt-get, как вам удобно) установите демон dovecot POP3 (чтобы POP3 работал) строка добавляется в файл /etc/postfix/header_checks

/^Received:/ REDIRECT your_login@localhost

(если у вас уже есть строка с HOLD, вам нужно ее закомментировать, поставив # в начале строки).

Команды выполняются

postmap /etc/postfix/header_checks postfix reload

Почтовый клиент настроен на локальном хосте POP3 с логином и паролем учетной записи, указанными в REDIRECT. После этого, если в клиенте настроена проверка почты через короткие промежутки времени, все сообщения, отправленные любой программой на компьютере, практически сразу появятся во входящих.

+ удобно просматривать почту - Заголовки To: удаляются и заменяются адресом в REDIRECT. Итак, у каждого варианта есть свои преимущества и недостатки (как и все в этой жизни).

Хорошо, что вы можете изменить вариант обработки в любое время.

Если есть какой-то более удобный способ перехватить всю почту в Ubuntu, буду рад услышать об этом в комментариях.

Теги: #программирование #настройка Linux #ubuntu #postfix

Вместе с данным постом часто просматривают: