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
Полезный совет!

Вы можете найти руководство по добавлению и управлению SPF-записями здесь.

DKIM

Для повышения аутентичности электронной почты, отправляемой с вашего веб-сервера, вы можете использовать цифровую подпись DKIM. DKIM добавит к электронному письму криптографическую цифровую подпись, чтобы получающая сторона могла быть уверена, что электронное письмо было отправлено правильно и не было подделано.

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

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

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

Изменение PHP sendmail_from

По умолчанию письма с вашего веб-сервера отправляются с адреса noreply – например, noreply@example.com. Это можно изменить с помощью пятого параметра функции PHP mail() -f.

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

 

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

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

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

Инструкции по чтению лога отправленных писем с веб-сервера можно найти здесь.

Использование внешнего 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 3. Jul 2024
Was this article helpful?

Related Articles