首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对于无效邮件,Swift邮件不会捕获异常

对于无效邮件,Swift邮件不会捕获异常
EN

Stack Overflow用户
提问于 2015-06-30 11:28:02
回答 1查看 1.1K关注 0票数 3

我使用Swift邮件发送电子邮件,它不是捕获无效的电子邮件地址的异常&抛出一个错误。

我的代码是:

代码语言:javascript
运行
复制
try
{
    $message->setBody($html, "text/html");
    $result = $mailer->send($message);
}
catch(Swift_RfcComplianceException $e)
{
    echo "Address ".$email." seems invalid";
}

对于不符合RFC的电子邮件地址,它只抛出以下错误:

代码语言:javascript
运行
复制
Fatal error: Uncaught exception Swift_RfcComplianceException with message Address
in mailbox given [ex@example@ex.com] does not comply with RFC 2822, 3.6.2.
thrown in /swiftmailer/classes/Swift/Mime/Headers/MailboxHeader.php on line 352

有人能帮忙解决吗?简单地说,它应该捕获一个异常,这样其他函数就不会受到影响。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-30 19:59:16

您正在将try ... catch-block包装在快速邮件的组合中的错误部分。

手册摘录

如果根据可能包含无效电子邮件地址的数据源自动添加收件人,则可以通过使用Swift_Validate::email($email)验证地址并仅添加验证地址来防止可能的异常。另一种方法是将您的setTo()setCc()setBcc()调用包装在一个try-catch块中,并在catch块中处理Swift_RfcComplianceException

因此,您应该在向Swift_Message-object添加地址时使用它,如下所示:

代码语言:javascript
运行
复制
$message = Swift_Message::newInstance();

// add some message composing here...

$email = "somewrongadress.org";
try {
    $message->setTo(array($email));
} catch(Swift_RfcComplianceException $e) {
    echo "Address ".$email." seems invalid";
}

此外,我建议$result = $mailer->send($message);也尝试捕获,因为如果有其他问题,它可能会抛出异常。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31137017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档