Postfix: различия между версиями

Материал из ALT Linux Wiki
м (вообще у нас вместо подсветки shell-синтаксиса обычно {{cmd}} или просто <pre> применяется...)
Нет описания правки
 
Строка 1: Строка 1:
Отправка e-mail уведомлений с альт сервер 8.2 через внешние почтовые серверы (в примере gmail)
Отправка e-mail уведомлений с ОС Альт (в примере [[P10|p10]]) через внешние почтовые серверы (в примере gmail).


Установим нужные пакеты:
Установить нужные пакеты:
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
# apt-get install libsasl2-3 postfix-tls postfix-cyrus
# apt-get install libsasl2-3 postfix-tls postfix-cyrus
</syntaxhighlight>
</syntaxhighlight>
создадим файл с логином паролем:
Создать файл с логином/паролем {{path|/etc/postfix/sasl_passwd}}:
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
# vim /etc/postfix/sasl_passwd
# vim /etc/postfix/sasl_passwd
smtp.gmail.com вашемейл@gmail.com:вашпароль
smtp.gmail.com вашемейл@gmail.com:вашпароль
</syntaxhighlight>
</syntaxhighlight>
Создайте базу данных из файла паролей:
 
{{Note|Если учётная запись в google подключена с двухфакторной аутентификацией, то в этом случае необходимо в настройках аккаунта google сгенерировать 16-значный «Пароль приложения» (App Passwords), и указать его (без пробелов) в файле {{path|/etc/postfix/sasl_passwd}} вместо пароля аккаунта. Иначе в логах, при отправке сообщений, будет ошибка: '''SASL authentication failed; server smtp.gmail.com'''.}}
 
Создать базу данных из файла паролей:
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
# postmap hash:/etc/postfix/sasl_passwd
# postmap hash:/etc/postfix/sasl_passwd
</syntaxhighlight>
</syntaxhighlight>
Ограничим права на файл
Ограничить права на файл:
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
# chmod 600 /etc/postfix/sasl_passwd
# chmod 600 /etc/postfix/sasl_passwd
</syntaxhighlight>
</syntaxhighlight>
Поправим конфиг файл
Поправить файл конфигурации postfix:
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
# vim /etc/postfix/main.cf
# vim /etc/postfix/main.cf
Строка 33: Строка 36:
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
smtp_tls_session_cache_timeout = 3600s
smtp_tls_session_cache_timeout = 3600s
compatibility_level = 3.6
</syntaxhighlight>
</syntaxhighlight>
 
Добавить симлинк (иначе в логах ошибка '''fatal: SASL library initialization'''):
добавим симлинк иначе в логах ошибка fatal: SASL library initialization
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
# ln -s /usr/lib64/sasl2-3 /etc/postfix/sasl
# ln -s /usr/lib64/sasl2-3 /etc/postfix/sasl
</syntaxhighlight>
</syntaxhighlight>
Запустить postfix:
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
# postfix reload
# systemctl start postfix
</syntaxhighlight>
</syntaxhighlight>
проверяем
Проверяем:
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
# echo "test message" | mail -s "test subject22" вашемейл@gmail.com
# echo "Тело сообщения" | mail -s "Заголовок сообщения" вашемейл@gmail.com
</syntaxhighlight>
</syntaxhighlight>
[[Категория: Почта]]

Текущая версия от 16:52, 22 апреля 2022

Отправка e-mail уведомлений с ОС Альт (в примере p10) через внешние почтовые серверы (в примере gmail).

Установить нужные пакеты:

# apt-get install libsasl2-3 postfix-tls postfix-cyrus

Создать файл с логином/паролем /etc/postfix/sasl_passwd:

# vim /etc/postfix/sasl_passwd
smtp.gmail.com вашемейл@gmail.com:вашпароль
Примечание: Если учётная запись в google подключена с двухфакторной аутентификацией, то в этом случае необходимо в настройках аккаунта google сгенерировать 16-значный «Пароль приложения» (App Passwords), и указать его (без пробелов) в файле /etc/postfix/sasl_passwd вместо пароля аккаунта. Иначе в логах, при отправке сообщений, будет ошибка: SASL authentication failed; server smtp.gmail.com.


Создать базу данных из файла паролей:

# postmap hash:/etc/postfix/sasl_passwd

Ограничить права на файл:

# chmod 600 /etc/postfix/sasl_passwd

Поправить файл конфигурации postfix:

# vim /etc/postfix/main.cf
mailbox_command = /usr/bin/procmail -a $DOMAIN -d $LOGNAME
inet_protocols = ipv4
relayhost = smtp.gmail.com:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
smtp_tls_session_cache_timeout = 3600s
compatibility_level = 3.6

Добавить симлинк (иначе в логах ошибка fatal: SASL library initialization):

# ln -s /usr/lib64/sasl2-3 /etc/postfix/sasl

Запустить postfix:

# systemctl start postfix

Проверяем:

# echo "Тело сообщения" | mail -s "Заголовок сообщения" вашемейл@gmail.com