Отправка email с вложениями при помощи PHPMailer в WordPress

Теперь разберёмся с отправкой письма с вложением (вложениями) средствами WordPress.

вложение в программе AirMail

PHPMailer

PHPMailer — это такой класс, который позволяет очень удобно (на мой взгляд) отправлять емайлы. Подробное описание класса не было целью этого поста, поэтому я лишь покажу, как нужно приклеплять вложения посредством кода PHP и приведу подробный пример.

Итак, чтобы добавить вложение к письму, используйте этот паттерн:

$phpmailer->AddAttachment('абсолютный путь к файлу на хостинге', 'название файла');

На примере плагинов:

1
2
3
$plugin_name = 'true-instagram-widget';
$phpmailer->AddAttachment(getcwd() . '/plugins/' . $plugin_name . '.zip', $plugin_name . '.zip');
// я добавил только одно вложение, но вы можете добавить и больше, продублировав вторую строку

И теперь, чтобы уже всё было понятно окончательно, вот вам полный пример отправки письма:

global $phpmailer;
if ( !is_object( $phpmailer ) || !is_a( $phpmailer, 'PHPMailer' ) ) { // проверяем, существует ли объект $phpmailer и принадлежит ли он классу PHPMailer
    // если нет, то подключаем необходимые файлы с классами и создаём новый объект
    require_once ABSPATH . WPINC . '/class-phpmailer.php';
    require_once ABSPATH . WPINC . '/class-smtp.php';
    $phpmailer = new PHPMailer( true );
}
$phpmailer->ClearAttachments(); // если в объекте уже содержатся вложения, очищаем их
$phpmailer->ClearCustomHeaders(); // то же самое касается заголовков письма
$phpmailer->ClearReplyTos(); 
$phpmailer->From = 'true@truemisha.ru'; // от кого, Email
$phpmailer->FromName = 'Миша Рудрастых'; // от кого, Имя
$phpmailer->Subject = 'Плагин: ' . $plugin_display_name; // тема
$phpmailer->SingleTo = true; // это означает, что если получателей несколько, то отображаться будет всё равно только один (если непонятно, спросите, я вам подробно объясню в комментариях)
$phpmailer->ContentType = 'text/html'; // тип содержимого письма
$phpmailer->IsHTML( true );
$phpmailer->CharSet = 'utf-8'; // кодировка письма
$phpmailer->ClearAllRecipients(); // очищаем всех получателей
$phpmailer->AddAddress( $_POST['email'] ); // добавляем новый адрес получателя
$phpmailer->Body = '<p>Благодарю вас за покупку плагина (архив приложен к письму).</p><p>Если у вас возникнут какие-либо вопросы, <a href="https://misha.blog/contacts">свяжитесь со мной</a> любым удобным вам способом.</p>';
$phpmailer->AddAttachment(getcwd() . '/plugins/' . $plugin_name . '.zip', $plugin_name . '.zip'); // добавляем вложение
$phpmailer->Send(); // отправка письма

Источник: misha.blog

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: