Помогите отловить баг при отправке HTML письма функцией mail() PHP
Господа, мое почтение. Очень странный баг.
У меня два аккаунта на одном хостинге, отправляя письмо с одного баг есть, с другого нет.
Суть:
Имею файл with_pdf_button.html
, который я отправляю по почте. В письме стоит заглушка на месте имени пользователя '££££'
. В коде ниже показано, что функция str_replace
принимает файл, заменяет заглушку на Имя.
<?php
$name = htmlspecialchars(trim($_POST['firstname']));
$email = htmlspecialchars(trim($_POST['email']));
$to = "$name <$email>";
$subject = "Hello! It's Price ";
$message = file_get_contents('../mail_parts/with_pdf_button.html');
$message = str_replace('££££', $name, $message);
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= 'Realm' . "\r\n";
Далее, вызываем функцию и ожидаем письмо
mail($to, $subject, $message, $headers);
Проверяю на тестовом сервере, письмо приходит и все как и ожидается. Выгружаю на продакшн.. в письме добавляется восклицательный знак с пробелом !
Прикрепляю скрин:
Причем чем длиннее будет name тем ближе к левому краю сдвигается !
Кто знает, в чем может быть дело? Почему такое может происходить?
Источник: Stack Overflow на русском