wp_mail()

Отправляет email, аналогично функции mail PHP
Функция WordPress
INT 1.2.1
WordPress Icon

Описание функции

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

Эта функция использует встроенную функцию PHPMailer для отправки писем. Она позволяет отправлять письма с использованием SMTP-сервера, а также обеспечивает поддержку различных кодировок и вложений.

Использование

wp_mail( string|string[] $to, string $subject, string $message, string|string[] $headers = '', string|string[] $attachments = array() ): bool

Функция wp_mail() принимает следующие параметры:

  • $to (обязательный) — Строка или массив с адресами электронной почты, на которые нужно отправить сообщение.
  • $subject (обязательный) — Тема письма.
  • $message (обязательный) — Содержимое письма.
  • $headers (необязательный) — Дополнительные заголовки письма. По умолчанию: пустая строка.
  • $attachments (необязательный) — Пути к файлам, которые нужно прикрепить к письму. По умолчанию: пустой массив.

Функция wp_mail() возвращает логическое значение true, если письмо было успешно отправлено.

<?php
$to = 'user@example.com';
$subject = 'Привет от WordPress!';
$message = 'Привет, это тестовое письмо из WordPress!';
$headers = array(
    'From: WordPress <wordpress@example.com>',
    'Content-Type: text/html; charset=UTF-8'
);
$attachments = array( '/path/to/file1.pdf', '/path/to/file2.jpg' );
$result = wp_mail( $to, $subject, $message, $headers, $attachments );
if ( $result ) {
    echo 'Письмо успешно отправлено!';
} else {
    echo 'Ошибка при отправке письма.';
}
?>

В этом примере мы отправляем письмо на адрес user@example.com с темой «Привет от WordPress!» и содержимым «Привет, это тестовое письмо из WordPress!». Мы также указываем отправителя и тип контента письма в заголовках. Вложениями являются файлы file1.pdf и file2.jpg. Результат отправки письма выводится на экран.

Примеры использования

Отправка простого текстового письма


$to = 'user@example.com';
$subject = 'Привет от WordPress!';
$message = 'Привет, это пример использования функции wp_mail()!';
$headers = array('Content-Type: text/html; charset=UTF-8');
$result = wp_mail($to, $subject, $message, $headers);
if ($result) {
    echo 'Письмо успешно отправлено!';
} else {
    echo 'Ошибка при отправке письма.';
}

Прикрепление файла к письму


$to = 'user@example.com';
$subject = 'Привет от WordPress!';
$message = 'Привет, это пример использования функции wp_mail() с прикрепленным файлом!';
$headers = array('Content-Type: text/html; charset=UTF-8');
$attachments = array('/path/to/file.pdf');
$result = wp_mail($to, $subject, $message, $headers, $attachments);
if ($result) {
    echo 'Письмо с прикрепленным файлом успешно отправлено!';
} else {
    echo 'Ошибка при отправке письма.';
}

Использование дополнительных заголовков


$to = 'user@example.com';
$subject = 'Привет от WordPress!';
$message = 'Привет, это пример использования функции wp_mail() с дополнительными заголовками!';
$headers = array(
    'Content-Type: text/html; charset=UTF-8',
    'From: WordPress <wordpress@example.com>',
    'Cc: anotheruser@example.com',
    'Bcc: hiddenuser@example.com'
);
$result = wp_mail($to, $subject, $message, $headers);
if ($result) {
    echo 'Письмо с дополнительными заголовками успешно отправлено!';
} else {
    echo 'Ошибка при отправке письма.';
}

Отправка письма с несколькими получателями


$to = array('user1@example.com', 'user2@example.com');
$subject = 'Привет от WordPress!';
$message = 'Привет, это пример использования функции wp_mail() с несколькими получателями!';
$headers = array('Content-Type: text/html; charset=UTF-8');
$result = wp_mail($to, $subject, $message, $headers);
if ($result) {
    echo 'Письмо с несколькими получателями успешно отправлено!';
} else {
    echo 'Ошибка при отправке письма.';
}

Вопросы и ответы

Как отправить письмо с вложениями?

Для отправки письма с вложениями в функцию wp_mail() необходимо передать путь к файлам, которые нужно прикрепить. Это делается с помощью параметра $attachments.


$to = 'recipient@example.com';
$subject = 'Письмо с вложениями';
$message = 'Привет, вот вложение!';
$headers = array('Content-Type: text/html; charset=UTF-8');
$attachments = array('/path/to/file1.pdf', '/path/to/file2.jpg');
wp_mail($to, $subject, $message, $headers, $attachments);

Как указать дополнительные заголовки в письме?

