Ім’я відправника за промовчанням: WordPress, а email за промовчанням: wordpress@yoursite.com. Їх можна переписати, змінивши заголовок листа на:
Від: Example User <email@example.com>
Функція використовує фільтри wp_mail_from_name , які впливають на адресу email’a та ім’я відправника, відповідно, при цьому поле From (від кого) збирається заново. Якщо тільки wp_mail_from (email) повертає значення, ім’я вказуватися не буде взагалі: (From: email@example.com)
Тип листа за замовчуванням text/plain, а значить в тілі листи не можна використовувати теги html. Змінити тип листа можна через фільтр wp_mail_content_type або вказавши заголовок: content-type: text/html.
Кодування за умовчанням відповідає коду блогу (зазвичай utf-8). Кодування встановлюється через фільтр wp_mail_charset .
Для роботи цієї функції сервер повинен працювати з SMTPта повинен бути встановлений smtp_portу php.ini.
email одержувача листа. Декілька одержувачів вказуються в масиві або через кому в рядку.
$subject (рядок) (обов’язковий)
Тема листа (заголовок).
$message (рядок) (обов’язковий)
Тіло листа (зміст, контент).
$headers (рядок/масив)
Заголовки листа, що вказують на його атрибути. Для просунутого використання. Може бути:
from– від кого. Пр. webmaster@example.com
content-type– text/html , text/plain
cc– some@gmail.com – точна копія (carbon copy) – вторинні одержувачі листа, яким надсилається копія. Вони бачать та знають про наявність один одного.
bcc– some@gmail.com – прихована точна копія (blind carbon copy) – приховані одержувачі листа – їх адреси не показуються іншим одержувачам.
reply-to– FromEmail@example.com
та будь-які інші довільні параметри.
За замовчуванням: ”
$attachments (рядок/масив)
Файли, які потрібно прикріпити до письма. Вказуємо повний шлях до файлу (назва файлу включно). Якщо потрібно прикріпити кілька файлів, вказуємо їх назви в масиві або рядку через перенесення рядка.
За замовчуванням: array()
Приклади
2
#1 Приклад використання масиву для вказівки заголовків листа:
// мається на увазі, що $to, $subject, $message вже визначені...
// видалимо фільтри, які можуть змінювати заголовок $headers
// remove_all_filters( 'wp_mail_from');
// remove_all_filters( 'wp_mail_from_name');
$headers = array(
'From: Me Myself <me@example.net>',
'content-type: text/html',
'cc: John Q Codex <jqc@wordpress.org>',
'cc: John2 Codex <j2qc@wordpress.org>',
'bcc: iluvwp@wordpress.org', // тут можна використовувати лише просту email адресу
);
wp_mail($to, $subject, $message, $headers);
Відправимо листа My Name <myname@mydomain.com>з прикріпленим файлом attach.zip:
На деяких серверах (хостингах) у полі FROM (у частині email) обов’язково має фігурувати домен сайту, інакше, наприклад, яндекс пошта не отримає листа. Перевіряв на хостингу Бегет.
Тобто. в цьому випадку краще не вказувати від: , а змінити тільки частину цього поля, тільки ім’я, через фільтр:
add_filter( 'wp_mail_from_name', function($from_name){
return 'Моє ім'я, а не WordPress'; // Тут можна зазначити свою пошту: asd@asd.ru
} );
// видалимо фільтри, які можуть змінювати заголовок $headers
// remove_all_filters( 'wp_mail_from');
// remove_all_filters( 'wp_mail_from_name');
$attachments = array(WP_CONTENT_DIR . '/uploads/attach.zip');
$headers = 'Від: My Name <myname@mydomain.com>' . "rn";
wp_mail('test@test.com', 'Тема', 'Зміст', $headers, $attachments);
// test@test.com – кому відправляємо.
0
#4 Відправимо лист двом користувачам відразу і задамо формат листа html:
$multiple_to_recipients = array(
'recipient1@example.com',
'recipient2@foo.example.com'
);
add_filter( 'wp_mail_content_type', 'set_html_content_type' );
wp_mail( $multiple_to_recipients, 'The subject', '<p>The <em>HTML</em> message</p>' );
// Скинемо content-type, щоб уникнути можливого конфлікту
remove_filter( 'wp_mail_content_type', 'set_html_content_type' );
function set_html_content_type() {
return 'text/html';
}