Установка и настройка Postfix'а прошла на много быстрее и приятней чем sendmail. Рекомендую использовать этот MTA, в случае возникновения проблем с настройкой sendmail. Прошу присылать исправления и ошибки, с которыми вы столкнулись при установке и настройке postfix'а на ваш локальный сервер.

Установка postfix

sudo apt-get install postfix ca-certificates

В доступных режимах работы выбрать «Internet Site» и название хоста «localhost» или используйте имя вашей машинки (у меня, например e5530).

Для удаления postfix выполните:

sudo apt-get remove purge postfix

Настройка postfix

Настройка MTA postfix

Правим конфигурационный файл MTA Postfix, который расположен по пути /etc/postfix/mail.cf:

# название хоста, такое же как указали в первичной настройке
myhostname = e5530
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = e5530, localhost.localdomain, localhost
relayhost = [smtp.gmail.com]:587
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 10000
recipient_delimiter = +
inet_interfaces = all

# этот конфиг нужно добавить
smtp_destination_rate_delay = 60
relay_destination_rate_delay = 60
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
smtp_sasl_security_options = noanonymous
transport_maps = hash:/etc/postfix/transport
smtp_generic_maps = hash:/etc/postfix/generic
smtp_tls_CAfile = /etc/postfix/cacert.pem

# строка включения TLC должна идти после его настроек
smtp_use_tls = yes
Создаём файл /etc/postfix/transport:
* smtp:[smtp.gmail.com]:587
Создаём файл паролей /etc/postfix/sasl_password:
[smtp.gmail.com]:587 This email address is being protected from spambots. You need JavaScript enabled to view it.:YOU_PASSWORD
Создаём файл /etc/postfix/generic
root@e5530 This email address is being protected from spambots. You need JavaScript enabled to view it.
Установим права на созданные файлы конфигурации:
cd /etc/postfix/
chmod 400 generic transport sasl_password
Создаем ссылку на на корневой сертификат Gmail:
ln -s /etc/ssl/certs/Equifax_Secure_CA.pem /etc/postfix/cacert.pem
Создаем хеши файлов:
cd /etc/postfix/
postmap generic main.cf transport sasl_password
И выполним перезапуск демона postfix:
sudo /etc/init.d/postfix restart

Настройка PHP

Настройка /etc/php5/apache2/php.ini:

sendmail_path = /usr/sbin/sendmail -t -i -f This email address is being protected from spambots. You need JavaScript enabled to view it.

Полезные команды и отладка

Для проверки postfix попробуйте отправить несколько сообщений из консоли. Как это делать я расписал в этой статье: «Отправка Email сообщений из консоли».

Посмотреть логи:

tail /var/log/mail.err
tail /var/log/mail.log

Очистить логи:

cat /dev/null > /var/log/mail.log
cat /dev/null > /var/log/mail.err

Уточняем кто слушает 25 порт:

sockstat | grep 25

Трафик монитор (так я определил что sendmail тоже стучался на 25 порт):

sudo jnettop -i wlan0

Трассировать маршрут пакетов:

traceroute -p 465 smtp.gmail.com

Проблемы и решения

Порядок настроек важен!

Ошибка: Must issue a STARTTLS command first указывает на то, что в конфиге postfix'а строка:

smtp_use_tls = yes

располагается после настройки TLC. Перенесите эту настройку выше настройки TLC.

Внимание!

При ошибке: postdrop: warning: unable to look up public/pickup: No such file or directory. Выполните команду:

mkfifo /var/spool/postfix/public/pickup
sudo /etc/init.d/postfix restart
Примечание

Если при установке postfix'а вы выбрали не «Internet Site» - для перенастройки нужно выполнить:

sudo dpkg-reconfigure postfix


 

   
© 2023 systemadmins.ru All Rights Reserved