ГлавнаяРазноеКак добавить заголовок Sender в wp_mail()

Как добавить заголовок Sender в wp_mail()

Функция wp_mail() в WordPress используется для отправки электронной почты, но по умолчанию, для совместимости с некоторыми хостинг-провайдерами, разработчики ядра отключили установку заголовка Sender.

Заголовок Sender (отправитель) очень похож на заголовок From, и в большинствве случаев оба заголовка должны иметь одинаковое значение. Но ключевая разница между ними в том, что заголовок From является частью пересылаемого сообщения, а заголовок Sender — это часть так называемого «конверта».

Этот заголовок чаще всего используется в служебных целях. Например при невозможности доставки сообщения, почтовые серверы будут смотреть именно на заголовок Sender (а также Return-Path), для того, чтобы уведомить отправителя об ошибке при доставки. Он также может повляить на решения спам-фильтров, установленных на тех или иных почтовых сервисах.

Если данные заголовки не указаны явно, то многие хостинг-провайдеры их генерируют автоматически, исходя из названия хоста (hostname), где расположен сайт, и куда скорее всего отчеты об ошибках не смогут быть доставлены.

Установка Sender в WordPress

При работе с wp_mail() в WordPress добавить заголовок Sender можно при помощи события phpmailer_init в собственном плагине:

add_action( 'phpmailer_init', function( $m ) {
    $m->Sender = $m->From;
} );

Данный способ работает только в конфигурации по умолчанию, где отправка происходит через локальный почтовый сервис, что является наиболее оптимальным с точки зрения производительности. Если же вы используете плагин для стороннего SMTP сервера, то вероятнее всего он сам установит требуемый заголовок Sender за вас.

Если вы имеете доступ к почтовому сервису, отвечающий за отправку электронных сообщений, то проверить правильность конфигурации можно в логах (чаще всего /var/log/mail.log).

Проверить правильность на получающей стороне не всегда возможно, так как большинство почтовых клиентов не держат «конверт» после успешного получения сообщения. Но опираться можно на правильность адреса в заголовке Return-Path, который так же как и заголовок From, являются частью самого письма.

Константин Ковшенин

Сооснователь журнала WP Magazine и первой конференции WordCamp в России. Работал в Automattic, WordPress.com, WooCommerce. Принимает активное участие в развитии ядра WordPress. Любимый язык программирования: Python.

Подписаться на рассылку

Подписаться → Подпишитесь на бесплатную рассылку журнала WP Magazine и получайте новости, события, подборки тем и плагинов, уроки, советы и многое другое в мире WordPress!