2009-08-07 108 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); 
} 
相关问题