Я лично не вижу способа сделать это, но я надеюсь, что может быть умный хак, чтобы заставить его работать.
Мы должны рассылать регулярные электронные письма клиентам, у многих из которых истекает срок действия электронных писем, и это приводит к сбою доставки почты. Чтобы база данных была точной и чистой, я хотел бы удалить их запись из базы данных, когда им не удается отправить электронное письмо.
Итак, в настоящее время это выглядит примерно так:
<cfloop query="rsCustomers">
<cftry>
<cfmail to="rsCustomers.Email" from="[email protected]" failto="[email protected]" subject="Whatever">
[email text here]
</cfmail>
<cfcatch type="any">
<!--- just to skip this record when it fails to send --->
</cfcatch>
</cftry>
</cfloop>
Я мог запустить запрос в области перехвата, чтобы удалить записи, когда в записи была ошибка (например, неверный адрес электронной почты). Но ничего не происходит, когда почта не может быть доставлена. Я получаю уведомление об ошибке на свой почтовый ящик, но их могут быть сотни, поэтому их трудно вручную просмотреть и удалить из базы данных.
Можно ли как-то «поймать» сообщения, которые не удалось отправить, а затем отправить их обратно в запрос на удаление из базы данных?
cfmail
. Я знаю, что одна из наших почтовых служб, которую мы используем, отправит нам запрос API для возвращенных писем, и мы можем затем проанализировать оттуда. Но вы ничего не получите от результата cfmail. - person beloitdavisja   schedule 27.01.2016