В контактной форме я использую quoted-printable для темы (вводится отправителем), как это будет отображаться в заголовке письма:
$subject = quoted_printable_encode($subject);
При отправке письма его заголовок получает темукак это:
$subject = "=?UTF-8?Q?$subject?=";
В основном это работает нормально, но если отправитель вводит пробелы, такие как «Ваш новый продукт», конечно, они также появляются в закодированной строке, что недопустимо. Также SpamAssassin дает соответствующую подсказку, которая не отображается после удаления пробелов в поле ввода темы формы.
Как это можно решить?
РЕДАКТИРОВАТЬ: Кажется, я нашел решение - добавив
$subject = str_replace(' ', '=20', $subject);
после кодирования в quoted-printable, в заголовке электронного письма больше нет фактических пробелов, потому что теперь он тоже закодирован (но, конечно, также правильно декодируетсячерез вторую строку выше).