2

我正在尝试这段代码(来自http://swiftmailer.org/docs/sending.html):

    require_once 'lib/swift_required.php';

//Create the Transport
$transport = Swift_SmtpTransport::newInstance('localhost', 25);

//Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

//Create a message
$message = Swift_Message::newInstance('Wonderful Subject')
  ->setFrom(array('john@doe.com' => 'John Doe'))
  ->setBody('Here is the message itself')
  ;

//Send the message
$failedRecipients = array();
$numSent = 0;
$to = array('receiver@domain.org', 'other@baddomain.org' => 'A name');

foreach ($to as $address => $name)
{
  $message->setTo(array($address => $name));
  $numSent += $this->send($message, $failedRecipients);
}

printf("Sent %d messages\n", $numSent);

问题是,如果我向错误的域 swiftmailer 发送电子邮件,则将其识别为正确发送的电子邮件并且$failedRecipients为空。在我的邮箱中,我返回了失败通知。

为什么 Swiftmailer 不将此邮件识别为失败,并且不填充$failedRecipients Array

4

1 回答 1

3

Swiftmailer 只负责将电子邮件交给邮件服务器。其他一切都与 Swiftmailer 无关。

你得到的是一个退回邮件,你需要自己处理它们,因为电子邮件本身实际上是一个没有被第一台服务器拒绝的语法邮件地址。

顺便说一句,任何其他邮件库甚至 phpmail函数都是如此。您可能正在寻找退回处理应用程序或代码。

相关:使用 PHP 处理退回电子邮件?

于 2011-08-09T12:04:03.660 回答