Установка и настройка postfix в качестве relay для biz.mail.ru в gentoo linux: различия между версиями
ALEX (обсуждение | вклад) |
ALEX (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 8: | Строка 8: | ||
В '''USE''' флаги добавляем следующие ('''/etc/portage/package.use/postfix'''): | В '''USE''' флаги добавляем следующие ('''/etc/portage/package.use/postfix'''): | ||
{{Keyword|mail | {{USEFlag|extended=yes| | ||
{{EnableFlag|eai}} | |||
{{EnableFlag|lmdb}} | |||
{{EnableFlag|sasl}} | |||
{{EnableFlag|ssl}} | |||
{{DisableFlag|berkdb}} | |||
{{DisableFlag|cdb}} | |||
{{DisableFlag|pam}} | |||
{{DisableFlag|dovecot-sasl}}}} | |||
{{Keyword|Остальные флаги были выключены по-умолчанию}} | |||
{{warning|для хранения настроек я использовал lmdb в качестве key,value хранилища. Важно, что нужно будет вместо стандартного hash указать lmdb в файле конфигурации напротив путей в до хранилищ}} | |||
'''Что было поправлено в части указания типа key,value хранилища''' | |||
{{File|/etc/postfix/main.cf| | |||
<syntaxhighlight lang="bash" line start="1" line="GESHI_FANCY_LINE_NUMBERS" enclose="div" highlight="4"> | |||
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 | |||
</syntaxhighlight> | |||
}} | |||
Строка 21: | Строка 44: | ||
<syntaxhighlight lang="bash" line start="1" line="GESHI_FANCY_LINE_NUMBERS" enclose="div" highlight="4"> | <syntaxhighlight lang="bash" line start="1" line="GESHI_FANCY_LINE_NUMBERS" enclose="div" highlight="4"> | ||
alias_database = | alias_database = lmdb:/etc/mail/aliases | ||
command_directory = /usr/sbin | command_directory = /usr/sbin | ||
compatibility_level = | compatibility_level = 3.8 | ||
daemon_directory = /usr/libexec/postfix | daemon_directory = /usr/libexec/postfix | ||
data_directory = /var/lib/postfix | data_directory = /var/lib/postfix | ||
debug_peer_level = 2 | 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 | debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 | ||
home_mailbox = .maildir/ | home_mailbox = .maildir/ | ||
html_directory = no | html_directory = no | ||
inet_protocols = ipv4 | inet_protocols = ipv4 | ||
mail_owner = postfix | mail_owner = postfix | ||
Строка 39: | Строка 58: | ||
manpage_directory = /usr/share/man | manpage_directory = /usr/share/man | ||
meta_directory = /etc/postfix | meta_directory = /etc/postfix | ||
mydomain = donik.org | mydomain = donik.org | ||
myhostname = donik.org | myhostname = donik.org | ||
newaliases_path = /usr/bin/newaliases | newaliases_path = /usr/bin/newaliases | ||
queue_directory = /var/spool/postfix | queue_directory = /var/spool/postfix | ||
readme_directory = no | readme_directory = no | ||
sample_directory = /etc/postfix | sample_directory = /etc/postfix | ||
sender_canonical_maps = | sender_canonical_maps = lmdb:/etc/postfix/canonical | ||
sender_dependent_relayhost_maps = | sender_dependent_relayhost_maps = lmdb:/etc/postfix/sender_relay | ||
sendmail_path = /usr/sbin/sendmail | sendmail_path = /usr/sbin/sendmail | ||
setgid_group = postdrop | setgid_group = postdrop | ||
shlib_directory = /usr/lib64/postfix/${mail_version} | shlib_directory = /usr/lib64/postfix/${mail_version} | ||
smtp_generic_maps = | smtp_generic_maps = lmdb:/etc/postfix/generic | ||
smtp_sasl_auth_enable = yes | smtp_sasl_auth_enable = yes | ||
smtp_sasl_mechanism_filter = login | smtp_sasl_mechanism_filter = login | ||
smtp_sasl_password_maps = | smtp_sasl_password_maps = lmdb:/etc/postfix/mailpasswd | ||
smtp_sasl_security_options = noanonymous | smtp_sasl_security_options = noanonymous | ||
smtp_sasl_type = cyrus | smtp_sasl_type = cyrus | ||
Строка 64: | Строка 79: | ||
smtp_tls_wrappermode = yes | smtp_tls_wrappermode = yes | ||
smtp_use_tls = yes | smtp_use_tls = yes | ||
unknown_local_recipient_reject_code = 550 | unknown_local_recipient_reject_code = 550 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
Строка 119: | Строка 134: | ||
После чего требуется из этих конфигов создать файлики с | После чего требуется из этих конфигов создать файлики ф формате LMDB на основе тех конфигов, что мы поправили. Именно из *.lmdb файлов postfix будет брать данные. | ||
{{note|Используется формат ket,value СУБД LMDB, т.к. именно с её поддержкой мы поставили postfix}} | |||
{{root|postmap /etc/postfix/mailpasswd}} | {{root|postmap /etc/postfix/mailpasswd}} | ||
{{root|postmap /etc/postfix/sender_relay}} | {{root|postmap /etc/postfix/sender_relay}} | ||
{{root|postmap /etc/postfix/canonical}} | {{root|postmap /etc/postfix/canonical}} | ||
{{root|postmap /etc/postfix/generic}} | {{root|postmap /etc/postfix/generic}} | ||
{{note|Не забываем на файлы mailpasswd, sender_relay, canonical и generic дать права 600}} | {{note|Не забываем на файлы mailpasswd, sender_relay, canonical и generic дать права 600}} |
Текущая версия на 11:20, 31 октября 2023
Потребовалась мне тут отправка писем с сервера. Выбор пал на 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
Отправку письма можно протестировать командой
Проконтролировать процесс отправки можно в логе:
Для просмотра очереди отправляемых сообщений нужно ввести:
Очистить очередь