У меня есть форма на сайте моей компании, в которой указываются имя, номер телефона и комментарии (и еще несколько вещей). В поле для комментариев можно вводить до 5000 символов - большое ограничение для очень многословных клиентов. Содержимое действующей формы отправляется с использованием формы php mail в виде простого электронного письма в наш отдел продаж.
По какой-то причине, если комментарии длиннее, чем около 1000 символов, в них будут вставлены восклицательный знак, разрыв строки, а иногда и отступ. Обратите внимание, что это относится только к электронной почте; если в форме есть ошибка, данные вставляются в форму и помечаются ошибки, а в комментариях еще нет восклицательных знаков + разрывы строк.
Я нашел одно сообщение на форуме о том, что существует ограничение в 990 символов, которое ведет к этой проблеме.
Кто-нибудь знает причину? Кто-нибудь знает довольно легко исправить это?
Соответствующий код PHP:
$to = $email;
$subject = "Website Order Received: $offer";
$contents = "
Order Form Received -\n
Name: $name\n
Company: $company\n
Email: $email\n
Phone: $phone $phoneExt\n
Order Contents:\n" .
($offer == 'web-demo' ? "- I want a live software demonstration.\n" : "") .
($offer == 'pricing' ? "- I'd like pricing information.\n" : "") .
($offer == 'holiday-pricing' ? "- I'd like to sign up before December 31st for the special holiday offer!\n" : "") .
($offer == 'bid-help' ? "- Please give me marketing materials and other assistance for winning bids.\n" : "") .
($offer == 'demo-cd' ? "- Send me the full-version demonstration CD.\n" : "");
if (!empty ($comments)) {
$comments = str_replace("
", "\n", $comments); // Preserves line breaks in the comments.
$contents = $contents."\nComments: $comments\n\n";
}
$contents = str_replace("\n", "\r\n", $contents);
mail($to, $subject, $contents);