Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> почтовые системы —> Backup MX

Настройка fetchmail для сбора писем с резервного почтового сервера

Автор: nk.


Возникла необходимость использования резервного почтового сервера, до этого наш почтовик стоял у прова, а теперь когда поднят свой было принято решение использования почтовика прова как резервного, ну мало ли там канал ляжет, или сам серв загнется, должна же куда то почта идти в это время:)
Итак:
1. Есть сервер провайдера (Доступ только по SMTP и POP3)
2. Свой сервер. Любая связка из описанных уважаемым lissyara
У меня стоит exim и courier-imap
Первое что нам надо, так это настроить нормально DNS записи в нашем домене:

@ 	MX 	20 	backupmx.mydomain.su
@ 	MX 	10 	mx.mydomain.su
backupmx 	A 	IP Сервера прова
mx 	        A 	IP Основного сервера

Далее, когда с DNS покончено, ставим и настраиваем fetchmail
cd /usr/ports/
make search name='fetchmail'

Port:   fetchmail-6.3.7
Path:   /usr/ports/mail/fetchmail
Info:   Batch mail retrieval utility for IMAP/POP3/ETRN/ODMR
Maint:  barner@FreeBSD.org
B-deps: gettext-0.14.5_2 gmake-3.81_1 libiconv-1.9.2_2
R-deps: ca-roots-1.2 gettext-0.14.5_2 libiconv-1.9.2_2
WWW:    http://fetchmail.berlios.de/

cd /usr/ports/mail/fetchmail
make config

Из опций поставил только NLS, далее
make && make install && make clean

Затем прописываем в автозапуск:
echo 'exim_enable="YES"' >> /etc/rc.conf
cd /usr/local/etc/rc.d/
cp fetchmail fetchmail.sh

Затем идём редактировать конфиг:
cd /usr/local/etc/
vi или mcedit fetchmailrc

и поехали вписывать свои ящики:
#Общие настройки
defaults        protocol pop3,
                timeout 60,
                nokeep,          # удалять почту на сервере после получения
                fetchall

#Пользователь 1
#Забираем почту с pop.yourprov.su через локальный интерфейс fxp1 по протоколу pop3
poll "pop.yourprov.su" interface fxp1/10.10.10.2 proto pop3
#Имя пользователя для доступа к почтовому ящику
user "user@yourdomain.su"
#Пароль от ящика user@yourdomain.su
password PaSsWoRd
# Адрес на локальном сервере
is user@domain.su here;

#Пользователь 2
poll "pop.yourprov.su" interface fxp1/10.10.10.2 proto pop3
user "user2@yourdomain.su"
password PaSsWoRd
is user2@domain.su here;

Всё! Далее запускаем fetchmail и радуемся:
cd /usr/local/etc/rc.d/
./fetchmail.sh start
Starting fetchmail.

Теперь можете наблюдать за работой посмотрев log:
tail -f /var/log/maillog

Также можно сделать отдельный лог для fetchmail добавив в fetchmailrc строчку:
set logfile=/var/log/yourlogfile

и собсна создав его
touch /var/log/yourlogfile

Но при этом следует отключить логирование через syslog:
cd /usr/local/etc/rc.d/
vi или mcedit fetchmail.sh

и ставим комент # перед строкой fetchmail_logging_facility

P.S. при такой настройке fetchmail забирает почту у вашего прова и передаёт её локальному MTA по протоколу smtp через localhost, что даже даёт некие преимущества, такие как фильтрация спама в получаемых от провайдера письмах и проверка на вирусы.



размещено: 2007-04-11,
последнее обновление: 2007-04-11,
автор: nk


universite, 2007-04-11 в 19:12:06

cp fetchmail fetchmail.sh  - это совершенно излишне, пора отучиваться от старых привычек.

В этой статье описывается сбор только с двух ящиков на удаленном сервере. А представьте, что есть почтовый домен с несколькими сотнями почтовыми записями, вы их собираетесь вручную прописывать?
Год назад я на опеннете оставлял совет, как забирать почту с резервного  почтовика.
http://www.opennet.ru/tips/info/955.shtml
Пожалуйста, обработайте и дополните Вашу статью.

nk, 2007-04-16 в 12:58:09

>cp fetchmail fetchmail.sh  - это совершенно излишне, >пора отучиваться от старых привычек.
Ну незнаю насколько старых, но некоторые порты ДО СИХ ПОР без этого не стартуют, проверено на личном опыте.

По поводу fetchmail:
Тоесть ты предлагаешь сделать на резервном серваке один ящик на весь домен, а потом забирать и разгребать?
Возможно это и удобно, но я стараюсь настроить всё как можно чётче и сократить тем самым способы прохода спама, тем более что ящики у нас не меняются и их не сотни

anonymous, 2007-04-17 в 15:57:05

По моему для этих целей правильнее ETRN использовать.
Или чтобы провайдерский mta сам периодически стучался на primary mta

nk, 2007-04-17 в 16:05:00

Ну да, тока пров хрен что делать будет, а у нас доступа нет:)

Charon, 2007-05-31 в 15:10:41

почему это пров ниче делать не будет? Лично я делал скрипт на питоне, который при старте тазика посылал ЕТРН на серв провайдера, и всё нормально доходило.
Приведенное решение, несомненно, интересно, но тут же надо указать все логины и пароли пользователей! Один раз настроить еще куда ни шло, но поддерживать такую систему мне было бы лениво.
Если не устраивает ЕТРН, то лучше скидывать всю почту на один ящик у провайдера, отпарсить, а при старте своего сервера сгрести оттуда всю почту и послать на вход почтовика с указанием правильного адресата в конверте.

torki, 2007-11-14 в 0:35:12

Прикольно! Работает, вот только почему-то fetchmail при старте захотел chmod 710 на fetchmailrc, А почему?

mouze47, 2007-12-25 в 11:40:20

У меня так же все реализованно. Но тока у меня почему то spamassassin эта почта не обрабатываеться. Если кто может подсказать где настроить, кинте идею в форуме вопрос есть.

Роман, 2010-02-12 в 7:09:17

А вот как вы заставите провайдерский mta принимать по чту для узеров которых у него нет?

morfair, 2012-04-03 в 2:35:24

Да, и если использовать imap, то помечает письма как прочитанные, что не всегда хорошо.



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0411 секунд
Из них PHP: 23%; SQL: 77%; Число SQL-запросов: 77 шт.
Исходный размер: 25985; Сжатая: 6868