Рейтинг:1

Postfix + Dovecot, поток выполнения Sieve и автоматический ответ

флаг in

Я использую Postfix и Dovecot LMTP на своем сервере. Мой вопрос: как мне создать адрес получателя без уведомления и ответить автоответчиком? Также я хочу изучить поток управления выполнением Postfix и Dovecot. Это часть моего постфикса main.cf:

alias_maps = хеш:/и т.д./псевдонимы

# Виртуальные домены
виртуальные_uid_maps = статические: 5000
virtual_gid_maps = статический: 5000
виртуальный_минимум_uid = 115
virtual_mailbox_base = /home/vmail
virtual_mailbox_maps = mysql:/etc/postfix/mysql/mailbox.cf
виртуальный_почтовый_домен = mysql:/etc/postfix/mysql/domains.cf
virtual_alias_maps = mysql:/etc/postfix/mysql/aliases.cf
виртуальный_транспорт = lmtp:unix:private/dovecot-lmtp

В моем /etc/псевдонимы:

devnull: /dev/null

По моему скромному пониманию, Postfix обрабатывает адрес получателя, существует или нет? Если адрес получателя существовал, то транспортируйте его в Dovecot LMTP для локальной доставки. Возможен ли условный транспорт в Postfix? Например, я хочу создать тестовый почтовый адрес, такой как [email protected]. Какая учетная запись является псевдонимом devnull. Моя цель получатель [email protected] молча отбрасывает входящую почту и автоматически отвечает на сообщение PONG отправителю в целях тестирования. Если адрес получателя не был [email protected] затем транспортируйте в Dovecot-lmtp. Я попытался использовать плагин фильтра Dovecot Sieve с расширением для отпуска для обработки автоматического ответа. Но в моей системе mail.log:

# заменил фактическое доменное имя на ДОМЕН

postfix/lmtp[13532]: 62EBD333697: to=<devnull@DOMAIN>, orig_to=<ping@DOMAIN>, relay=DOMAIN[private/dovecot-lmtp], delay=538, delays=538/0,02/0,01/0,44, dsn=5.1.1, status=bounced (хост ДОМЕН [private/dovecot-lmtp] сказал:
 550 5.1.1 <devnull@DOMAIN> Пользователь не существует: devnull@DOMAIN (в ответ на команду RCPT TO))

Итак, я предполагаю, что плагин фильтра Dovecot Sieve не работает с несуществующей учетной записью. Можно ли выполнить скрипт Sieve перед проверкой почтового ящика пользователя? Если это так, мне даже не нужно использовать devnull псевдоним черной дыры. Я могу сделать это в своем скрипте sieve примерно так:

если адрес :соответствует "Кому" "ping@*" {
    отпуск
        : секунд 1
        "ПОНГ";
    отказаться;
}

ОБНОВЛЕНО:

Я создал пользователя с именем пинг в моей базе данных, и я получил ответное письмо в своей учетной записи GMail. Но на самом деле это было не ответное письмо. Это было новое письмо в моем почтовом ящике. Затем я попытался вручную ответить с помощью программного обеспечения Apple mail с графическим интерфейсом. Он работает так, как ожидалось. Затем я захожу в gmail и нажимаю на меню показать оригинал.

От Apple Mail идентификатор сообщения часть домена была правильным виртуальным доменом отправителя. Из почты Apple

Но от Dovecot/Sieve's идентификатор сообщения доменная часть принадлежала моему серверу имя хоста. От решета отпуск

Я не знаю, почему это происходит.Но я думаю, может быть, это потому, что доменное имя было изменено? В рабочем примере из программы Apple Mail это был правильный виртуальный домен отправителя. Но из решетчатого автоответчика было изменено настоящее имя хоста моего сервера.

Другой журнал Postfix от /var/журнал/mail.log

postfix/cleanup[1329]: EE83F333699: message-id=<dovecot-sieve-1623257247-953496-0@HOSTNAME>

PS: У меня всего несколько дней опыта работы с Postfix, Dovecot и несколько часов опыта работы с sieve script. Я такой новичок. Я надеюсь, что мой вопрос и цель были достаточно ясны. Спросите меня о чем-нибудь, если вам нужна дополнительная информация.

флаг jp
Dom
Решето используется только тогда, когда пользователь существует для Postfix И Dovecot. Судя по всему, ваш Dovecot не знает пользователя. Вы правильно определили правило Sieve, поэтому создайте пользователя (или настройте Dovecot на использование той же БД, что и postfix): он будет принимать почту, отвечать на отпуск и отбрасывать почту. Посмотрите на журналы сита тоже!
jeefo avatar
флаг in
Привет, Дом. Я создал пользователя с именем `ping` в своей базе данных, как вы предложили. Я получил ответ, когда отправил письмо на `[email protected]`. Но мое ответное письмо на самом деле не было ответным письмом. На самом деле это была новая почта в моем почтовом ящике. Как я могу добиться фактического ответа, используя отпуск сита?
флаг jp
Dom
Не могли бы вы обновить свой вопрос с помощью новой полученной почты и журналов sieve/dovecot, пожалуйста?
jeefo avatar
флаг in
Извините, у меня нет лог-файла для Sieve. Не нашел, как это зарегистрировать в то время. Для Dovecot я попытался найти полезные журналы, выполнив команду `sudo doveadm log find`. Большинство логов было указано на `/var/log/mail.log`. И не было никаких полезных журналов.Кстати, я обновил свой вопрос для получения дополнительной информации. Спасибо.
Рейтинг:0
флаг in

Я исправил это, добавив аббревиатуру «Re:» перед строкой темы. Похоже, что GMail создает новую историю разговоров, если тема изменена.

Идентификатор сообщения не было проблемой. Также я не использовал сито отпуск плагин для ответа. Вместо sieve_extprograms плагин и передать его в сценарий оболочки, а затем завиток отправить на мой сервер NodeJS.

Рейтинг:0
флаг uz

Почему вы не используете пользовательские ответы postfix? Я не уверен, будет ли изменен идентификатор сообщения или нет, но попробуйте.

На main.cf настройте smtpd_recipient_restrictions

 хэш check_recipient_access:/path/custom_replies

Затем в /path/custom_replies

[email protected] ОТКЛОНИТЬ Пользовательское сообщение

И сделать postmap в этот файл

С уважением

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

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