На тарифах линейки 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”:
И посмотрите, на каком аккаунте размещён сайт. На скриншоте ниже видно, что сайт mynewsite.ru, для которого мы хотим настроить отправку почты, размещается на аккаунте web
Значит настройки будем выполнять для пользователя 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
Во вклаке настроек 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
После добавления параметра можно будет проверить отправку почты.