2012-11-29 5 views
0

PHPMailer을 사용하여 HTML 이메일을 보냅니다. 처음에는 ob_start을 호출 한 후 HTML 및 PHP 변수를 사용하여 전자 메일의 HTML 본문을 설정했습니다. 어떤 이유이메일을 보내지 않는 PHPMailer - 간단한 것을 누락 되었습니까?

<?php 

ob_start(); 
?> 

..... a bunch of VALID HTML 

<? 
$body = ob_get_contents(); 

require_once('class.phpmailer.php'); 

// Send to Me 
$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch 
$mail->IsSendmail(); // telling the class to use SendMail transport 

try { 
    $mail->AddReplyTo('[email protected]', 'Company Name'); 
    $mail->AddAddress('[email protected]', 'My Name'); 
    $mail->SetFrom('[email protected]', 'Company Name'); 
    $mail->Subject = "Contact Form Confirmation"; 
    $mail->AltBody = "This is a contact form submitted through the main website."; 
    $mail->WordWrap = 50; // set word wrap 
    $mail->Body = $body; 
    $mail->IsHTML(true); // send as HTML 

    $mail->Send(); // Try to send email 

    } catch (phpmailerException $e) { 
     echo $e->errorMessage(); //Pretty error messages from PHPMailer 
    } catch (Exception $e) { 
     echo $e->getMessage(); //Boring error messages from anything else! 
} 
// end try 

,이 라인 :

$mail->Body = $body; 

보낼 수 없습니다 이메일을 야기

여기 내 코드입니다. 내가 다음과 같이 교체하면 :

$mail->Body = "This is a test email."; 

이메일이 완벽하게 전송됩니다.

$body에 포함 된 HTML이 머리에 CSS가있는 유효한 HTML 페이지이고 자바 스크립트 등이없는 경우 전자 메일을 보내지 않는 이유는 무엇입니까?

다른 방법이 있습니까? 도와주세요!!

+0

var_dump ($ body). 그것의 중간에 재설정되었을 수도 있습니다 (포함 된 내용을 알려주지 않음). –

+0

좋은 아이디어 !! 무슨 일이 일어나는지보기 위해 어디에서 그걸 넣을 수 있을까요 ?? – adamdehaven

+0

예외가 발생하고 있습니까? 그렇다면 메시지는 무엇을 말합니까? – scriptin

답변

0

은 팩스 번호를 포함하는 경우 어떤 이유로, 이메일이 전송되지 않은, 밝혀졌습니다. 전혀 이상해. 필자는 전체 마크 업을 테스트 한 후 10 자리 전화 번호 만 제거한 후 이메일이 마침내 통과했습니다. 나는 초보자가 아니에요. 문자 그대로 제가 제거한 유일한 텍스트이고 이메일은 잘 보냈습니다.

아무에게도이 사실을 알지 못 했습니까?

관련 문제