Русские документы
Ежедневные компьютерные новости RSS rusdoc.ru  Найти :
• Новости
• Последние поступления
• Книжный магазин
  Hardware:
• Видеоустройства
• Системные платы
• Процессоры
• Мобильные устройства
• Аудиосистема
• Охлаждение системы
• Накопители информации
• КПК и ноутбуки
• Телефоны и связь
• Периферия
• Система
• Сети
• Разные устройства
 
  Programming:
• Web-разработка
• Языки программирования
• Технологии и теория
• Разработка игр
• Программная инженерия
 
  Software:
• Операционные системы
• Windows 7
• Базы данных
• Обзоры программ
• Графика и дизайн
   
  Life:
• Компьютерная жизнь
• Разные материалы
   
• Партнеры
• Публикация
• Правовая информация
• Реклама на сайте
• Обратная связь
• Экспорт в RSS Экспорт в RSS2.0
    Читать в Яндекс.Ленте



Настройка почты для отладки mail-функций разрабатываемых приложений на Ubuntu.

Раздел: Software / Linux @ 03.04.2008 | Ключевые слова: postfix программирование Ubuntu MTA версия для печати

Источник: habrahabr

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

Для того, чтобы работала отправка почты из PHP и всего остального, нужен MTA. Я пользуюсь Synaptic для установки большинства программ, и в нём Postfix отмечен логотипом Ubuntu (что означает, что он является MTA по умолчанию), поэтому, без долгих раздумий, поставил Postfix. При установке с помощью синаптика вылезает окошко конфигурирования Postfix, я выбрал выриант localhost only.

Когда дошёл до момента тестирования одной функции в PHP приложении, связанной с отправкой почты, случился курьёз. Тестирую с копией живой базы, и, после отправки письма, оно, естественно, было отправлено MTA по назначению, от чего уже отвык под Windows, где использовал Courier Mail Server (кстати, очень маленький и удобный). Конечно, сразу извинился перед человеком, которому ушло письмо.

В связи с чем возник вопрос: как настроить почту, чтобы она не уходила за пределы localhost, либо уходила на определённый локальный ящик ?

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

Настраивается это так:
В файл /etc/postfix/main.cf добавляется строчка
header_checks = regexp:/etc/postfix/header_checks
создаётся файл /etc/postfix/header_checks, в него добавляется такая строчка:
/^Received:/ HOLD
после чего выполняется команда
postmap /etc/postfix/header_checks
а postfix "освежается" командой
postfix reload
Как только изменения приняты постфиксом, вся входящая почта будет попадать в очередь hold, и никуда отправляться не будет.

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

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

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

pfqueue следует запускать так:
pfqueue -q 4
параметр q задаёт номер очереди, у очереди hold номер 4.

+ заголовки сохраняются без изменений
- pfqueue не показывает тело сообщения (по крайней мере, у меня, сообщение в 1251)

Второй метод - пересылать всю почту на локальный ящик. Почту с локального ящика удобно просматривать, настроив почтовый клиент (который обычно всегда работает) на POP3 localhost.

Делается это так:
с помощью синаптика (или apt-get, кому как удобно) устанавливается POP3 демон dovecot (чтобы работал POP3)
в файл /etc/postfix/header_checks добавляется строчка
/^Received:/ REDIRECT your_login@localhost
(если у вас уже есть строчка с HOLD, нужно её закомментировать, поставив в начале строчки #). Выполняются команды
postmap /etc/postfix/header_checks
postfix reload

Почтовый клиент настраивается на POP3 localhost с логином и паролем учётной записи, которая указана в REDIRECT.

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

+ удобно смотреть почту
- затираются заголовки To:, они заменяются на адрес в REDIRECT.

Итак, у каждого варианта есть свои преимущества и недостатки (как и у всего в этой жизни). Хорошо, что можно поменять вариант обработки в любой момент. Если есть какой-то более удобный способ перехвата всей почты в Ubuntu, буду рад узнать о нём в комментариях :-)

Это интересно:








версия для печатиРаспечатать статью


Вернуться в раздел: Software / Linux


Реклама:
Читать наc на:

Add to Google
Читать в Яндекс.Ленте






Rambler's Top100
© Copyright 1998-2012 Александр Томов. All rights reserved.