Решение Каранкана, вероятно, работает, но основная причина - это то, что говорил Хобо. Функция mail
вставляет разрыв строки через каждые 900 символов (я думаю). Поэтому, если вы создаете ваше сообщение $ с кучей $message .= "more text";
, вы столкнетесь с этой ошибкой, как только длина этой строки превысит 900 символов. Это сбивает с толку, потому что пробелы кажутся прерывистыми, особенно если вы создаете сообщение HTML, потому что иногда разрывы строк появляются в совершенно благоприятных местах.
Простое решение - добавить \r\n\
в конец строки.
Интересно, что эти формы работают:
$message .= "<tr><td>1</td><td>2</td>\r\n";
$message .= '<tr><td>1</td><td>2</td>'."\r\n";
Но это не так:
$message .= '<tr><td>1</td><td>2</td>\r\n';
\r\n
должен быть заключен в двойные кавычки, в противном случае символы будут просто добавляться в текст вместо создания возврата каретки / переноса строки.