Установка и настройка postfix в качестве relay для biz.mail.ru в gentoo linux

Материал из AlexNook
Перейти к навигацииПерейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

Потребовалась мне тут отправка писем с сервера. Выбор пал на postfix. Сперва планировалось превратить свой домашний сервер с внешним ip и доменом в почтовый сервак, но потом решил отказаться от этой идеи и использовать профессиональный почтовый сервер от mail.ru с привязанным своим доменом.

Как настроить DNS и привязать свой домен к mail.ru я писать не буду, эта информация есть в сети на сайте mail.ru. Тут рассмотрю вариант установки postfix и его настройки.

Сперва ставим postfix

emerge -v postfix

В USE флаги добавляем следующие (/etc/portage/package.use/postfix):

Use Flags: eai lmdb sasl ssl -berkdb -cdb -pam -dovecot-sasl (?)


Остальные флаги были выключены по-умолчанию

Warning: для хранения настроек я использовал lmdb в качестве key,value хранилища. Важно, что нужно будет вместо стандартного hash указать lmdb в файле конфигурации напротив путей в до хранилищ

Что было поправлено в части указания типа key,value хранилища

File: /etc/postfix/main.cf
alias_database = lmdb:/etc/mail/aliases
sender_canonical_maps = lmdb:/etc/postfix/canonical
sender_dependent_relayhost_maps = lmdb:/etc/postfix/sender_relay
smtp_generic_maps = lmdb:/etc/postfix/generic
smtp_sasl_password_maps = lmdb:/etc/postfix/mailpasswd


После установки необходимо поправить файл конфигурации /etc/postfix/main.cf. Файл подробно документирован, и в сети подробной информации по его параметрам полно. Вывести только параметры, поправленные в файле можно командой:

postconf -n

При этом у меня получилось следующее содержимое:

File: /etc/postfix/main.cf
alias_database = lmdb:/etc/mail/aliases
command_directory = /usr/sbin
compatibility_level = 3.8
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
home_mailbox = .maildir/
html_directory = no
inet_protocols = ipv4
mail_owner = postfix
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
meta_directory = /etc/postfix
mydomain = donik.org
myhostname = donik.org
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
sample_directory = /etc/postfix
sender_canonical_maps = lmdb:/etc/postfix/canonical
sender_dependent_relayhost_maps = lmdb:/etc/postfix/sender_relay
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
shlib_directory = /usr/lib64/postfix/${mail_version}
smtp_generic_maps = lmdb:/etc/postfix/generic
smtp_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = login
smtp_sasl_password_maps = lmdb:/etc/postfix/mailpasswd
smtp_sasl_security_options = noanonymous
smtp_sasl_type = cyrus
smtp_sender_dependent_authentication = yes
smtp_tls_security_level = encrypt
smtp_tls_wrappermode = yes
smtp_use_tls = yes
unknown_local_recipient_reject_code = 550


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

newaliases

Затем создаём файлик с паролями для доступа к почте /etc/postfix/mailpasswd

А ещё нужно поправить (если нет, то создать) следующие файлики:

  • /etc/postfix/sender_relay
  • /etc/postfix/canonical
  • /etc/postfix/generic

С содержимым

File: /etc/postfix/mailpasswd
[smtp.mail.ru]:465 alex@donik.org:PAROL


File: /etc/postfix/sender_relay
alex@donik.org [smtp.mail.ru]:465
@donik.org [smtp.mail.ru]:465



File: /etc/postfix/canonical
root@donik.org alex@donik.org
@donik.org alex@donik.org



File: /etc/postfix/generic
root@localhost alex@donik.org


После чего требуется из этих конфигов создать файлики ф формате LMDB на основе тех конфигов, что мы поправили. Именно из *.lmdb файлов postfix будет брать данные.

Note: Используется формат ket,value СУБД LMDB, т.к. именно с её поддержкой мы поставили postfix
postmap /etc/postfix/mailpasswd
postmap /etc/postfix/sender_relay
postmap /etc/postfix/canonical
postmap /etc/postfix/generic


Note: Не забываем на файлы mailpasswd, sender_relay, canonical и generic дать права 600

Стартуем postfix

/etc/init.d/postfix start

Отправку письма можно протестировать командой

(echo "Subject:Hi"; echo "Body contents";) | sendmail addr@mail.ru

Проконтролировать процесс отправки можно в логе:

tail -n 20 /var/log/mail.info


Для просмотра очереди отправляемых сообщений нужно ввести:

mailq

Очистить очередь

postsuper -d ALL


Ссылки