PHP Mail () отправлено в Outlook, нарушает код - PullRequest
0 голосов
/ 16 февраля 2012

Я посмотрел здесь, но не смог найти ответ относительно проблемы, с которой я столкнулся.

Наиболее похожими на мои проблемы являются следующие: письма, отправленные с php-почтой, не отображаются правильно в outlook , но я проверил, и решение не сработало для меня.

Я в основном пишу PHP-скрипт, который рассылает электронные письма, с таблицей в нем. Проблема, однако, в том, что, если я получаю его в gmail, электронное письмо отображается нормально, но даже не приходит в Outlook.

Изучение исходного кода электронных писем, которые попадают в Outlook, по какой-то причине показывает разрыв строки (снова отсутствует в gmail)

Например:

<td>  xyz@aaa
tt.com </td>

Когда оно должно отображаться как:

<td>  xyz@aaatt.com </td>

В моем php-коде я даже пытаюсь удалить возвраты строк и пробелы (так как в письмах не должно быть пробелов)

$rmv = array("\n");
$lead_email = str_replace($rmv, "", $lead_email);

$rmv = array("\r");
$lead_email = str_replace($rmv, "", $lead_email);

$rmv = array(" ");
$lead_email = str_replace($rmv, "", $lead_email);

Для справки, мой почтовый заголовок выглядит следующим образом:

$headers  = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
$headers .= 'From: helpdesk@viatechcrm.com' . "\n";

Кстати, я должен использовать iso-8859-1 или utf-8? Я иногда встречаю имена с европейскими символами.

Любая помощь с благодарностью!

РЕДАКТИРОВАТЬ: Итак, я изучал исходный код, и нашел что-то интересное. Сообщение действительно длинное, но показывает только 3-4 строки. Я обнаружил, что он обрезается примерно на 991 символе, таким образом, электронное письмо разрывается ... Это как-то связано с Mime-версией 1.0? Как я могу увеличить количество символов, которые он может получить? Я пытался добавить '\ r \ n' после каждой строки таблицы, но по какой-то причине одно из 4 писем по-прежнему не появляется

РЕДАКТИРОВАТЬ 2 : Спасибо всем за помощь! Я, наконец, понял это в сообщении на форуме, датированном в 2009 году. Для дальнейшего использования обратитесь к последнему сообщению:

http://forums.devarticles.com/php-development-48/formatting-a-newline-line-break-in-php-html-output-5274.html

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Вы должны использовать UTF-8, если у вас есть не алфавитно-цифровые символы. Вы должны заканчивать каждую строку заголовка "\ r \ n", а не просто "\ n". Не уверен, что это решит вашу проблему, так как я не могу проверить, но это то, что вы должны все же исправить.

0 голосов
/ 17 февраля 2012

Похоже, вы только добавили "\ r \ n" в HTML-часть вашего сообщения. Все строки заголовка должны заканчиваться на "\ r \ n", а не только строки в теле.Некоторые клиенты и серверы справляются только с «\ n», но им действительно это не нужно (см. RFC 2822 ), отсюда и несоответствия между Gmail и Outlook.

...