2013-06-03 74 views
1

壞的郵件我有一個最大的5封電子郵件是通過斯威夫特梅勒被髮送的,但我從來不知道有多少人將是無效的。 無效的電子郵件=「」獲取swiftmailer忽略PHP

我想知道是否有辦法讓swift郵件忽略無效的電子郵件而不是發送致命錯誤而不發送任何內容。我在網上看,我看到他們提到我應該嘗試去捕捉那些不好的電子郵件,但是我不太明白語法或他們想說什麼,無論如何,這裏是我的代碼到目前爲止

// send歡迎信 功能SEND_EMAIL($資訊){

//format each email 
    $body = format_email($info,'html'); 
    $body_plain_txt = format_email($info,'txt'); 

    //setup the mailer 
    $transport = Swift_MailTransport::newInstance(); 
    $mailer = Swift_Mailer::newInstance($transport); 
    $message = Swift_Message::newInstance(); 
    $message ->setSubject('Your Party Information'); 
    $message ->setFrom(array('[email protected]' => '[email protected]')); 
    $message ->setTo(array($info['Email1'],$info['Email2'],$info['Email3'],$info['Email4'],$info['Email5'] => $info['$firstname'])); 

    $message ->setBody($body_plain_txt); 
    $message ->addPart($body, 'text/html'); 

    $result = $mailer->send($message); 

    return $result; 

} 

$emails1 = $user2['Email'] or " "; 
$emails2 = $user2['Email'] or " "; 
$emails3 = $user2['Email'] or " "; 
$emails4 = $user2['Email'] or " "; 
$emails5 = $user2['Email'] or " "; 
+0

這不是答案,但是您將$ user2 ['Email']分配給五個不同的變量。 – andrewsi

+0

我的壞忘了更改用戶應該對應的郵件數量 – user2444298

回答

2

如何簡單地剝離無效的電子郵件事前,由若郵件是有效的與filter_var檢查?

... 

$emails = array(); 
if (filter_var($info['Email1'], FILTER_VALIDATE_EMAIL)) 
    $emails[] = $info['Email1']; 
if (filter_var($info['Email2'], FILTER_VALIDATE_EMAIL)) 
    $emails[] = $info['Email2']; 
if (filter_var($info['Email3'], FILTER_VALIDATE_EMAIL)) 
    $emails[] = $info['Email3']; 
if (filter_var($info['Email4'], FILTER_VALIDATE_EMAIL)) 
    $emails[] = $info['Email4']; 
if (filter_var($info['Email5'], FILTER_VALIDATE_EMAIL)) 
    $emails[$info['Email5']] = $info['$firstname']; 

... 

$message ->setTo($emails); 
+0

我很困惑於如何工作我想只是簡單的複製和粘貼的數字,它停止了給我的錯誤信息,但沒有電子郵件發送。 – user2444298

+0

@ user2444298它使用'filter_var'功能通過不同的郵件進行檢查,如果他們確認這將其添加到'$ emails'陣列。只有經過驗證的電子郵件被添加到'$ emails'陣列,因此使用'$ MESSAGE-> setTo($電子郵件)'當(如果語法是正確的,你的榜樣,我不使用swiftmailer),那麼這將意味着我們已經刪除(或者說,從未添加過)對陣列無效的電子郵件。如果你想測試哪些電子郵件*已被驗證,你可以在所有'filter_var'之後使用'print_r($ emails)',或者使用'var_dump($ emails)'。 – h2ooooooo