Top.Mail.Ru
Пн–Пт, 09:00–18:00 (МСК)
Пн–Пт, 09:00–18:00 (МСК)

Заметки программиста ·

Отправка почты с сайта через smtp клиент

Достаточно часто при разработке сайта сталкиваемся с ситуацией, когда IP адрес сервера попадает в спам листы популярных почтовых сервисов и письма с сайта попросту не доходят до адресата. К сожалению, мольбы об исключении IP адреса из черного листа, зачастую, бывают не услышаны и дабы не тянуть котика за причинное место мы используем маленького консольного друга - smtp клиент "MSMTP".

Устанавливаем консольный smtp клиент

yum install msmtp

Очень удобно пользоваться простым консольным редактором nano, установим его если этого не делали раньше

 
yum install nano

Создаем файл настроек

nano /etc/msmtprc

Для отправки писем с серверов Gmail добавим следующую конфигурацию

account gmail # название аккаунта
logfile /var/log/msmtp.log
host smtp.gmail.com
port 587
from user@gmail.com # почтовый адрес с которого будет приходить письма, обязательно должно совпадать с параметром user
auth on
user user@gmail.compassword password
tls on
tls_starttls on
tls_certcheck off
keepbcc on

Для серверов Яндекс подойдет конфиг:

account yandex
logfile /var/log/msmtp.log
host smtp.yandex.ru
port 587
from user@yandex.rukeepbcc on
auth on
user user@yandex.rupassword password
tls on
tls_starttls on
tls_certcheck off

Следующим шагом нам нужно настроить отправку почты для определенного сайта (виртуального хоста). Для этого отредактируем файл /etc/httpd/conf/httpd.conf (для ISP Manager файл будет находится в директории /etc/httpd/conf/vhosts/ с названием домена)

<VirtualHost *:80>
ServerAdmin webmaster@site.ruServerName site.ru
DocumentRoot /var/www/site.ru/
DirectoryIndex index.html index.php

# Добавляем параметр, для замены стандартного почтового агента на msmtp
# Внимание, параметр «yandex» нужно заменить на название аккаунта учетной записи, который был внесен в конфигурационный файл /etc/msmtprc php_admin_value sendmail_path "/usr/bin/msmtp -a yandex -t" </VirtualHost>

Осталось лишь создать простой скрипт отправки тестового сообщения

test@test.ru', 'Test', 'Test');
?>

Нужна консультация?

Поможем с выбором готового решения и проконсультируем
по услугам компании.

Получить подбор решения

Обсудим ваш проект

Расскажите о задаче — подберём формат и посчитаем стоимость.