Статус доставки Swift Mailer

, я еще не попробовал вложенные репозитории мерзавца, потому что я не столкнулся с ситуацией, где я должен. Поскольку я читал на , #git мерзавец канала , кажется, запутывается вложением репозитории, т.е. Вы пробуете мерзавцу-init в репозитории мерзавца. Единственный способ управлять вложенной структурой мерзавца состоит в том, чтобы или использовать git-submodule или Android repo утилита.

Что касается той резервной ответственности, которую Вы описываете, я говорю делегат это... Для меня я обычно помещал репозиторий "источника" для каждого проекта в сетевом диске на работе, которая регулярно сохраняется IT-techs их предпочтительной стратегией резервного копирования. Это просто, и я не должен волноваться об этом.;)

29
задан DavidW 24 April 2011 в 03:03
поделиться

1 ответ

Существует как минимум три уровня проверок, которые поддерживает SwiftMailer, которые сообщат о нескольких типах сбоев доставки.

1) Всегда проверяйте код возврата в командах SwiftMailer send () или batchSend () на ненулевой результат. Из документации :

//Send the message
$numSent = $mailer->send($message);

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

/* Note that often that only the boolean equivalent of the
   return value is of concern (zero indicates FALSE)

if ($mailer->send($message))
{
  echo "Sent\n";
}
else
{
  echo "Failed\n";
}

2) Используйте функцию сбоев по ссылке , чтобы узнать, были ли определенные адреса отклонены или не могли быть завершены :

//Pass a variable name to the send() method
if (!$mailer->send($message, $failures))
{
  echo "Failures:";
  print_r($failures);
}

/*
Failures:
Array (
  0 => receiver@bad-domain.org,
  1 => other-receiver@bad-domain.org
)
*/

3) В некоторых ситуациях вам может потребоваться включить также возвратные квитанции , которые подтверждают, что читатель электронной почты отображал сообщение. Они часто отключаются или игнорируются пользователями или их приложениями электронной почты, но если вы получите квитанцию, это очень подтверждает. Также обратите внимание, что это может произойти через много дней после отправки, поэтому это не синхронный тест в реальном времени, как два выше.

$message->setReadReceiptTo('your@address.tld');

Однако, поскольку в доставке SMTP задействовано так много переменных и уровней систем, как правило, невозможно быть абсолютно уверенным, что сообщения были доставлены. Лучшее, что вы можете сделать, это убедиться, что вы используете первые две проверки выше. Если вы используете СВОЙ собственный сервер для службы SMTP, то вы также должны следить за своими журналами и очередями, как отметил Марк Б.

Еще один пример, который подчеркивает необходимость ознакомления с используемой системой электронной почты. Я только начал использовать Swift_AWSTransport Джона Хоббса для Amazon Web Services SES. SES имеет возможность возвращать XML-ответ с диагностической информацией для каждого сообщения, отправленного через него. Хотя SwiftMailer по своей сути не понимает, как использовать этот XML-ответ, я считаю его неоценимым для устранения неполадок при доставке. Я упоминаю об этом, потому что обнаружил, что в некоторых случаях приведенные выше проверки # 1 и # 2 будут успешными для SwiftMailer, однако SES не понравилось что-то в моем формате сообщений. Поэтому я рассматриваю синтаксический анализ этого XML в качестве дополнительной проверки.

38
ответ дан 28 November 2019 в 01:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: