Есть возможность вручную удалять сообщения из почтовой очереди.
B693A1601A9 154654 Thu Mar 1 16:20:22 username@domain.tld
(connect to gmail.cm[74.125.224.168]:25: Connection timed out)
username@gmail.cm
Будет удалено postsuper -d B693A1601A9
.
Можно ли вручную вернуть сообщения из очереди почты?
Однако вы, вероятно, имеете в виду принудительное отклонение получателя, что является реальной проблемой, а не сообщением.
Спрашивал раньше в другом месте в 2011 году. После настройки конфигурации Wietse ниже вы можете postmap
, postfix reload
, и очистить очередь, заставляя эту пару получатель / сообщение врезаться в новое правило транспорта.
Боб Пру: Я пытался понять, можно ли заставить сообщение, ожидающее в очереди почты с временными ошибками (сбои разрешения доменного имени), отскакивать прямо сейчас, вместо ожидания тайм-аута.
Wietse говорит:
Было бы неправильно заставлять сообщение отскакивать. Сообщения могут иметь несколько получателей. Правильнее было бы заставить получателя отскочить.
Чтобы пометить адресата или получателя как недоставленного:
/etc/postfix/main.cf:
transport_maps = hash:/etc/postfix/transport
/etc/postfix/transport:
typodomain.example error:5.1.2 Bad destination system address
Пометка одного получателя в файле очереди как недоставленного требует большого количества кода, которого в настоящее время не существует: 1) способ для postsuper пометить как "просроченный" одного получателя в середине списка получателей, 2) способ извлечения из файл журнала отложенной доставки - запись, в которой говорится, почему этот получатель еще не был доставлен для использования в уведомлении о недоставке, и 3) способ пометить эту запись файла журнала задержки как «удаленную», чтобы о проблеме больше не сообщалось.
Wietse
Нет. Это невозможно, так как ручное управление очередью минимально. Для автоматического выполнения есть параметры конфигурации: http://www.postfix.org/QSHAPE_README.html#deferred_queue и http://www.postfix.org/postconf.5.html#bounce_queue_lifetime (но помните о фатальной обратной стороне сокращения bounce_queue_lifetime)
Лучшим способом было бы уведомить отправителя о задержке и просто подождать, пока он не отскочит сам: http://www.postfix.org/postconf.5.html#delay_warning_time