Привет! Недавно купил новый ноутбук (старый уже совсем устарел).
Я на него установил 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
Как только изменения будут приняты постфиксом, вся входящая почта попадет в очередь удержания и никуда не будет отправлена.
Почту в этой очереди можно просмотреть несколькими способами:
- Любой просмотрщик текста, например, встроенный в mc. Все сообщения очереди расположены в каталоге /var/spool/postfix/hold в отдельных файлах, поэтому вы можете просмотреть любое сообщение.
- С помощью программы 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
-
5 Советов По Созданию Веб-Сайта
19 Oct, 24 -
Истерия
19 Oct, 24 -
Пошаговая Настройка Веб-Сервисов В Otrs 5
19 Oct, 24 -
Коллекция Инструментов Разработчика
19 Oct, 24