|
|
|
| Недавно при рассылке писем с хостинга, письма отправленные с "Content-type: text/plain", начали приходить с интеравлами между строк, строки текста начали чередоваться пустой строкой.
Экспериментальным путем вычислили, что сей глюк зависит от разделитя строк. Если в теле письма строки разделяются "\r\n", то тело выглядит так:
Текст текст текст
Текст текст текст
Текст текст текст
|
А если строки письма разделяются так "\n", то тело выгдялит так:
Текст текст текст
Текст текст текст
Текст текст текст
|
Естестенно, мне такой расклад не нравится, начал теребить хостера. Они приводят пример с разделителем "\n" и говорят что у них все работает нормально.
Но ведь ранее такого глюка небыло.
Вопрос: Является ли это глюком? Нормально ли то, что при отправке писем и "\r" и "\n", трактуются как "пернос строки"?
Вопрос 2: Если это глюк, то кто его должен исправить? Хостер? или я все скрипты перелапатить?
Я считаю что это глюк у хостер, т.к. ранее такого глюка не наблюдалось, но доказать ему это не могу, т.к не знаю как работает сервер отправки почты, и почему он так "криво" реагирует на это разделитель строк. Мое утверждение о том, что раньше такого глюка небыло хостер игнорирует. На что мен егму указать, чтобы он пошел и подкрутил свой сервер? | |
|
|
|
|
|
|
|
для: tAleks
(21.12.2011 в 22:07)
| |
$EOL = substr(PHP_OS, 0, 3) != "WIN" ? "\n" : "\r\n";
|
| |
|
|
|
|
|
|
|
для: elenaki
(21.12.2011 в 22:13)
| | Есть такая строчка в классе отправки письма. Выбор разделителя происходит, но только для разделителей между заголовками и телом.
И проблема сейчас в теле письма. Тело - это единый кусок, который берется из БД. А в БД он попадает через форму. | |
|
|
|
|
|
|
|
для: tAleks
(21.12.2011 в 22:20)
| | в теле письма тоже можно заменить двойные переносы на одинарные или наоборот.
str_replace() еще никто не отменял. и лучше это делать еще при занесении в базу. | |
|
|
|
|
|
|
|
для: elenaki
(21.12.2011 в 22:23)
| | Да, str_replace() никто не отменял. Но вопрос не в этом.
А в том, что до 19 декабря, все работало нормально, а сегодняшняя рассылка пришла с интервалами между строчками.
И вопрос в том, является ли это глюком со стороны хостера? Должна ли фукнция mail() (или кто-там, сервер или еще кто, неадекватно реагирует на резделитель \r\n), так неадекватно реагировать на этот разделитель?
Можно конечно мне сейчас прелапатить все скрипты. А можно хостеру подкруитить свой сервер. | |
|
|
|
|
|
|
|
для: tAleks
(21.12.2011 в 22:07)
| | Кто-нибудь еще что-нибудь подскажет?
Нашел в мануале, здесь: http://php.net/manual/ru/function.mail.php
Замечание:
Если сообщения не отправляются, попробуйте использовать только LF (\n). Некоторые некачественные агенты пересылки сообщений Unix заменяют LF на CRLF автоматически (что приводит к двойному CR, если использовалось CRLF). Используйте эту меру в крайнем случае, так как это нарушает » RFC 2822.
Правда это из раздела additional_headers (необязательный) . Но ведь это оно? Это указывает на ошибку со стороны хостера? | |
|
|
|
|
|
|
|
для: tAleks
(21.12.2011 в 22:07)
| | Поможет кто-нибудь разобраться с этим делом? Хостер-гад, по прежнему утверждает что никаких настроек не изменял. | |
|
|
|