2009-08-07 116 views
2

我使用SwiftMailer發送郵件,如果我嘗試使用虛擬電子郵件地址,例如,如果我在電子郵件地址中輸入「asdf」,則會得到此未捕獲的異常。致命錯誤:未捕獲的異常..使用php SwiftMailer

Fatal error: Uncaught exception 'Swift_RfcComplianceException' with message 
'Address in mailbox given [asdf] does not comply with RFC 2822, 

我不是很有經驗的OO ..所以不知道如何處理這個問題?其實我只是想讓它失敗,如果電子郵件地址無效,但它不應該拋出致命的錯誤消息。有什麼建議麼?

謝謝。

回答

3

您需要捕獲異常,這樣

try 
{ 
    // Your code to send the email 
} 
catch (Swift_RfcComplianceException $e) 
{ 
    print('Email address not valid:' . $e->getMessage()); 
} 

這不是OO的東西,它是一個exceptions的事情。

+0

你就在那裏..感謝它的工作。 – TigerTiger 2009-08-07 15:07:17

0

我認爲這意味着給定的電子郵件地址不尊重電子郵件地址標準。

+0

抱歉,我沒有閱讀問題的最後部分:) – mck89 2009-08-07 14:58:58

0

如果根據您在錯誤消息中看到的內容確定電子郵件地址有效,請確保地址中沒有前導或尾隨空格。例如。運行trim($ email_address)。

1

此外,您還可以在發送之前驗證電子郵件:

if(!Swift_Validate::email($email)){ //if email is not valid 
       //do something, skip them 
       $log_error->log($email); 
} 
相關問題