Установка и настройка postfix в качестве relay для biz.mail.ru в gentoo linux
Потребовалась мне тут отправка писем с сервера. Выбор пал на postfix. Сперва планировалось превратить свой домашний сервер с внешним ip и доменом в почтовый сервак, но потом решил отказаться от этой идеи и использовать профессиональный почтовый сервер от mail.ru с привязанным своим доменом.
Как настроить DNS и привязать свой домен к mail.ru я писать не буду, эта информация есть в сети на сайте mail.ru. Тут рассмотрю вариант установки postfix и его настройки.
Сперва ставим postfix
В USE флаги добавляем следующие (/etc/portage/package.use/postfix):
Use Flags: eai lmdb sasl ssl -berkdb -cdb -pam -dovecot-sasl (?)
Остальные флаги были выключены по-умолчанию
Что было поправлено в части указания типа key,value хранилища
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. Файл подробно документирован, и в сети подробной информации по его параметрам полно.
Вывести только параметры, поправленные в файле можно командой:
При этом у меня получилось следующее содержимое:
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. Для этого выполняем:
Затем создаём файлик с паролями для доступа к почте /etc/postfix/mailpasswd
А ещё нужно поправить (если нет, то создать) следующие файлики:
- /etc/postfix/sender_relay
- /etc/postfix/canonical
- /etc/postfix/generic
С содержимым
[smtp.mail.ru]:465 alex@donik.org:PAROL
alex@donik.org [smtp.mail.ru]:465
@donik.org [smtp.mail.ru]:465
root@donik.org alex@donik.org
@donik.org alex@donik.org
root@localhost alex@donik.org
После чего требуется из этих конфигов создать файлики ф формате LMDB на основе тех конфигов, что мы поправили. Именно из *.lmdb файлов postfix будет брать данные.
Стартуем postfix
Отправку письма можно протестировать командой
#!/bin/bash
timestamp=`date +%d.%m.%Y\ %H:%M:%S`
subject="Subject: E-mail title"
message="Please do somethig. Today is: $timestamp"
to="<recepient1@mail.com>;<recepient2@mail.com>"
from="From: John Doe<john@mail.com>"
#-----------------------------------------------------------
echo -e "${from}\n${subject}\n\n${message}" | sendmail $to
Проконтролировать процесс отправки можно в логе:
Для просмотра очереди отправляемых сообщений нужно ввести:
Очистить очередь