可以发送邮件但仍然抛出异常吗?
Could email be sent but still throws an exception?
所以我想发送一封电子邮件并在数据库中记录它已成功发送,我是这样做的:
首先,尝试向用户发送包含产品信息的电子邮件
其次,检查邮件是否发送成功。如果是,则在数据库中记录发送成功。
但如果发送电子邮件失败(抛出异常),我想捕获该异常并return一条错误消息。
我的问题是:
是否存在邮件已发送但仍然抛出异常的情况?
因此,代码 return 认为电子邮件未发送的错误.. 但它实际上已发送,之后抛出异常。
// pseudo code
try{
$is_sent = send_email();
if($is_sent){
$db->email_was_sent();
}
}catch(Exception $e){
return 'Email was not sent. An exception';
}
Is there a case that the email gets sent but still throws an exception?
视情况而定。
如果为单个收件人发送电子邮件,则可能导致以下任何 3 种情况:
- 电子邮件已发送给收件人
- 电子邮件未能发送给收件人
- 出现异常
对于这种情况,这将是 SwiftMailer 电子邮件客户端的未记录行为
发送电子邮件但仍然抛出异常。
如果将电子邮件发送给多个收件人,则可能会导致以下任何 3 种情况:
- 电子邮件已发送给所有收件人
- 电子邮件未能发送给一位或多位收件人
- 出现异常
对于另一种情况,电子邮件可以发送给某些收件人,但仍会引发异常。
https://swiftmailer.symfony.com/docs/sending.html#using-the-send-method
AbstractSmtpTransport::send()
表示电子邮件可能无法发送给一个或多个收件人。
https://github.com/swiftmailer/swiftmailer/blob/v6.2.1/lib/classes/Swift/Transport/AbstractSmtpTransport.php#L178
所以我想发送一封电子邮件并在数据库中记录它已成功发送,我是这样做的:
首先,尝试向用户发送包含产品信息的电子邮件
其次,检查邮件是否发送成功。如果是,则在数据库中记录发送成功。
但如果发送电子邮件失败(抛出异常),我想捕获该异常并return一条错误消息。
我的问题是: 是否存在邮件已发送但仍然抛出异常的情况?
因此,代码 return 认为电子邮件未发送的错误.. 但它实际上已发送,之后抛出异常。
// pseudo code
try{
$is_sent = send_email();
if($is_sent){
$db->email_was_sent();
}
}catch(Exception $e){
return 'Email was not sent. An exception';
}
Is there a case that the email gets sent but still throws an exception?
视情况而定。
如果为单个收件人发送电子邮件,则可能导致以下任何 3 种情况:
- 电子邮件已发送给收件人
- 电子邮件未能发送给收件人
- 出现异常
对于这种情况,这将是 SwiftMailer 电子邮件客户端的未记录行为 发送电子邮件但仍然抛出异常。
如果将电子邮件发送给多个收件人,则可能会导致以下任何 3 种情况:
- 电子邮件已发送给所有收件人
- 电子邮件未能发送给一位或多位收件人
- 出现异常
对于另一种情况,电子邮件可以发送给某些收件人,但仍会引发异常。
https://swiftmailer.symfony.com/docs/sending.html#using-the-send-method
AbstractSmtpTransport::send()
表示电子邮件可能无法发送给一个或多个收件人。
https://github.com/swiftmailer/swiftmailer/blob/v6.2.1/lib/classes/Swift/Transport/AbstractSmtpTransport.php#L178