Общие вопросы
Отправка писем по SMTP на VDS с панелью NetAngelsЗапуск образов VDS на локальном компьютереКак сбросить пароль root?Использование раздела Облачные VDS в панели управленияИспользование образа с панелью управления NetAngelsСпециальные образы VDS для быстрого развертывания (LAMP)Как клонировать виртуальные машиныГостевой агентПриватная сетьКак поправить настройки sshd?Как включить защиту от DDoS через CloudflareVDS как промежуточный сервер для выхода в интернетМонтирование диска в VDSУстановка сервера MinecraftЗащита от DDoS атакИнструкция по настройке исходящего SMTP для тарифов VDS StartСервер для веб-конференций, совещаний и онлайн лекцийВосстановление отдельных файлов в виде архиваНастройка сети на VDSУстановка Windows из ISO-образа на VDSSSH-доступ к хостинг-аккаунтуКак настроить отправку почты с сайтаАвтоматизация обновления SSL-сертификата через API NetAngelsВыпуск SSL сертификата на VDS c помощью утилиты dehydratedКак подключить SSL-сертификат для сайта на облачном VDS с панелью управления NetAngelsКонсольные команды. Работа с данными.Консольные команды. Работа с MySQL, создание и загрузка дампа.Консольные команды. Анализ состояния сервера
Отправка писем по SMTP на VDS с панелью NetAngels

Настройка отправки почты на VDS по SMTP с помощью утилиты msmtp

На тарифах линейки Start отправлять письма таким способом не получится. Пожалуйста, обратитесь к статье Инструкция по настройке исходящего SMTP для тарифов VDS Start

По умолачнию на VDS с панелью NetAngels для отправки почты используется Postfix со стандартными настройками. Поэтому при отправке писем с сайтов классическими средствами, например функцией PHP mail(), обнаруживается, что в качестве отправителя используется технический адрес вида web@vm-12345qwe.na4u.ru. На самом деле такого почтового ящика не существует и из-за этого многие, в особенности крупные, почтовые серверы (mail.ru, Gmail, Yandex) относятся к таким письмам подозрительно, помечают их как спам или вообще отказываются принимать. Чтобы такого не происходило, рекомендуется отправлять письма с сайтов с авторизацией в настоящий почтовый ящик по протоколу SMTP. Однако не в каждой CMS есть функционал для авторизации при отправке почты, и в таких случаях в качестве решения подойдёт сравнительно простая в настройке утилита msmtp.

В этой инструкции мы опишем процесс установки и настройки утилиты msmtp.

1. Подключитесь к серверу по протоколу SSH как пользователь root;

2. Обновите репозитории и установите msmtp:

apt-get update
apt-get install msmtp

3. Проверьте от имени какого пользователя работает сайт. Для этого зайдите в меню “Управление VDS”:

vds1.png

И посмотрите, на каком аккаунте размещён сайт. На скриншоте ниже видно, что сайт mynewsite.ru, для которого мы хотим настроить отправку почты, размещается на аккаунте web

vds2.png

Значит настройки будем выполнять для пользователя web.

4.Для авторизации выполните

su - web

5. Создайте конфигурационный файл в домашнем каталоге пользователя c реквизитами почтового ящика

nano /home/web/.msmtprc

и заполните его

account web
auth            on
tls             on
tls_trust_file  /etc/ssl/certs/ca-certificates.crt
logfile         ~/log/sendmail.log

# netcup
host            mail.netangels.ru
port            587
from            info@mynewsite.ru
user            info@mynewsite.ru
password        ieCaetaiz1NuVuw

aliases         /etc/msmtp-aliases

В первой строке нужно указать имя аккаунта, с которого отправляется почта. То есть, если аккаунт называется, например, sites, то строка будет выглядеть так

account sites

Значение параметров host и port следует уточнить у сервиса, на котором размещена ваша почта. В примере указаны подходящие настройки для нашего почтового сервера.

Далее в полях from и user нужно указать полное имя Вашего ящика, а в поле password пароль от него.

Внимание!

Не следует использовать публичные почтовые адреса такие как mail.ru, gmail.com или yandex.ru. С ними отправка почты с сайта скорее всего работать не будет.

Если у вас нет доменной почты, то её можно бесплатно создать в личном кабинете

Остальные настройки менять не требуется. После заполнения файла нажмите Ctrl+O и Enter для сохранения и Ctrl+X для выхода.

Измените права к конфигурационному файлу, чтобы доступ к нему имел только аккаунт-владелец:

chmod 600 /home/web/.msmtprc

6. В разделе “Управление VDS” зайдите в настройки PHP

vds3.png

Во вклаке настроек PHP найдите параметр sendmail_path. Строка с ним скорее всего будет выглядеть так:

sendmail_path = "/usr/sbin/sendmail -t -i"

Отредактируйте строку и приведите её к такому виду:

sendmail_path = "/usr/bin/msmtp -C /home/web/.msmtprc -t -a web"

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

7. Для проверки отправки почты вернитесь в консоль, авторизуйтесь пользователем, для которого выполнялись настройки, и введите команду

php -r 'mail("my@mailbox.ru", "Subject", "test");'

Вместо my@mailbox.ru укажите почтовый ящик, на который нужно отправить письмо. Затем проверьте ящик. Если письмо дошло, значит настройки выполнены успешно. Если что-то настроено не так, то вы увидите сообщение об ошибке сразу после выполнения команды. Также можно проверить почтовый журнал в файле ~/log/sendmail.log

Решение ошибок при отправке писем

В некоторых ситуациях заголовки, формируемые сайтом, могут вызывать ошибку при отправке письма. В этой ситуации сначала проверьте версию msmtp командой

msmtp --version

Если версия программы 1.6.0 и новее, то добавьте в файл /home/web/.msmtprc под параметром accout опцию remove_bcc_headers off

account web
remove_bcc_headers off
auth            on
tls             on
tls_trust_file  /etc/ssl/certs/ca-certificates.crt
logfile         ~/log/sendmail.log

# netcup
host            mail.netangels.ru
port            587
from            info@mynewsite.ru
user            info@mynewsite.ru
password        ieCaetaiz1NuVuw

aliases         /etc/msmtp-aliases

Если версия программы старее 1.6.0, то добавьте в файл /home/web/.msmtprc под параметром accout опцию keepbcc on

account web
keepbcc         on
auth            on
tls             on
tls_trust_file  /etc/ssl/certs/ca-certificates.crt
logfile         ~/log/sendmail.log

# netcup
host            mail.netangels.ru
port            587
from            info@mynewsite.ru
user            info@mynewsite.ru
password        ieCaetaiz1NuVuw

aliases         /etc/msmtp-aliases

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

Облачные VDS
Облачные VDS
Облачные VDS
Масштабируются под любые задачи: от размещения сайта до IT-инфраструктуры
С 2003 года
Надежность.
Нам доверяют десятки тысяч компаний и разработчиков
20 лет
Предоставляем услуги профессионального хостинга
35 000
Клиентов доверяют нам размещение своих сайтов
99.99%
Подтвержденный uptime
наших серверов хостинга
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
ВК49865