У меня есть сценарий, который должен отправлять электронные письма, чтобы уведомлять о системных событиях и статусе - довольно распространенный вариант использования, я думаю, - и я решил использовать mailx
для этого (почему я больше не помню) в моей системе Fedora Server.
Все было просто отлично и красиво до недавнего обновления, после чего я начал получать дополнительные электронные письма на каждую отправленную. Первая строка идентифицирует хост почтовой системы. Вторая строка гласит:
Enclosed is the mail delivery report that you requested.
За исключением того, что я сознательно или добровольно не запрашивал отчет о доставке по электронной почте! Они только начали появляться после обновления. (Либо это, либо мой спам-фильтр на стороне клиента - Thunderbird) убивал их за меня, я полагаю ?! Странно, иногда отлично справляешься, а потом вообще ничего не ловишь ?! -опожатие-)
Я полагаю, что могу использовать явную директиву в «фильтрах» моего почтового ридера, чтобы избавиться от них, но я бы предпочел, чтобы они не генерировались в первую очередь - отправленные электронные письма - это то, что имеет ценность, и мне просто не нужно или хотите эти "отчеты о доставке".
Я начал с man-страницы mailx. Ничего полезного там нет, или, по крайней мере, я не узнал никаких настроек для этого типа вещей. Я СИЛЬНО подозреваю, что это каким-то образом вызвано взаимодействием mailx
и Postfix
Хотя это только догадка. Я получаю ровно один отчет о состоянии почты за звонок mailx
, но нет, когда я отправляю почту через alpine
или Thunderbird
с того же аккаунта через тот же Postfix
монтаж.
Вот шаблон, который использует код:
/bin/mailx -n -s "subject" -s from=from_address to_address < content
В -n
означает не читать никакую локальную конфигурацию. В -S
указывает установку «переменной», в данном случае указание адреса отправителя.
Я взял идентификатор очереди Postfix и использовал grep, чтобы найти его в /var/log/maillog
:
Aug 11 12:14:32 fs1 postfix/pickup[233386]: C834918E658F: uid=nnnn from=<SystemUsername>
Aug 11 12:14:32 fs1 postfix/cleanup[237953]: C834918E658F: message-id=<5f32ee18.AXOWyPor64xZtCVH%From@EmailAddress>
Aug 11 12:14:32 fs1 postfix/qmgr[4780]: C834918E658F: from=<SystemUsername@PostfixsPrimaryFQDN>, size=1511, nrcpt=1 (queue active)
Aug 11 12:14:32 fs1 postfix/local[237956]: C834918E658F: to=<Recipient@EamilAddress>, relay=local, delay=0.14, delays=0.05/0/0/0.08, dsn=2.0.0, status=sent (delivered to mailbox)
Aug 11 12:14:32 fs1 postfix/bounce[238851]: C834918E658F: sender delivery status notification: E2BC718E6D06
Aug 11 12:14:32 fs1 postfix/qmgr[4780]: C834918E658F: removed
Я заметил, что иногда было расширение адреса доставки, а иногда нет. Так что, я думаю, это исключит известную причуду, когда Postfix
отправляет электронные письма о статусе, когда вас просят выполнить проверку расширения, проверки "существует ли".
В этом случае все доставки являются локальными, но они могут быть удаленными - у меня просто нет такого живого случая прямо сейчас - это рабочий сервер.
Я тщательно искал, где их найти, но почти все мои поиски в Интернете указывают на материалы, в которых обсуждаются сообщения о статусе отказов. Нет, неправильно!
Система:
Fedora Server 32 (booted into 31 presently)
mailx 12.5 7/5/10
postfix-3.5.4-2.fc32.x86_64
Ага, я наконец смог воспроизвести вашу проблему.
В mailx
Команда Heirloom Mail запросит уведомление о статусе доставки, если вы используете ее -v
(подробный) вариант. К сожалению, это поведение не задокументировано. На странице руководства только сказано:
-v Verbose mode. The details of delivery are displayed on the
user's terminal.
Помимо запроса DSN, этот параметр просто выводит подробные сообщения о состоянии на стандартный вывод, с которым вы вряд ли что-то делаете.
Единственное сообщение, которое -v
отпечатков в этом случае будет:
Mail Delivery Status Report will be mailed to <sender>.
Вы должны быть в порядке, чтобы удалить -v
из командной строки.