2012-08-09 3 views
0

У меня есть php 4.x, установленный на сервере, у меня есть скрипт для отправки писем, обычно 1 из 10 писем, которые я получаю, не будет иметь никакого тела, но тема будет там. Код отправки почты ниже.Получение пустых писем с сайта

$headers = "MIME-Version: 1.0 \n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1 \n"; 
$headers .= "From: Contact Form <[email protected]> \r\n"; 
$headers .= "Request Form: $name ($contactid)"; 

$subject = "Request: $name"; 

$body = "Name:&nbsp;$name<br />Email:&nbsp;$email<br />Phone:&nbsp;$phone<br/>"; 

mail("[email protected]",$subject,$body,$headers); 

В чем причина этого. Это проблема с написанным скриптом или SMTP-сервером.

+0

Ваш код предполагают, чтобы выдавать ошибку «Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный T_STRING .....» после правильного кода –

+1

Похоже, у вас есть поддельный цитату в конце этой строки '$ заголовков. = "Reply-To:". $ Name. "';; – martynthewolf

+0

Это была ошибка ввода, я исправил ее, в основном я пытаюсь сказать, что я могу получать письма без ошибок анализа, но 1 из десяти писем будет быть пустым в теле – n92

ответ

2

В соответствии с RFC 2822:
поля заголовка линия, состоящая из имени поля, за которым следует двоеточие («:»), после чего тела поля, и завершается CRLF. Имя поля ДОЛЖНО состоять из печатных символов US-ASCII (то есть символов, которые имеют значения от 33 до 126 включительно), за исключением двоеточия.

Ваш заголовок не соответствует этому формату. Из-за этого некоторые почтовые серверы могут быть более строгими и могут отказаться от ваших писем. Изменить это:

$headers = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$headers .= "From: Contact Form <[email protected]>\r\n"; 
$headers .= "Request-Form: $name ($contactid)\r\n"; 

\ г: Возврат каретки
\ п: Линия подачи

это исправить ли проблему?

+0

@ Винай: ты попробовал свой ответ? это работает? – Jocelyn

Смежные вопросы