2013-10-26 3 views
1

В следующем коде сообщение $ message имеет новые строки при отображении в html (завернутые в теги pre), но не показывает их в письме (я отправил его в свой gmail):Использование php mail не вставляет новые строки

error_reporting(E_ALL); 
ini_set('display_errors', 'on'); 
include "../code/dbstuff.php"; 
$to = "[email protected]"; 
$from = ""; 
function processMessage($arr) { 
    global $from; 
    $message = "Hello from me\n\n\n"; 
    foreach ($arr as $key => $val) { 
    if (isset($_POST[$key])) { 
     $message.=$val . ": " . $_POST[$key] . "\n\n"; 
    } else { 
     $message.=$val . ": empty" . "\n\n"; 
    } 
    } 
    $message.= "Date: " . date('l F d, Y'); 
    from = $_POST['contact_email']; 
    return $message; 
} 

$message = processMessage(array(
    "firstname" => "First Name", 
    'lastname' => 'Last Name' 
)); 
//save in db 
$conn=new db(); 
$conn->insertMessage($from,$message); 
mail($to,$message,"From: $from"); 
header("Location: thankyou.php"); 
+1

С одной стороны, ваш 'почта()' функция отсутствует «субъект», который может вызвать проблемы. –

+0

Это было на самом деле, сообщение переполнено предметом. Проблема, о которой сообщал клиент, была, вероятно, всей записью, заполненной предметом. – HMR

+0

Итак ... проблема решена? –

ответ

2

заголовки отсутствуют в «субъект» параметр, и это, несомненно, вызовет проблемы.

Это:

mail($to,$message,"From: $from"); 

Следует читать как:

mail($to,$message,$subject,"From: $from"); 

, добавляя что-то аффект:

$subject = "Incoming message";` 
0

В HTML-почте пробелы игнорируются. Вместо этого используйте <br/>.
Если вы хотите использовать в своем коде \n вы должны использовать content-type: text/plain

+1

Спасибо за ваш ответ, но я не отправляю html-сообщения. Согласно документации по электронной почте текст по умолчанию: http://php.net/manual/en/function.mail.php Я попробую \ r \ n вместо \ n, хотя исходный код, используемый \ n, и клиент начал жалуясь после того, как я изменил код. Возможно, они никогда не тестировали код, над которым я работал, и он уже не показывал новые строки. – HMR

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