Я использую 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 идентификатор сообщения
часть домена была правильным виртуальным доменом отправителя.
Но от 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. Я такой новичок. Я надеюсь, что мой вопрос и цель были достаточно ясны. Спросите меня о чем-нибудь, если вам нужна дополнительная информация.