2013-03-27 2 views
0

Я новичок в PHPMailer, и я хочу отправить HTML-письмо с этим классом. Но я получаю сообщение, что тело пуст.PHP mailer (пустой текст сообщения)

Это мой код:

<?php   

$bericht .= 'my html and php code that format the mail'; 

require_once('class.phpmailer.php'); 

$mail    = new PHPMailer(); // defaults to using php "mail()" 

$body    = preg_replace('/[\]/','',$bericht); 

$mail->SetFrom('[email protected]', 'Name'); 

$address = "[email protected]"; 
$mail->AddAddress($address, ""); 

$mail->Subject = "PHPMailer Test Subject via mail(), basic"; 

$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test 

$mail->MsgHTML($body); 


if(!$mail->Send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
    echo "Message sent!"; 
} 

Что я делаю неправильно?

+0

Вы пытались отобразить свое '' тело, чтобы убедиться, что оно действительно содержит что-то? возможно, что-то не так раньше (например, в части, которая заполняет '$ bericht') – Ale

+0

Рассмотрите возможность использования'

ответ

1

Я думаю, что есть проблемы с вашим preg_replace(). Если я пытаюсь запустить это на моем сервере я получаю это предупреждение:

Предупреждение: preg_replace(): Компиляция не удалось: отсутствующий заканчивающуюся] для класса символов со смещением 3

Пробовали ли вы код без preg_replace(), т.е., пройдя $bericht до MsgHTML()?

+0

Вот и все, странно, потому что это происходит прямо из файл примера phpmailer :) – AgeDeO

+1

escape [символ, как preg_replace ('/ \\ [\\] /', '', $ bericht) – Lappies

0

я думаю, что есть ошибка в вас код

$bericht .= (my html and php code that format the mail); 

должен быть

$bericht = 'my html and php code that format the mail'; 

, а затем вместо этого

$body    = $bericht; 
$body    = preg_replace('/[\]/','',$body); 

его легче сделать это

$body    = preg_replace('/\[\]/','',$bericht); 
+0

Изменен код, но это не помогло. – AgeDeO

+0

попробуйте распечатать или echo'ing body, чтобы посмотреть, что он держит – Lappies

+0

Я внес изменения в свой код, проверьте его, вам нужно сбежать из [персонажа, скопировать строку, в которой вы используете preg_replace, теперь нужно работать – Lappies

0

Я неправильно понимаю, почему вам нужно сделать это INCREMENT с переменной, если она не нужна.

$bericht .= ...; 

И да, где значение строки внутри кавычек прямо там?