Postfix (SMTP)

ΠΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ°Π½ΡƒΠ°Π» Ρƒ digital ocean

Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Π‘Ρ‚Π°Π²ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹:
# yum -y install postfix cyrus-sasl-plain mailx


# ДобавляСм Π² /etc/postfix/canonical ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚Ρƒ:
/.+/ noreply@example.com


ДобавляСм Π² /etc/postfix/mailpasswd Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Ρ€Π΅Π»Π΅ΠΉ-хостов:
[mx.example.com] SMTP_USER@example.com:SMTP_PASSWORD


ДобавляСм Π² /etc/postfix/sender_relay привязку Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΊ внСшним слуТбам:
@example.com [mx.example.com]

ДобавляСм Π±Π»ΠΎΠΊ Π² /etc/postfix/main.cf:
relayhost = [mx.example.com]
 
# Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
smtp_sasl_auth_enable = yes
# Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранится Π±Π°Π·Π° связок Π»ΠΎΠ³ΠΈΠ½/ΠΏΠ°Ρ€ΠΎΠ»ΡŒ
smtp_sasl_password_maps = hash:/etc/postfix/mailpasswd
 
# ΠžΠΏΡ†ΠΈΠΈ SASL. noanonymous ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π·Π°ΠΏΡ€Π΅Ρ‚ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
smtp_sasl_security_options = noanonymous
# Π—Π°Π΄Π°Π΅Ρ‚ ΠΏΠ»Π°Π³ΠΈΠ½ SASL для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
smtp_sasl_type = cyrus
# ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΠ΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ пароля
smtp_sasl_mechanism_filter = login
 
# Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π·Π°Π²ΠΈΡΡΡ‰ΡƒΡŽ ΠΎΡ‚ отправитСля Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ SMTP-соСдинСния
smtp_sender_dependent_authentication = yes
# Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° список адрСсов ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… сСрвСров, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ письма Π½Π° эти адрСса
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
# ДобавляСт для Π΄ΠΎΠΌΠ΅Π½Π° ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚Ρƒ
sender_canonical_maps = hash:/etc/postfix/canonical
 
# ДобавляСт ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΏΠΎΡ‡Ρ‚Ρ‹ Π°Π΄ΠΌΠΈΠ½Ρƒ Π½Π° внСшний ящик
smtp_generic_maps = hash:/etc/postfix/generic
# Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈ TLS для SMTP
smtp_use_tls = yes

Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ sendmail_path Π² /etc/php.ini:
sendmail_path = /usr/sbin/sendmail -t -i -f noreply@example.com

Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ индСксированныС Ρ„Π°ΠΉΠ»Ρ‹:
postmap /etc/postfix/generic
postmap /etc/postfix/canonical
postmap /etc/postfix/mailpasswd
postmap /etc/postfix/sender_relay

ДобавляСм Π² Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈ запускаСм сСрвис:
service php-fpm restart
systemctl enable postfix
systemctl start postfix
 
# ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°
echo "Test message" | mail -s "Test subject" -a "From: Test <noreply@example.com>" test@example.com

Last updated