Dovecot считает, что псевдонимом для канала является пользователь, отклоняет электронную почту

У меня есть экземпляр AWS EC2 под управлением Amazon Linux с Postfix для обслуживания почты. У меня есть только локальные пользователи, а не виртуальные, а мои пользователи и псевдонимы обслуживаются через PostgreSQL. Моя таблица псевдонимов в psql выглядит так:

 alias | email
-------+---------------------------------------------------------------------
 doc   | | /usr/bin/php /var/www/vhosts/mydomain.com/httpsdocs/app/pipe.php

Когда я отправляю электронное письмо на doc@mydomain.com и завершаю почтовый журнал, я вижу следующее:

May 18 21:22:35 ip-172-30-0-33 dovecot: auth: userdb(?): Username character disallowed by auth_username_chars: 0x7c (username: |/usr/bin/php /var/www/vhosts/mydomain.com/httpsdocs/app/pipe.php@mydomain.com)
May 18 21:22:35 ip-172-30-0-33 dovecot: auth: Debug: userdb out: NOTFOUND#0111
May 18 21:22:35 ip-172-30-0-33 dovecot: lmtp(11981): Debug: auth input:
May 18 21:22:35 ip-172-30-0-33 postfix/lmtp[11980]: 9992660E42: to=<|/usr/bin/php /var/www/vhosts/mydomain.com/httpsdocs/app/pipe.php@mydomain.com>, relay=mail.mydomain.com[private/dovecot-lmtp], delay=0.03, delays=0/0.01/0/0.01, dsn=5.1.1, status=bounced (host mail.mydomain.com[private/dovecot-lmtp] said: 550 5.1.1 <|/usr/bin/php /var/www/vhosts/mydomain.com/httpsdocs/app/pipe.php@mydomain.com> User doesn't exist: |/usr/bin/php /var/www/vhosts/mydomain.com/httpsdocs/app/pipe.php@mydomain.com (in reply to RCPT TO command))

Кроме того, это мне не нравится символ вертикальной черты, и я не могу заключить конвейерную линию в кавычки, так как они также отклоняются.

Как можно решить, как заставить Postfix пересылать электронные письма на doc @ к сценарию, когда псевдонимы находятся в PostgreSQL?

Спасибо за любую помощь!

(PS - Я полный нуб во всем этом, путался в настройке этого сервера. нежно ...)

-1
задан 19 May 2017 в 00:39
1 ответ

Забота о пересылке почты с «разветвлением» цепочек пересылки - это работа агента пересылки почты, которой Dovecot не является. Я не знаю, что Dovecot вообще поддерживает «доставку» почты по каналам. Вместо этого используйте настоящий MTA, такой как Postfix или Exim.

Если вы застряли с Dovecot, вы можете построить вокруг следующих альтернатив (но я настоятельно рекомендую подключить Postfix перед Dovecot, он у вас все равно может быть уже):

  • Реализация Dovecot's Sieve может использоваться для фильтрации и обработки входящих сообщений во время их доставки. Помимо множества других операций, у Dovecot есть собственное расширение для выполнения скриптов .
  • Напишите свой собственный плагин Dovecot, но документации по нему мало.
  • Почтовые фильтры вам не помогут. out, так как они не могут подавлять сообщения (они должны обеспечивать двунаправленные входящие и исходящие фильтры, а применение обоих должно возвращать исходное сообщение).
1
ответ дан 5 December 2019 в 19:42

Теги

Похожие вопросы