При сохранение сообщения в папку runtime/mail «=» заменяется на «=3D», как исправить?

Проблема с заменой символа «=» на «=3D» при сохранении сообщений в папку runtime/mail в Yii может быть вызвана кодировкой этих сообщений.

Стандартный механизм кодирования и декодирования электронных писем в Yii основан на стандарте MIME (Multipurpose Internet Mail Extensions). Стандарт MIME определяет, как сжимать и кодировать текстовые данные в электронных письмах, чтобы они могли безопасно передаваться по электронной почте. Одним из методов кодирования данных является метод "Quoted-Printable", который заменяет некоторые символы на специальные последовательности, начинающиеся с знака "=".

Теперь, рассмотрим возможные причины возникновения проблемы и способы её решения.

1. Проблема может быть связана с кодировкой сообщений.
В Yii, метод, отвечающий за кодирование сообщений, называется encodeQuotedPrintable(). Для решения проблемы, связанной со знаком "=", можно попробовать указать правильную кодировку.

Добавьте следующие строки кода в файл конфигурации приложения (config/main.php):

   return [
       'components' => [
           'mailer' => [
               'class' => 'yiiswiftmailerMailer',
               'messageConfig' => [
                   'charset' => 'UTF-8',
                   'encoding' => 'quoted-printable',
               ],
           ],
       ],
   ];

После этого, Yii будет использовать кодировку UTF-8 и метод кодирования "Quoted-Printable" при сохранении сообщений в папку runtime/mail. Проверьте, что это решает проблему.

2. Проблема может быть связана с настройками почтового сервера.
Если первый вариант не помог, проблема может быть связана с настройками почтового сервера или его конфигурацией. Многие почтовые серверы, такие как Sendmail или Postfix, могут модифицировать содержимое письма, включая кодирование данных. В этом случае, возможно, вам нужно будет проверить настройки и конфигурацию вашего почтового сервера.

3. Проблема может быть связана с MIME-типом сообщений.
MIME-тип сообщений определяет тип и формат данных внутри сообщений. Убедитесь, что вы правильно установили MIME-типы для пересылаемых сообщений. Для этого, установите соответствующий заголовок в вашем коде:

   Yii::$app->mailer->compose()
       ->setSubject('Subject')
       ->setTo(['[email protected]'])
       ->setTextBody('Body')
       ->setHtmlBody('HTML Body')
       ->setHeader('Content-Type', 'text/plain; charset=UTF-8')
       ->send();

В этом примере, мы устанавливаем MIME-тип text/plain и кодировку UTF-8 для текстового содержимого письма. Проверьте, что вы правильно установили MIME-типы для своих сообщений.

4. Проблема может быть связана с самим текстом письма.
В некоторых случаях, знак "=" может быть включен в текст письма, который затем неправильно интерпретируется как часть кодировки. Убедитесь, что ваш текст письма корректно сформирован и не содержит ненужных символов "=".

Таким образом, проблема с заменой символа «=» на «=3D» при сохранении сообщений в папку runtime/mail в Yii может быть вызвана несколькими факторами, включая кодировку этих сообщений, настройки почтового сервера, MIME-типы сообщений и сам текст письма. При решении проблемы, рекомендуется проверить и настроить каждый из этих факторов для обеспечения правильной обработки символа "=" в сообщениях.