2014-10-01 4 views
1

나는 다음과 같은 설정이 : 나는 그것을 보내려고 할 때 phpmailer의 않는 str_replace 여러 번

 $message = file_get_contents('./site/resources/external/template.html'); 
    $message = str_replace('[name]', $email['name'], $message); 
    $message = str_replace('[password]', $password, $message); 

    require './site/resources/external/PHPMailer/PHPMailerAutoload.php'; 
    $mail = new PHPMailer(); 
    $mail->SMTPSecure = 'tls'; 
    $mail->Username = "mymail"; 
    $mail->Password = "mypassword"; 
    $mail->AddAddress($email); 
    $mail->FromName = "Marc"; 
    $mail->CharSet = 'UTF-8'; 
    $mail->Subject = "Din nye adgangskode"; 
    $mail->msgHTML($message, dirname(__FILE__)); 
    $mail->Host = "smtp.live.com"; 
    $mail->Port = 587; 
    $mail->IsSMTP(); 
    $mail->SMTPAuth = true; 
    $mail->From = $mail->Username; 
    $mail->Send(); 

그러나, 그것은 전송하지 않습니다.

그러나 나는 다음과 같이 수행 할 때 내가 할 때

그러나 다음

$mail->msgHTML(str_replace('[password]', $password, file_get_contents('./site/resources/external/template.html')), dirname(__FILE__)); 

가 문제없이 전송한다.

그럼 템플릿에 여러 변수를 추가 할 수 있습니까?

+0

"보내지 않습니다"는 유용한 설명이 아닙니다. 정확히 무엇이 실패하고 있습니까? 어떤 오류가보고 있습니까? Smarty 또는 Twig와 같은 템플릿 엔진을 사용해 볼 수 있습니다. – Synchro

답변

1

내가 $message의 변수 치환이 코드를 파괴 할 수있는 방법을 볼 수 없지만, 배열 인수를 사용 str_replace의 여러 대체 양식이있다 :

$mail->msgHTML( 
    str_replace( 
    array('[password]','[name]'), 
    array($password, $email['name']), 
    file_get_contents('./site/resources/external/template.html') 
), 
    dirname(__FILE__) 
); 

나는 다른 무언가가 잘못 의심하여 코드가 있지만 유용 할 수 있습니다.

+0

감사 한 친구가되었습니다. –