Долгое время я искал понятное объяснение, как заставить локальный sendmail, установленный на компьютере во внутренней сети, отправлять почту во внешний мир.
В качестве ретранслятора был выбран smtp.gmail.com. Я перерыл и перепробовал в интернете кучу описаний, как это надо делать.
В результате ничего не получилось.
Предлагаю результат действий, составленный из различных источников и собственных ошибок, увенчавшийся успехом.
Возможно, это сэкономит кому-то время.
Система: CentOS 6.3 (2.6.32-279.el6.x86_64).
Установка необходимых пакетов:
Создание SSL-сертификатов:uym install sendmail sendmail-cf openssl cyrus-sasl cyrus-sasl-plain nano
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/auth/authinfo
AuthInfo:smtp.gmail.com "U:root" "I:[email protected]" "P:PASSWORD"
AuthInfo: "U:root" "I:[email protected]" "P:PASSWORD"
Конвертировать:
makemap hash -r /etc/mail/auth/authinfo < /etc/mail/auth/authinfo
Добавьте необходимую конфигурацию в 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/auth/authinfo.db')dnl
Компилируем конфигурацию, перезапускаем sendmail и проверяем, что почта отправляется:
make -C /etc/mail
service sendmail restart
sendmail -f [email protected] -v [email protected]
Test
.
Давайте проверим результат:
mailq
tail maillog
Теги: #Сетевые технологии #sendmail
Вместе с данным постом часто просматривают:
-
Цифровые Фоторамки: Отличный Инструмент
19 Oct, 24 -
Нижний Лист, Давай Перейдем На "Ты"?
19 Oct, 24 -
Хетцнер. Сбой В Rz12 И Rz15
19 Oct, 24 -
Tinymce И Опера 10.50
19 Oct, 24 -
Презентации Со Спик
19 Oct, 24