Настройка sendmail relay через аккаунт на google

Часто бывают ситуации,когда не удается напрямую отправить письмо с сервера. В моем случаем была проблема с указанием обратной записи для ip адреса моего сервера — что-то мой провайдер не поделил с «арендодателем» диапазона адресов.

 

В общем,было решено сделать отправку писем через аккаунт на другом mail сервере. В данном случае это был gmail.com и привязанный к нему домен itblog.by. Из плюсов: бесплатный (или почти) почтовый ящик,привязка своего домена,нет проблем с прохождением спамфильтров. Из минусов — один общий mail-from адрес. Но для моей ситуации это не критично.

 

Итак,начнем. Базовая система — ubuntu 12.04. Устанавливаем sendmail,если не установлен:

apt-get install sendmail mailutils

Создаем необходимые каталоги,негерируем ssl сертификаты:mkdir /etc/mail/certs

chmod 700 /etc/mail/certs 
cd
/etc/mail/certs
openssl dsaparam 1024 -out dsa1024 -out dsa1024.pem openssl req -x509 -nodes -days 3650 -newkey dsa:dsa1024.pem -out /etc/mail/certs/mycert.pem -keyout /etc/mail/certs/mykey.pem openssl req -x509 -new -days 3650 -key /etc/mail/certs/mykey.pem -out /etc/mail/certs/mycert.pem ln -s /etc/mail/certs/mycert.pem /etc/mail/certs/CAcert.pem chmod 600 /etc/mail/certs/*

Создем файл с данными для аутентификации:

# nano /etc/mail/authinfo 
AuthInfo:smtp.gmail.com "U:root" "I:USERNAME@gmail.com" "P:PASSWORD"
AuthInfo: "U:root" "I:USERNAME@gmail.com" "P:PASSWORD"

Генерируем хэш:

makemap hash -o /etc/mail/authinfo < /etc/mail/authinfo

Указываем необходивые опции в файле конфигурации sendmail’a (добавляем в конец файла):

# nano /etc/mail/sendmail.mc 
dnl # Smrp relay
define(`CERT_DIR',`MAIL_SETTINGS_DIR`'certs')
define(`confCACERT_PATH',`CERT_DIR')
define(`confCACERT',`CERT_DIR/CAcert.pem')
define(`confSERVER_CERT',`CERT_DIR/mycert.pem')
define(`confSERVER_KEY',`CERT_DIR/mykey.pem')
define(`confCLIENT_CERT',`CERT_DIR/mycert.pem')
define(`confCLIENT_KEY',`CERT_DIR/mykey.pem')
dnl #
dnl # gmail auth
define(`SMART_HOST',`[smtp.gmail.com]')dnl
define(`RELAY_MAILER_ARGS',`TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS',`TCP $h 587')dnl
define(`confAUTH_OPTIONS',`A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS',`EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/authinfo.db')dnl

Собираем конфигурационный файл и перезапускаем службу:

make -C /etc/mail service sendmail restart

Если ошибок не возникло,то пробуем отправить тестовое письмо на свой ящик:

mail -s \"test subject\" testmail@testl.com
olololo
^D

Думаю не стоит напоминать,что «^D» — это комбинация Ctrl + d .
Если возникли проблемы — пишите в комментариях.

О настройке других MTA (postfix и т.п.),думаю,в будущем тоже напишу.

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

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