2013-10-04 4 views
2

Я пытаюсь отправить подтверждение по электронной почте с помощью phpmailer, но застрял в проблеме. Содержимое почты находится на странице page_mail.php, и я использую php mailer для отправки этого контента, но когда я получаю электронное письмо, он возвращает «1».PHP-переменные с использованием phpmailer

Может ли кто-нибудь из вас мне помочь?

Вот мой код

$req = mysql_query("SELECT * FROM users WHERE email='[email protected]'") or die(mysql_error()); 
$info = mysql_fetch_array($req); 

$body = include('page_mail.php'); 
    echo $body; 

$mail = new PHPMailer(); 
$mail->IsSendmail(); 
$mail->AddAddress("[email protected]"); 
$mail->Subject = "MAIL TEST"; 
$mail->MsgHTML($body); 
$mail->AltBody = "Ce message est au format HTML, votre messagerie n'accepte pas ce format."; 
$mail->Send(); 

ini_get('sendmail_path'); 

ответ

1

Вы должны использовать некоторые методы буферизации вывода вместо $body = include('page_mail.php');. Смотрите пример из official documentation:

$string = get_include_contents('somefile.php'); 

Где get_include_contents() определяется следующим образом:

function get_include_contents($filename) { 
    if (is_file($filename)) { 
     ob_start(); 
     include $filename; 
     return ob_get_clean(); 
    } 
    return false; 
} 

EDIT:

Если вы собираетесь использовать какие-то глобальные переменные в page_mail.php, которые определены в вашей основной PHP-файл, то я рекомендую использовать это решение: https://stackoverflow.com/a/10144260/925196.

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