Содержание
Возникла необходимость отправки почты с домашнего ПК или с сервера за NAТ для системных оповещений или других нужд? Значит эта статья для вас!
Установка необходимых пакетов
sudo apt-get install postfix mailx
Создание конфига
Заменяем содержимое /etc/postfix/main.cf
relayhost = smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/private/sasl_passwd smtp_sasl_security_options = noanonymous smtp_sasl_type = cyrus smtp_sasl_mechanism_filter = login smtp_sender_dependent_authentication = yes sender_dependent_relayhost_maps = hash:/etc/postfix/private/sender_relay sender_canonical_maps = hash:/etc/postfix/private/canonical
Создаем папку /etc/postfix/private
sudo mkdir /etc/postfix/private
Создаем файлы для Postfix lookup tables
/etc/postfix/private/canonical
@yandex.ru user@yandex.ru
/etc/postfix/private/sender_relay
@yandex.ru smtp.yandex.ru
/etc/postfix/private/sasl_passwd
[smtp.yandex.ru] user@yandex.ru:********
Создаем Postfix lookup tables
sudo postmap /etc/postfix/private/*
Перезапускаем сервис
sudo service postfix restart
Отправляем почту
Все, можно проверять работу с помощью, например, mutt Отправим тестовое сообщение на наш e-mail
echo "test" | mail -s "test" nash@e-mail.ru
Чтобы добавить вложение используйте ключ -a
echo "test" | mail -s "test" nash@e-mail.ru -A file
Возможные проблемы
Если что-то не получается, смотрим логи /var/log/mail.log
Заблокирован порт 25 на стороне провайдера
Столкнулся с такой проблемой:
Nov 3 11:21:22 spektr-pbx postfix/smtp[6821]: connect to mx.yandex.ru[213.180.204.89]:25: No route to host Nov 3 11:21:23 spektr-pbx postfix/smtp[6822]: connect to mx.yandex.ru[213.180.204.89]:25: No route to host Nov 3 11:21:24 spektr-pbx postfix/smtp[6822]: connect to mx.yandex.ru[87.250.250.89]:25: No route to host Nov 3 11:21:24 spektr-pbx postfix/smtp[6822]: connect to mx.yandex.ru[2a02:6b8::89]:25: Network is unreachable Nov 3 11:21:25 spektr-pbx postfix/smtp[6821]: connect to mx.yandex.ru[77.88.21.89]:25: No route to host Nov 3 11:21:25 spektr-pbx postfix/smtp[6821]: connect to mx.yandex.ru[2a02:6b8::89]:25: Network is unreachable Nov 3 11:21:26 spektr-pbx postfix/smtp[6821]: connect to mx.yandex.ru[213.180.193.89]:25: No route to host Nov 3 11:21:27 spektr-pbx postfix/smtp[6822]: connect to mx.yandex.ru[213.180.193.89]:25: No route to host Nov 3 11:21:28 spektr-pbx postfix/smtp[6822]: connect to mx.yandex.ru[93.158.134.89]:25: No route to host
Хотя ping до ресурсов проходит, т.е. заблокирован только 25 порт, причем часто его блокирует провайдер, дабы от клиентов спам не валил в Интернет. Убедиться, что порт заблокирован можно следующим образом
telnet mx.yandex.ru 25
Если видите следующее, значит порт заблокирован
Trying 213.180.193.89... Trying 213.180.204.89... Trying 77.88.21.89... Trying 93.158.134.89... Trying 87.250.250.89... Trying 2a02:6b8::89... telnet: Unable to connect to remote host: Network is unreachable
В ином случае подключение пройдет. Чтобы отключиться нужно нажать Ctrl+] и дать команду quit.