Для указания дополнительных заголовков в письме используется параметр $headers. В него можно передать строку или массив с заголовками.


$to = 'recipient@example.com';
$subject = 'Письмо с дополнительными заголовками';
$message = 'Привет, это письмо с дополнительными заголовками!';
$headers = array(
    'From: sender@example.com',
    'Cc: cc@example.com',
    'Bcc: bcc@example.com',
    'Content-Type: text/html; charset=UTF-8'
);
wp_mail($to, $subject, $message, $headers);

Как отправить письмо с разными адресатами?

Для отправки письма с разными адресатами можно передать в параметр $to массив с email-адресами или использовать запятую для разделения адресов в виде строки.


$to = array('recipient1@example.com', 'recipient2@example.com');
$subject = 'Письмо с разными адресатами';
$message = 'Привет, это письмо с разными адресатами!';
wp_mail($to, $subject, $message);

Как проверить, было ли успешно отправлено письмо?

Функция wp_mail() возвращает значение типа bool, указывающее, было ли письмо успешно отправлено. Если письмо отправлено успешно, функция вернет true, в противном случае — false.


$to = 'example@example.com';
$subject = 'Тестовое письмо';
$message = 'Привет, это тестовое письмо!';
$headers = array('Content-Type: text/html; charset=UTF-8');
$result = wp_mail($to, $subject, $message, $headers);
if ($result) {
    echo 'Письмо успешно отправлено!';
} else {
    echo 'Ошибка при отправке письма.';
}

Как отправить письмо с HTML-форматированием?

Для отправки письма с HTML-форматированием, необходимо указать соответствующий заголовок в параметре $headers. В заголовке следует указать тип контента как text/html.


$to = 'example@example.com';
$subject = 'Тестовое письмо с HTML';
$message = '<h1>Привет</h1><p>Это тестовое письмо с HTML-форматированием.</p>';
$headers = array('Content-Type: text/html; charset=UTF-8');
wp_mail($to, $subject, $message, $headers);

Как отправить письмо с определенным отправителем?

Для отправки письма с определенным отправителем, необходимо указать соответствующий заголовок в параметре $headers. В заголовке следует указать адрес отправителя с помощью заголовка From.


$to = 'example@example.com';
$subject = 'Тестовое письмо с определенным отправителем';
$message = 'Привет, это тестовое письмо с определенным отправителем.';
$headers = array('From: John Doe <johndoe@example.com>', 'Content-Type: text/html; charset=UTF-8');
wp_mail($to, $subject, $message, $headers);

Как отправить письмо с подтверждением прочтения?

Для отправки письма с подтверждением прочтения, необходимо указать соответствующий заголовок в параметре $headers. В заголовке следует указать запрос на подтверждение с помощью заголовка Disposition-Notification-To.


$to = 'example@example.com';
$subject = 'Тестовое письмо с подтверждением прочтения';
$message = 'Привет, это тестовое письмо с подтверждением прочтения.';
$headers = array('Disposition-Notification-To: johndoe@example.com', 'Content-Type: text/html; charset=UTF-8');
wp_mail($to, $subject, $message, $headers);

Функция wp_mail() в WordPress позволяет отправлять электронные письма с помощью PHP, аналогично функции mail(). Она принимает несколько параметров, включая адресаты, тему письма, содержимое и дополнительные заголовки. Функция возвращает значение типа bool, указывающее, было ли письмо успешно отправлено. Для отправки писем с различными настройками, такими как HTML-форматирование, определенный отправитель или запрос на подтверждение прочтения, можно использовать соответствующие заголовки в параметре $headers.

Связанные элементы

  • Функция add_filter(): регистрирует новый фильтр для изменения данных перед их выводом.
  • Функция add_action(): регистрирует новое действие, которое будет выполнено в определенный момент.
  • Функция do_action(): вызывает все зарегистрированные действия для определенного момента.
  • Функция apply_filters(): применяет все зарегистрированные фильтры к указанным данным.
  • Функция get_option(): получает значение опции из базы данных.
  • Хук init: срабатывает при инициализации WordPress и позволяет зарегистрировать дополнительные действия и фильтры.
  • Хук wp_head: срабатывает внутри тега <head> на каждой странице WordPress и позволяет добавить дополнительный код или стили.
  • Хук wp_footer: срабатывает перед закрывающим тегом </body> на каждой странице WordPress и позволяет добавить дополнительный код или скрипты.
  • Класс WP_Query: используется для выполнения запросов к базе данных WordPress и получения соответствующих записей.
  • Класс WP_User: представляет пользователя WordPress и предоставляет методы для работы с его данными.
Обсуждение