правило пересылки

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
belya-dj
рядовой
Сообщения: 37
Зарегистрирован: 2007-11-19 16:10:10

правило пересылки

Непрочитанное сообщение belya-dj » 2008-07-25 9:21:03

Доброго времени суток всем!
Есть такая задача - есть домен (почтовый Exim+Courier+MySQL) есть много юзверей, в базе юзеров есть поле типа "может/не может слать в мир" тип ENUM и два значения "Y"/"N", т.е. только локальная отправка - по домену или есть возможность слать и "наружу". Если прав нет и всё равно почта шлёццо она должна тогда упасть на определённый ящик типа info@domen.ru.
Насколько я понимаю надо добавить сначала проверку на "может/не может" а потом или пустить на remote_smtp или переслать на ящик info@domen.ru.

1. Добавил роутер:

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

# на этом роутере проверяеться возможность отправки почты изнутри организации для определённого пользователя

        domen_mail_local:
                          data = accept
                       domains = +local_domains
                     condition = ${if eq{}{${lookup mysql{SELECT `outgoing` FROM `users` WHERE `username`='${local_part}'}}}{no}{yes}}
                     transport = domen_local_delivery
                       no_more
По идее он должен отправить письмо на транспорт domen_local_delivery если стоит запрет на отправку писем из домена наружу.

2. Надо добавить транспорт который производит доставку на ящик info@domen.ru

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

       domen_local_delivery:
                        driver = appendfile
                  check_string = ""
               create_directory
              delivery_date_add
               return_path_add
               envelope_to_add
                   headers_add = X-ReSended: by Exim on mail.domen.ru
                     directory = /var/vmail/info@domen.ru
Но здесь я тормознулся - не могу понять чего ещё не хватает.

Гложат сомнения ещё по поводу того, что не будет ли за роутер "цепляться" приходящая почта.
Помогите/подскажите плиз где что не так. Или как это можно организовать проще.

Хостинговая компания 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/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: правило пересылки

Непрочитанное сообщение dikens3 » 2008-07-25 9:44:40

Сразу ошибка.
local_part - это переменная не аутентифицированного пользователя, а получателя.

Т.е. к примеру у тебя пользователь user@mydomain.ru отправляет (но ему запрещено!!) почту на remoteuser@remotedomain.ru, тогда в переменной local_part будет remoteuser. Т.о. проверка не сработает.

если у тебя аутентифицированные пользователи, тогда нужно примерно так:

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

condition = ${if eq{}{${lookup mysql{SELECT `outgoing` FROM `users` WHERE `username`='${quote_mysql:$authenticated_id}' LIMIT 1}}}{no}{yes}}
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.