Перекопал и испробовал кучу описаний в сети как это должно делаться. Результат оказался пшиком.
Предлагаю скомпилированный из разных источников и собственных ошибок результат действий который увенчался успехом. Возможно кому-нибудь сэкономит время.
Система: CentOS 6.3 (2.6.32-279.el6.x86_64).
Установка нужных пакетов.
uym install sendmail sendmail-cf openssl cyrus-sasl cyrus-sasl-plain nano
Создание 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/auth/authinfo
AuthInfo:smtp.gmail.com "U:root" "I:USERNAME@gmail.com" "P:PASSWORD"
AuthInfo: "U:root" "I:USERNAME@gmail.com" "P:PASSWORD"
Конвертируем.
makemap hash -r /etc/mail/auth/authinfo < /etc/mail/auth/authinfo
Добавляем в sendmail.mc нужную конфигурацию. (Важно: сделать это до первого FEATURE)
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 USERNAME@gmail.com -v receiver@mail.domen
Test
.
Проверяем результат.
mailq
tail maillog
Комментарии (7)
BuriK666
07.04.2016 03:38ssmtp еще проще.
hungry_ewok
07.04.2016 08:24+1Вот да. Очень удобная и полезная утилитка — сформировал для нее письмо и вперед.
Забавно, кстати недавно вышло — разбираясь с тем почему ssmtp с одной машины внезапно перестала отправлять мне письма неожиданно понял что до самого недавнего времени она отсылала письма с одного адреса гугльпочты, при этом в поле from: пихался другой. Секурити апгрейдет…
Заодно выяснилось что бесплатные почтосервисы сейчас все больше злобствуют в отношении того что считают автоматической рассылкой. Гугль временно перестает принимать, а майлру так вообще внезапно блокирует ящик…Hormiga
08.04.2016 07:27Недавно настраивал корпоративную почту и столкнулся с тем, что всем письма доходят, а на gmail — с задержкой. Отлуп сервера говорил как раз об ограничении количества принимаемых сообщений.
Проблема полностью решилась настройкой spf-записи.
yosemity
07.04.2016 21:56-1Безусловно, но автор писал про сендмейл. в vCenter есть сендмейл, и поставить что-то сверху сложно и не стоит, я считаю. Сущность, которая рулит гипервизорами вообще неприкосновенна.
PopDoG
07.04.2016 18:41+1К дополнению в посте нужно сказать есть статья 2008 года habrahabr.ru/post/281102 для настройки под Windows OS- в данный момент устаревшая.
У меня получилось так Windows2012+IIS8+php5.5.3+sendmail.
Настройки PHP.ini
[mail function]
SMTP =
sendmail_from =
sendmail_path = «C:\sendmail\sendmail.exe -t»
Настройки sendmail
[sendmail]
smtp_server=smtp.googlemail.com
smtp_port=465
smtp_ssl=auto
error_logfile=error.log
debug_logfile=debug.log
auth_username=ваша почта@gmail.com
auth_password=пароль от почты
pop3_server=
pop3_username=
pop3_password=
force_sender=ваша почта@gmail.com
force_recipient=
hostname=ваша почта@gmail.com
На гугле почте в настройках безопасности необходимо включить Безопастность и вход>Ненадежные приложения заблокированы.
Еще если не ошибаюсь на видовом сервере нужно включить Диспетчер служб IIS 6.0 а в нем настроить SMTP VirtualServer
boblenin
08.04.2016 02:20+1Открыл для себя mail-stack-delivery и мои волосы стали мягкими и шолковистыми.
yosemity
Спасибо, по вашей статье с небольшими добавлениями настроил отправку почты через vCenter.
Сразу добавлю, что нужно разрешить вход для «ненадежных» приложений.