2013-01-14 3 views
1

여기에 약간의 문제가 있습니다. swiftmailer를 사용하여 이메일을 보내려고하면 오류가 발생합니다.스위프트 메일러 : 주어진 메일 함의 주소가 RFC 2822, 3.6.2를 준수하지 않습니다.

<?php 

session_start(); 
include("config.php"); 
$dir = dirname(__FILE__); 
$session = $_SESSION[serialize]; 

// Load the SwiftMailer files 
     require_once($dir.'/swift/swift_required.php'); 

$hold = 'TIDAK'; 
// Kondisi - Kondisi yang ada 
if($_GET[phase]=='confirm'){ 
     $to = "[email protected]"; 
     $kalimat = "Invoice Dengan nomor ".$_GET[nosc]." Telah di confirm, mohon di cek di sistem"; 
     $kalimat2 = "Berikut terlampir data Invoice Customer , mohon di pastikan."; 
     $title = "CONFIRMATION NOTIFICATION"; 

}     

       // Convert string dlu 



     $mailer = new Swift_Mailer(new Swift_MailTransport()); // Create new instance of SwiftMailer 
       $message = Swift_Message::newInstance() 
              ->setSubject($title) // Message subject 
         ->setTo(array($to)) // Array of people to send to 
         ->setBcc(array($bcc)) // Bcc: 
              ->setFrom(array($_SESSION[mailadmin] => $_SESSION[namauser].''.store('namasite'))) // From: 
              ->setBody($kalimat, 'text/html'); // Attach that HTML message from earlier 



     // Send the email, and show user message 
       if($hold<>'YA'){ 
        if ($mailer->send($message)){ 
      echo json_encode(array('success'=>true)); 
        } else { 
      echo json_encode(array('success'=>false)); 
        } 
       } 
?> 

그리고 나는 오류를 가지고 JQuery와 통해이 파일을, 내가 불을 지르고에서 가져온이 오류에 데이터를 게시하려고하면.

여기 내 코드입니다

<br /> 
<b>Fatal error</b>: Uncaught exception 'Swift_RfcComplianceException' with message 'Address in mailbox given [] does not comply with RFC 2822, 3.6.2.' in C:\xampp\htdocs\Colosus\core\swift\classes\Swift\Mime\Headers\MailboxHeader.php:319 
Stack trace: 
#0 C:\xampp\htdocs\Colosus\core\swift\classes\Swift\Mime\Headers\MailboxHeader.php(249): Swift_Mime_Headers_MailboxHeader-&gt;_assertValidAddress(NULL) 
#1 C:\xampp\htdocs\Colosus\core\swift\classes\Swift\Mime\Headers\MailboxHeader.php(107): Swift_Mime_Headers_MailboxHeader-&gt;normalizeMailboxes(Array) 
#2 C:\xampp\htdocs\Colosus\core\swift\classes\Swift\Mime\Headers\MailboxHeader.php(71): Swift_Mime_Headers_MailboxHeader-&gt;setNameAddresses(Array) 
#3 C:\xampp\htdocs\Colosus\core\swift\classes\Swift\Mime\SimpleHeaderFactory.php(74): Swift_Mime_Headers_MailboxHeader-&gt;setFieldBodyModel(Array) 
#4 C:\xampp\htdocs\Colosus\core\swift\classes\Swift\Mime\SimpleHeaderSet.php(87): Swift_Mime_SimpleHeaderFactory-&gt;createMailboxHeader('Bcc', Array) 
#5 C:\xampp\htdocs\Colosus\core\swift\classes\Swift\Mime in <b>C:\xampp\htdocs\Colosus\core\swift\classes\Swift\Mime\Headers\MailboxHeader.php</b> on line <b>319</b><br /> 

여러분, 아무도 나를 도울 수 없습니까? 나는 정말로 여기서 무슨 일이 일어나는 지 모릅니다.

답변

12

당신이 SEND 명령 주위에 시도/캐치를 사용하는 경우 그것은 더 나은 :

try { 
    if ($mailer->send($message)){ 
     ... 
    } 

} catch (Exception $e) { 
    $log_error->write_error($e->getMessage() . ';'); 
} 

또는 당신이 그것을 보내기 전에 이메일을 확인하는 경우 :

if(!Swift_Validate::email($email)){ //if email is not valid 
       //do something, skip them or log them 
       $log_error->log($email); 
} 
+1

Swift_Validate와 함께 좋은 팁 - –

+0

Swift_Validate가 마술을했습니다 :) –

1

확인하시기 바랍니다에는 공백이 없습니다 이메일 주소 앞 또는 뒤에 입력하십시오.