Функция PHP mail добавляет ложный символ в Windows

#php #email

#php #Адрес электронной почты

Вопрос:

Я пытаюсь использовать встроенную функцию «mail» в PHP, которая отлично подходит для моих нужд в размещенной среде LAMP с SiteGround. В этом случае я использую свой собственный сервер в Windows, и мои сообщения приходят с ложным символом (заглавной буквой «B»), добавленным к основному тексту. Я попытался заменить $mailBody в вызове простой строкой ‘abc’, и ложная заглавная буква ‘B’ по-прежнему добавляется. Я предполагаю, что проблема вызвана несоответствием кодировки символов. Я попытался изменить «Content-type» в заголовке с text / plain на text / html, а кодировку с windows-1251 на utf-8, ни один из которых не имеет никакого значения.

 $headers  = "MIME-Version: 1.0rn";
$headers .= "Content-type: text/plain; charset=windows-1251rn";
$headers .= "From: $confirmation_senderrn";

$bMailSuccess = mail ($strEmail, $business_name . ' Booking Confirmation', $mailBody, $headers);
  

php.ini

 SMTP = internalmail
  

Как вы можете видеть, почта направляется на сервер с именем internalmail, и журналы на этом сервере предполагают, что ложный символ уже является частью основного текста, который он получает. Может кто-нибудь предложить исправление (желательно, кроме «установить какой-либо другой почтовый клиент»)?

Комментарии:

1. Если вы используете Windows, вам необходимо проверить настройки вашего программного обеспечения mta / smtp. B не будет отображаться из-за несоответствия кодировки, вы получите случайный мусор или неправильные символы, а не новый символ в НАЧАЛЕ строки.

2. Спасибо, Марк. Вы имеете в виду настройки на SMTP-сервере, который я использую для доставки почты?

3. что-то вставляет это B. если этого нет в вашем собственном коде, то это либо в php-> mailclient, либо что-то в самом почтовом клиенте.