Восклицательный знак в теле письма mail
Столкнулся с интересной и непонятной ситуацией - в теле письма, которое формировалось скриптом странным образом в различных местах появлялся восклицательный знак. Поскольку, письмо было в формате text/html, восклицательный знак иногда не просто “проскакивал” в письме, но и “ломал” ссылки, картинки и таблицы.
Т.е. вполне возможны были ситуации вроде такой:
<img sr!c=
Поиск по сайтам-форумам (сомневался как искать - фразы вроде mail восклицательный знак, восклицательный знак в письме приводили на страницы и обсуждения о правилах использования знака в письмах.. И никаких технических деталей..
Поиск по англоязычным сайтам mail Exclamation Mark - аналогично - я узнал, что может означать восклицательный знак в письмах - точнее, что подразумевал отправитель, проставляя “факториалы” в письмах.
Если честно, не сразу удалось сообразить что к чему…
Скрипт PHP функцией mail (стандартной, без всяких обёрток) отправлял письмо $message на несколько ящиков. При сохранении переменной $message в файл и дальнейшим просмотром в текстовом редакторе никаких восклицательных знаков не было.
После просмотра нескольких сохранённых копий сообщений, наконец, сообразил - в письме не было переводов строки. Точнее, переводы строки были, но были и длинные строки, которые, видимо и разделялись восклицательным знаком.
Добавление нескольких “\n” помогло исправить ситуацию.
Метки: php
Спасибо! полдня промучался, пока искал, откуда восклицательный знак берется - в отправляемом письме нету, а в ящик приходит - есть..
Спасибо автор. То что нужно
Спасибо автору большое! Как долго искал как убрать восклицательные знаки из письма, а оказалось всё так просто:)
[7sites.ru]