[exim] Копирование почты на сторонний ящик

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
msamoylov
проходил мимо

[exim] Копирование почты на сторонний ящик

Непрочитанное сообщение msamoylov » 2012-04-04 21:53:21

Появилась необходимость копировать почту на сторонний ящик. Клиент хочет бэкапить почту на стороннем сервере и его не убедить, что это бред.

Сценарий:
* Приходит письмо на мой SMTP
* Мы находим юзера
* Видим, что в записи юзера прописан ящик для копирования
* Отправляем туда копию полученного письма
* Кладем письмо в локальный ящик юзеру

Как это реализовать в нижеследующем конфиге? Заранее огромное спасибо

Конфиг по ссылке

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

mumg
рядовой
Сообщения: 30
Зарегистрирован: 2009-03-03 22:39:15

Re: [exim] Копирование почты на сторонний ящик

Непрочитанное сообщение mumg » 2012-04-05 20:45:34

usercopy:
driver = redirect
allow_fail
allow_defer
condition = ${lookup pgsql {select recipients from \
usercopy where local_part= '$local_part'}{yes}{no}}
data = ${lookup pgsql{SELECT recipients FROM usercopy \
WHERE local_part='${local_part}'}}
unseen

как то так наверное

msamoylov
проходил мимо

Re: [exim] Копирование почты на сторонний ящик

Непрочитанное сообщение msamoylov » 2012-04-06 15:58:52

Код: Выделить всё

usercopy:
  driver = redirect
  allow_fail
  allow_defer
  condition = ${lookup pgsql {select external from \
            accounts where login = '$local_part'}{yes}{no}}
  data = ${lookup pgsql {select external from \
            accounts where login = '$local_part'}
  unseen

userforward:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup pgsql{SELECT recipients FROM userforward \
         WHERE local_part='${local_part}'}}
localuser:
  driver = accept
  condition = ${lookup pgsql {select uid from \
            accounts where login = '$local_part'}{yes}{no}}
  transport = local_delivery
  cannot_route_message = Unknown user
Вызывает "temporarily rejected RCPT <mailbox@domain.ru>: Temporary internal error". ЧЯДНТ? :)

Гость
проходил мимо

Re: [exim] Копирование почты на сторонний ящик

Непрочитанное сообщение Гость » 2012-04-06 16:14:23

Вот работающее решение. Огромное спасибо за подсказку!

Код: Выделить всё

exim=> \d accounts
                                   Table "public.accounts"
  Column   |          Type          |                       Modifiers                        
-----------+------------------------+--------------------------------------------------------
 uid       | integer                | not null default nextval('accounts_uid_seq'::regclass)
 login     | character varying(128) | 
 password  | character varying(128) | 
 maildir   | character varying(255) | 
 home      | character varying(255) | 
 mailquota | integer                | default 20
 name      | text                   | 
 external  | character varying(100) | 
Indexes:
    "uid_k" PRIMARY KEY, btree (uid)
    "login_k" UNIQUE CONSTRAINT, btree (login)

Код: Выделить всё

usercopy:
  driver = redirect
  allow_fail
  allow_defer
  condition = ${lookup pgsql {SELECT external FROM accounts WHERE login = '$local_part' AND external IS NOT NULL}{yes}{no}}
  data = ${lookup pgsql {SELECT external FROM accounts WHERE login = '$local_part' AND external IS NOT NULL}}
  unseen