Так вышло, что многие провайдеры и дата-центры блокируют 25 порт для отправки почты. Возможно, у вас нет возможности и желания настраивать отправку почты с вашего сервера посредством exim или sendmail, на помощь приходит msmtp.
Для Centos 7.5 установка выполняется так:
# yum install msmtp
На Ubuntu/Debian установка:
# apt-get install msmtp
Создаем конфигурацию:
$ nano ~/.msmtprc
Добавляем один или все конфигурации друг за другом вписывая свои настройки:
account yandex
logfile /var/log/msmtp.log
host smtp.yandex.ru
port 587
from mail@yandex.ru
keepbcc on
auth on
user mail@yandex.ru
password пароль
tls on
tls_starttls on
account yahoo
tls on
tls_starttls off
tls_certcheck off
auth on
host smtp.mail.yahoo.com
user user1
from user1@yahoo.com
password yourYahooPa5sw0rd
account gmail
tls on
tls_certcheck off
auth on
host smtp.gmail.com
port 587
user user1@gmail.com
from user1@gmail.com
password yourgmailPassw0rd
Далее:
# chmod 600 ~/.msmtprc
Перед проверкой, делаем тестовое письмо:
echo -e «From: chubaka@kremlin.ru \n\
To: info@gnvs.ru \n\
Subject: Приветики!! \n\
\n\
Это сообщение отправлено с использованием MSMTP с fatnev.ru» >> fatnev_email.txt
Теперь можно отправить письмо:
cat sample_email.txt | msmtp —debug -a gmail info@fatnev.ru
Обратите внимание, что необходимо выбрать при помощи какой конфигурации нужно отправить почту -a gmail.
Можно также проверить отправку почты так:
echo «Привет от GNVS» | msmtp —debug -a default info@admin
cp -p ~/.msmtprc /etc/.msmtp_php
chown www-data:www-data /etc/.msmtp_php
Даём права Apache, у вас может работать от другого пользователя, например apache:apache.
Редактируем php.ini:
# nano /etc/php.ini
И редактируем sendmail_path:
sendmail_path = "/usr/bin/msmtp -C /etc/.msmtp_php —logfile /var/log/msmtp.log -a gmail -t"
Создаём log-файл:
# touch /var/log/msmtp.log
# chown www-data:www-data /var/log/msmtp.log
и перезагружаем Apache:
# systemctl restart httpd
Готово.
PS: простая отправка почты через php-mail:
php -r "mail('test@email.com', 'Test', 'Test');"
Количество просмотров: 346