Общее
Если Вы используете виртуальный сервер Zone для хостинга сайта и хотите отправлять письма со своего веб-сайта, обратите внимание, что порты 25, 1025, 1026, 465 и 587 закрыты. Следовательно, вы не можете использовать сервер smtp.zone.eu или любой другой сервер, который использует вышеупомянутые порты.
Для отправки писем через ваш веб-сайт, в качестве имени хоста SMTP должен быть указан localhost
и должен использоваться порт 25
. Аутентификация или безопасное соединение (SSL / TLS) не требуется и для этих параметров должно быть указано false или none.
Пример SMTP настроек PHP-скрипта:
$mail->Mailer = "smtp"; $mail->Host = "localhost"; $mail->Port = "25"; $mail->SMTPSecure = 'none'; $mail->SMTPAutoTLS = false; $mail->SMTPAuth = false;
Настройка Laravel выглядит так:
MAIL_MAILER=smtp MAIL_HOST=localhost MAIL_PORT=25 MAIL_USERNAME= MAIL_PASSWORD= MAIL_ENCRYPTION=null
Ограничения по отправке
Вы можете отправлять одно письмо каждые пять секунд. Если вы превысите этот лимит, отправка писем будет ограничена. Для снятия ограничения, свяжитесь с нашей службой поддержки клиентов по адресу info@zone.ee.
.
SPF
При отправке писем с вашего веб-сервера убедитесь, что запись SPF вашего домена это позволяет. В противном случае письмо будет помечено как спам или вообще не будет доставлено.
Если ваш домен использует только почтовые услуги Zone, запись SPF должна выглядеть так:
v=spf1 a mx include:_spf.zone.eu -all
Если ваш веб-сайт хостится у нас, но вы пользуетесь почтовыми услугами другого провайдера, то запись SPF необходимо дополнить. Достаточно добавить include: _spf.zone.eu
в запись SPF вашего домена. Например так:
v=spf1 ip4:123.4.5.6 include:_spf.zone.eu -all
DKIM
Для повышения аутентичности электронной почты, отправляемой с вашего веб-сервера, вы можете использовать цифровую подпись DKIM. DKIM добавит к электронному письму криптографическую цифровую подпись, чтобы получающая сторона могла быть уверена, что электронное письмо было отправлено правильно и не было подделано.
Для активации записи DKIM, войдите в Мой Zone и выберите Виртуальные серверы
-> Э-почта
. Более подробные инструкции здесь.
Изменение PHP sendmail_from
По умолчанию письма с вашего веб-сервера отправляются с адреса noreply – например, noreply@example.com
. Это можно изменить с помощью пятого параметра функции PHP mail() -f.
Изменить адрес по умолчанию noreply, можно войдя в Мой Zone и выбрав Виртуальный сервер
-> Веб-сервер
-> Настройки главного домена
-> Изменить
-> Настройки PHP
.
В открывшемся окне измените значение sendmail_from. Необходимо ввести только электронный адрес в формате address@example.com.
Лог писем, отправленных с веб-сервера
Вы можете посмотреть лог отправленных писем с веб-сервера в самообслуживании Мой Zone
в разделе Веб-хостинг->Логи->Почта веб-сервера
.
Инструкции по чтению лога отправленных писем с веб-сервера можно найти здесь.
Использование внешнего SMTP-сервера
Необходимые условия для использования внешнего SMTP-сервера:
- Пакет виртуального сервера Pro
- Выделенный IP-адрес ( входит в пакет Pro)
- SMTP-сервер, поддерживающий TLS/SSL-соединение через порт 587
Чтобы отправить электронное письмо с веб-сервера с помощью внешнего сервера, приложение должно отправить письмо на IP-адрес, выделенный серверу. Типичные плагины для WordPress и других приложений не позволяют сделать это в пользовательском интерфейсе, поэтому приходится делать настройку непосредственно из файла.
Обратите внимание, что в логе отправленных писем с веб-сервера в управлении виртуальным сервером не отображаются письма, отправленные через внешний сервер.
Пример 1: WP Mail SMTP by WPForms
Чтобы отправлять письма с правильного IP-адреса, в файл functions.php
необходимо добавить следующий фильтр:
add_filter('wp_mail_smtp_custom_options',function($phpmailer){ $phpmailer->SMTPOptions=[ 'socket'=>[ 'bindto' => '1.2.3.4:0' ] ]; return $phpmailer; });
Где в строке 'bindto' => '1.2.3.4:0'
замените '1.2.3.4:0'
на IP-адрес, присвоенный вашему серверу.
Пример 2: Nodemailer
В Nodemailer вы можете задать отдельный IP-адрес со значением localAddress
. Пример SMTP Gmail:
nodemailer.createTransport({ host: 'smtp.gmail.com', port: 465, secure: true, auth: { user: 'username@gmail.com', pass: 'password' }, localAddress: '1.2.3.4' });
Где в строке localAddress: '1.2.3.4'
замените '1.2.3.4'
на IP-адрес, присвоенный вашему серверу.