Я работаю над приложением, которое отправляет подтверждение по электронной почте пользователю при создании аккаунта. Мой клиент хочет иметь функциональность для редактирования содержимого почты. Я понял это с помощью простой таблицы SQL с текстовым содержимым письма.
Однако я застрял в проблеме кодировки символов. Это ситуация:
При создании аккаунта письмо создается и отправляется PHPMailer. Содержимое запрашивается из базы данных и распечатывается внутри тела письма следующим образом:
<tr>
<td colspan=2 style="text-align:left;">
<br><br>
<span>' . $mailData->intro_french . '</span>
<br><br>
</td>
</tr>
$ mailData-> intro_french - строка, содержащая символ á: «Bienvenue à ReproNet Lite!».
Теперь проблема начинается. Всякий раз, когда это письмо отправляется клиенту Outlook, все специальные символы удаляются. Строка будет отображаться как: «Bienvenue ReproNet Lite!».
Однако, когда это письмо отправляется любому другому клиенту (например, Gmail), все специальные символы сохраняются и отображаются нормально.
Из-за этого я думал, что это будет проблема Outlook. Но я попытался напечатать специальные символы в почте, как это, и все работало нормально:
<tr>
<td colspan=2 style="text-align:left;">
<br><br>
<span>Bienvenue á ReproNet Lite!</span>
<br><br>
</td>
</tr>
Я установил набор символов в PHPMailer следующим образом:
$mail = new PHPMailer();
$mail->CharSet = 'UTF-8';
Моя почта также имеет следующий тег:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Содержимое письма хранится в таблице utf8_general_ci.
Так что, похоже, это проблема Outlook или что-то с моей базой данных, возможно. Я хотел бы узнать, почему это происходит во-первых, а во-вторых, как я могу решить эту проблему.