Мой вопрос касается обработки уведомлений о состоянии доставки (DSN) моих экземпляров входящего почтового сервера Postfix. Однако решение этой проблемы может полностью выходить за рамки DSN.
Допустим, это поток почты, поступающей в мой домен. D
, E
и F
находятся под моим контролем, и A
, B
и C
отправителя.
A
+----------+
| |
| MUA |
| (sender) |
| |
+----+-----+
|
|
B | C D E
+-----v-------+ +-----------+ +------------+ +------------+
| | | Outbound |INTERNET Inbound | LAN | Local mail |
| Submission +-----> gateway +-------> gateway +---->+ storage |
| (MTA) | | (MTA) | | (MTA) | | delivery |
| | | sender | | recipient | | (MTA) |
+-------------+ +-----------+ +------------+ +-----+------+
| LMTP
LAN | (final
| delivery)
F |
+-----v------+
| |
| Mailbox |
| devlivery |
| (MDA) |
+------------+
D
(край, выход в Интернет, высокая доступность) и E
(внутреннее, бюджетное SLA) - это отдельные машины, так как я хотел бы разделить вещи по масштабируемости, безопасности и доступности. Таким образом, почту можно будет поставить в очередь на несколько дней по адресу D
в случае E
в дешевой сети / кластере не работает из-за аварийного сценария.
Отправитель может запросить DSN в своем почтовом клиентском приложении (например, в Thunderbird включите DSN в меню просмотра создания), а с Postfix по умолчанию он проинформирует отправителя об успешной доставке из E
как только он доставил его F
. В этом сообщении DSN отправитель много знает о моей внутренней сети, и этого я бы хотел избежать.
С точки зрения D
, сам по себе не является конечным получателем почты (поскольку E
настроен как ретранслятор для домена). Более того, когда он передает E
, это еще не конечный пункт назначения при пересылке почты. Это делает это только в E
сообщить отправителю.
Я обнаружил, что у Gmail очень элегантный способ. Это каким-то образом запускает DSN уже при отправке C
к D
(где D
тогда это крайний MTA Gmail). Я хотел бы знать, как настроить мои экземпляры Postfix, такие как Gmail, для работы с MTA в Интернете. Это сделало бы исходящий MTA отправителя ответственным за информирование удаленного MTA о статусе доставки.
Поскольку у меня нет настройки условной доставки, отказы отключены на этом пути, вся почта принимается на D
так или иначе будут доставлены в почтовый ящик. Итак, я хотел бы сообщить удаленным MTA уже на этом этапе, что доставка прошла успешно, и я хочу отключить любую дальнейшую обработку DSN на моих собственных серверах. Это должно позволить C
сообщить отправителю об успешной доставке.
Я пытался установить smtpd_discard_ehlo_keywords = silent-discard, dsn
в D
уже согласно Readme для DSN Postfix, но, как и ожидалось, отправители больше не получают информации, и это уже слишком, чтобы отключать.
Коротко; как я могу заставить Postfix сказать (солгать) удаленный MTA C
который D
окончательная доставка сообщения?
... в попытке имитировать работу Gmail.