2013-01-14 73 views
1

這裏有一點問題,當我嘗試使用swiftmailer發送電子郵件時,出現錯誤。Swift Mailer:給出的郵箱地址[]不符合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

它的更好,如果你使用一個try/catch發送指令周圍:

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

請確保沒有空格在給定的電子郵件地址之前或之後。

相關問題