Рейтинг:0

Procmail не возвращает письма

флаг tr

У меня есть универсальный адрес электронной почты для моего домена, однако я хочу заблокировать получение почты на определенные адреса. Раньше я поступал так:

:0
* ^(X-Оригинал-Кому): [email protected]
/dev/ноль

Это работает нормально, однако электронная почта молча игнорируется. Я хочу, чтобы рикошетное письмо было отправлено обратно отправителю, чтобы он знал, что оно отклонено. Я использовал аналогичный код для это отвечать:

:0
* ^(X-Оригинал-Кому): [email protected]
{EXITCODE=67 ХОСТ=}

Однако теперь электронные письма доставляются, а отказы не отправляются.

tripleee avatar
флаг ar
Неужели с опечаткой в ​​`EXITCODE`? Как именно вы вызываете Procmail, какой MTA и т.д.? У вас есть пример журнала доставки Procmail?
tripleee avatar
флаг ar
Этот рецепт находится в вашем личном `.procmailrc` или в `/etc/procmailrc`?
флаг tr
@tripleee Я понятия не имею, как там появилась эта опечатка. В файле все в порядке, поэтому я, должно быть, нажал клавишу или что-то в этом роде после того, как вставил его сюда. Кроме того, этот рецепт находится в пользовательском файле `.procmailrc`.
tripleee avatar
флаг ar
Вы все еще испытываете эту проблему? Если это так, рассмотрите [править], чтобы предоставить более подробную информацию, или опубликуйте собственный ответ, объясняющий, как вы его решили. В его нынешнем виде это вряд ли поможет будущим посетителям и должно быть просто закрыто как невоспроизводимое.
Рейтинг:1
флаг ar

Помимо очевидной опечатки в вашей попытке, ваш пример работает, если я закину рецепт в личку .procmailrc.

Вот краткая демонстрация Ubuntu в новом контейнере Docker, где я установил Postfix, Procmail и Netcat и создал для себя учетную запись пользователя:

tripee@0934b6a257c9:~$ кошка >.procmailrc
LOGFILE=/tmp/procmail.log

:0
* ^(X-Оригинал-Кому): [email protected]
{EXITCODE=67 ХОСТ=}
^D
tripee@0934b6a257c9:~$ nc локальный хост 25
220 0934b6a257c9 Постфикс ESMTP (Ubuntu)
эло локальный хост
250-0934b6a257c9
250-ТРУБОПРОВОД
250-РАЗМЕР 10240000
250-ВРФЯ
250-ЭТРН
250-STARTTLS
250 РАСШИРЕННЫХ КОДОВ СОСТОЯНИЯ
250-8БИТИМИМ
250-ДСН
250-SMTPUTF8
250 РАЗБИВКА
письмо от: <tripleee>
250 2.1.0 Ок
rcpt to:<tripleee>
250 2.1.5 Ок
данные
354 Завершить данные с помощью <CR><LF>.<CR><LF>
X-Оригинал-Кому: [email protected]
Тема: первый

кто на первом
.
250 2.0.0 Хорошо: в очереди как 608C329A304
уволиться
221 2.0.0 Пока
^ С
tripee@0934b6a257c9:~$ cat /tmp/procmail.log 
От threeee@0934b6a257c9 Пт, 4 марта, 11:50:59 2022
 Тема: первый
  Папка: 0
От MAILER-DAEMON Пт, 4 марта, 11:50:59 2022
 Тема: Недоставленное письмо возвращено отправителю
  Папка: /var/mail/tripleee 2267

Однако тот же рецепт в /etc/procmailrc заставляет сообщение быть доставленным в любом случае; в основном, ХОСТ= говорит пропустить Текущий файл рецепта, но в /etc/procmailrc, это означает прекратить чтение этого файла и перейти к доставке пользователю.

Я могу только предположить, что это реальная проблема, с которой вы столкнулись. Если у вас есть дополнительные сведения, отредактируйте свой вопрос, чтобы предоставить их.

Кстати, круглые скобки лишние, а точку следует экранировать.

:0
* ^X-Оригинал-Кому: имя пользователя@пример\.com
{EXITCODE=67 ХОСТ=}

Если вы включите подробное ведение журнала с помощью ПОДРОБНО=да вы увидите, что Procmail фактически назначает ХОСТ=} что на самом деле не то, что я ожидал, но это работает (пока ваш ХОЗЯИН на самом деле не назван }!)

Обратите также внимание на то, как файл журнала показывает, что входящее сообщение отбрасывается, а затем доставляется мне сообщение о возврате (поскольку я был как отправителем, так и получателем). Однако сгенерированное сообщение о возврате содержит текст, который (неясно) показывает, что адрес получателя действительно существует:

<tripleee@0934b6a257c9> (расширено от <tripleee>): пользователь неизвестен

Вы, вероятно, должны быть довольно близко знакомы с сообщениями возврата Postfix, чтобы точно понять, что это означает; это в основном говорит, что он расширился тройной на полностью расширенный адрес электронной почты с включенным доменным именем, а затем доставка на него привела к появлению сообщения об ошибке справа от двоеточия. (Хорошо это или плохо, но рикошеты Sendmail еще более неясны, но настоящим профессионалом непонятных сообщений об ошибках, как всегда, является Microsoft.)

tripleee avatar
флаг ar
И извините, что предыдущий ответ был немного неточным в этой детали; Я обновил его сейчас.
флаг tr
Очень пояснительный ответ, однако он находится в моем файле `.procmailrc`, поэтому я не думаю, что он относится ко мне. Возможно, мне нужно попытаться включить ведение журнала, как у вас здесь, и посмотреть, что появится.
tripleee avatar
флаг ar
Возможно, см. также https://www.iki.fi/era/mail/procmail-debug.html.
tripleee avatar
флаг ar
... и `sendmail -v`, если вам неудобно общаться по чистому SMTP с почтовым сервером самостоятельно.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.