+2 голосов
от (28 баллов) в категории Модификация
редактировать от
Приветствую!
Как добавить возможность клиентам интернет-магазина отписаться от писем, которые отправляет PrestaShop? В частности интересует, изменение в коде, чтобы любой почтовый клиент (включая клиенты для iOS, Android) "знал", что письмо отправлено как рассылка и от нее можно отписаться.

1 Ответ

+3 голосов
от (610 баллов)
выбран от
 
Лучший ответ

Это делается изменением в классе /classes/Mail.php. Его нужно переопределить - в этом ответе не поясняю, как это сделать.

Нужно добавить две строчки кода:

// Заголовок письма, означающий, что это рассылка
$message->headers->set('Precedence', 'bulk');
// Заголовок письма, указывающий на URL для отписки от рассылки
$message->headers->set('List-Unsubscribe', '<' . self::$unsubscribeUrl . '>');

После строчки:

$message->headers->setEncoding('Q');

В приведенном примере, переменная self::$unsubscribeUrl - это сформированный URL для отписки конкретного получателя письма, т.е, для каждого получателя должен быть свой собственный URL. Его нужно устанавливать перед запуском отправки письма, т.е. перед Mail::Send().

от (28 баллов)
Спасибо! Дальше разберусь :D
Добро пожаловать на сайт. Здесь можно задавать вопросы по CMS PrestaShop и получать на них ответы.
...