Wp_mail() - функция отправки email в WordPress
Опубликовано: 04.03.2024

Функция возвращает true в случае успешной отправки email, однако это не означает, что письмо будет получено и прочтено.
wp_mail ( $to , $subject , $message , $headers = '' , $attachments = array ( ) ) |
Пример. Обычная отправка письма
Самый просто пример:
Wordpress mail отправка почты Игорян
wp_mail ( '[email protected]' , 'Какая-то тема' , 'Какое-то сообщение' ) ; |
Изменение имени и email отправителя
В WordPress по умолчанию в качестве отправителя письма выставляется «WordPress»,а в качестве его email «[email protected]».
WordPress не отправляет письма или не приходят письма Вордпресс
Я уже писал пост о том, как изменить стандартное имя и email отправителя для всех писем, отправляемых с блога на WordPress, а сейчас рассмотрим пример только для конкретного письма:
$headers = 'From: Миша <[email protected]>' . " \r \n "; // в виде строки wp_mail ( '[email protected]' , 'Какая-то тема' , 'Какое-то сообщение' , $headers ) ; |
Использование HTML-тегов в письме
Для того, чтобы использовать HTML-теги в тексте сообщения, нужно изменить content-type письма на text/html, а это можно сделать двумя способами.
Через фильтр. В таком случае HTML-теги станет возможно использовать в любых письмах, отправляемых с блога, для этого нужно вставить в functions.php следующий код:
add_filter ( 'wp_mail_content_type' , create_function ( '' , 'return "text/html";' ) ) ; |
Через заголовки. HTML-теги будут разрешены только для конкретного письма.
$headers [ ] = 'Content-type: text/html; charset=utf-8' ; // в виде массива wp_mail ( '[email protected]' , 'Какая-то тема' , 'Какое-то сообщение' , $headers ) ; |
Изменение кодировки письма
Кодировка письма по умолчанию соответствует кодировке блога, но ее тоже можно изменить через заголовки (предыдущий пример) или через фильтр:
add_filter ( 'wp_mail_charset' , create_function ( '' , 'return "utf-8";' ) ) ; |
В предыдущем примере (и по умолчанию тоже) WordPress отправляет письма юникодом, но таким способом вы спокойно можете изменить кодировку например на Windows-1251.
Отправка письма с измененными заголовками и вложениями
В данном случае обе переменные: $attachments и $headers — заданы в виде массива.
$attachments [ ] = WP_CONTENT_DIR . '/uploads/file_1.zip' ; $attachments [ ] = WP_CONTENT_DIR . '/uploads/file_2.zip' ; $headers [ ] = 'From: Миша <[email protected]>' ; $headers [ ] = 'Content-type: text/html; charset=utf-8' ; wp_mail ( '[email protected]' , 'Какая-то тема' , 'Какое-то сообщение' , $headers , $attachments ) ; |