Рассылка по PHP - quoted_printable_encode и пробелы - PullRequest
0 голосов
/ 08 октября 2019

В контактной форме я использую quoted-printable для темы (вводится отправителем), как это будет отображаться в заголовке письма:

    $subject = quoted_printable_encode($subject);

При отправке письма его заголовок получает темукак это:

    $subject  = "=?UTF-8?Q?$subject?=";

В основном это работает нормально, но если отправитель вводит пробелы, такие как «Ваш новый продукт», конечно, они также появляются в закодированной строке, что недопустимо. Также SpamAssassin дает соответствующую подсказку, которая не отображается после удаления пробелов в поле ввода темы формы.

Как это можно решить?

РЕДАКТИРОВАТЬ: Кажется, я нашел решение - добавив

    $subject = str_replace(' ', '=20', $subject);

после кодирования в quoted-printable, в заголовке электронного письма больше нет фактических пробелов, потому что теперь он тоже закодирован (но, конечно, также правильно декодируетсячерез вторую строку выше).

...