Предварительные действия

Для настройки пересылки вам необходима работающая учетная запись (имя пользователя и пароль) на другом почтовом сервере. В ниже представленном руководстве я использую  smtp.example.com как почтовый сервер, через который будет происходить пересылка. Аккаунт на этом сервер, через который будет происходить отправка, будет называться test@example.com. В моем руководстве, также рассматривается случай, когда удаленный почтовый сервер для пересылки работает по STARTTLS (или SSL). Используемая ОС в моем случае — Ubuntu 14.04, агент передачи почты по умолчанию (MTA) — Postfix.

Настройка 

Для начала добавим необходимые настройки в конфигурационный файл Postfix. Для это зайдем в файл /etc/postfix/main.cf и внизу добавим следующие строчки:

relayhost = smtp.example.com
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpw
smtp_sasl_security_options = noanonymous
sender_canonical_maps = pcre:/etc/postfix/sender_pcre
smtp_use_tls = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_sasl_mechanism_filter = PLAIN

Проверяем, что сертификат по пути /etc/ssl/certs/ca-certificates.crt существует. Если нет — устанавливаем OpenSSL.

# apt-get install openssl

Далее создадим необходимые файлы, которые мы указали в конфигурационном файле Postfix.

Создаем файл  saslpw:

# touch /etc/postfix/saslpw

со следующим содержимым:

smtp.example.com test@example.com:secret_password

— вместо «secret_password» указываем пароль к почтовому ящику, через который будет делаться отправка.

Создаем файл  sender_pcre:

# touch /etc/postfix/sender_pcre

со следующим содержимым:

/^[a-z,0-9]{1,20}\@/ test@example.com

Преобразуем созданные нами файлы в индексированную базу данных для Postfix:

# postmap /etc/postfix/saslpw
# postmap /etc/postfix/sender_pcre

В результате появятся еще 2 файла с таким же названием, но расширением .db

Настройку можно считать практически оконченной, осталось перезапустить Postfix:

# /etc/init.d/postfix restart

Проверяем отправку писем с сервера:

echo "test" | mail -s "test" my_email@gmail.com

Вместо my_email@gmail.com необходимо написать почтовый адрес куда вы хотите отправить письмо для проверки.

Возможные проблемы и ошибки

1. Если при попытке перезапуска Postfix возникает ошибка вида:

Nov 28 14:47:30 myserver postfix/cleanup[23440]: warning: pcre:/etc/postfix/sender_pcre is unavailable. unsupported dictionary type: pcre

она означает, что отсутствует необходимый модуль, который необходимо установить следующим образом:

# apt-get install postfix-pcre

2. Если Postfix запускается успешно, письмо вроде бы отправляется, но не приходит — то смотрим лог Postfix’а /var/log/mail.log. Если там есть ошибка такого вида:

SASL authentication failed; cannot authenticate to server no mechanism available

это значит, что отсутствует необходимая библиотека. Установим еще:

# apt-get install libsasl2-modules

После этого еще раз перезапускаем Postfix и еще раз проверяем отправку.

 

Рубрики: Postfix

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *