1. Home
  2. Техническое
  3. PHP
  4. Отправка писем через вебсервер
  1. Home
  2. Wordpress
  3. Отправка писем через вебсервер
  1. Home
  2. Техническое
  3. Отправка писем через вебсервер

Отправка писем через вебсервер

Общее

Если Вы используете виртуальный сервер 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;
Полезный совет!

Многие внешние провайдеры электронной почты, такие как Sendgrid и Mailgun, также поддерживают использование порта 2525 для отправки почты. Этот порт не закрыт и его можно использовать.

Настройка 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 цифровая подпись доступна во всех пакетах хостинга.

Чтобы активировать запись DKIM, войдите в «Мой Zone» и выберите Виртуальные серверы -> Э-почта.

Полезный совет!

Инструкции по тестированию записей SPF и DKIM и других элементов можно найти здесь.

Изменение PHP sendmail_from

По умолчанию письма вашего веб-сервера отправляется с адреса электронной почты веб-сервера по умолчанию virtXXX@vserver.zonevs.eu. Это можно изменить с помощью пятого параметра функции PHP mail() -f.

Изменить адрес по умолчанию @vserver.zonevs.eu, можно войдя в «Мой Zone» и выбрав Виртуальный сервер-> Веб-сервер-> Настройки главного домена-> Изменить-> Настройки PHP.

 

В открывшемся окне измените значение sendmail_from. Необходимо ввести только электронный адрес в формате address@name.ee.

Лог писем, отправленных с веб-сервера

Вы можете посмотреть лог отправленных писем с веб-сервера в самообслуживании Мой Zone  в разделеВеб-хостинг -> Логи -> Почта веб-сервера.

Инструкции по чтению лога отправленных писем с веб-сервера можно найти здесь: https://help.zone.eu/ru/kb/log-pisem-otpravlennyh-s-veb-servera/

Использование внешнего SMTP-сервера

Внимание!

Данное руководство является лишь примером, и 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-адрес, присвоенный вашему серверу.

Updated on 11. Feb 2024

Was this article helpful?

Related Articles