Опять DirectAdmin и Exim

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
ExH
рядовой
Сообщения: 45
Зарегистрирован: 2007-02-20 12:06:41

Опять DirectAdmin и Exim

Непрочитанное сообщение ExH » 2007-12-18 17:22:50

Значится так, есть директадмин, с ним живёт exim.
При установке php директадмин патчит функцию mail таким образом что все письма отправляются от user@domain.ru, где user -- имя пользователя от которого запущен скрипт, domain.ru -- общий домен домен.
Т.е. к примеру, главным является домен domain.ru, пользователь hosting запускает скрипт http://www.xxxx.ru/mail.php, письмо уходит от hosting@domain.ru.

Соответственно проблемка.
В exim стоит проверка на существование пользователя на уровне ACL, я про неё где-то на форуме уже писал, работает она по принципу проверки существования пользователя в файле /etc/virtual/xxxx.ru/passwd
Оно отлично работает пока не встречаются конструкции вида, указанного выше.

Для того чтобы исправить ситуацию, я перед правилом на проверку пользователя в passwd пишу:

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

accept message = our user
           domains = +local_domains
           host = !+relay_hosts
           condition = ${if \
                            and {\
                                  { eq {$domain} {domain.ru} } \
                                  { !eq {} {${lookup{$local_part}lsearch{/etc/passwd}}} } \
                            } \
                       } {yes}{no}
Всё работает, но не нравится то что поиск идёт по файлу /etc/passwd, ведь в нём есть не только пользователи хостинга в понимании directadmin, но и куча других пользователей.
Хочется сделать чтобы поиск шёл по файлу /etc/virtual/domainowners.
Файл в формате:
domain1.ru: user_domain1_ru
domain2.ru: user_domain2_ru

Как я только не изгалялся с extract и иже с ним ничего не получалось.
Lookup lsearch использовать тоже не получается, ибо оно отчего-то хочет чтобы ключём была именно первая запись, а у меня ключ -- вторая.

За ранее спасибо!

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35046
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение Alex Keda » 2007-12-18 17:44:45

я непонял что ты хочешь...
Убей их всех! Бог потом рассортирует...

ExH
рядовой
Сообщения: 45
Зарегистрирован: 2007-02-20 12:06:41

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение ExH » 2007-12-18 18:00:28

Хочу сделать проверку существования пользователя по local_part из файла /etc/virtual/domainowners.
Он в формате:

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

domain1.ru: user_domain1_ru
domain2.ru: user_domain2_ru
т.е. lsearch не канает, потому как ключ у меня не domain, а local_part, который второй в списке.
Последний раз редактировалось Alex Keda 2007-12-18 22:42:10, всего редактировалось 1 раз.
Причина: Товарищщи, цените чужое время, юзайте кнопочку [code]...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35046
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение Alex Keda » 2007-12-18 22:43:17

посмотрел этот файл...
посмотрел оригинальный конфиг директадминовского экзима - там минимум три примера того что ты хочешь.
или я снова непонял?
Убей их всех! Бог потом рассортирует...

ExH
рядовой
Сообщения: 45
Зарегистрирован: 2007-02-20 12:06:41

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение ExH » 2007-12-18 22:45:10

Да нет же.
Там lookup {$domain} и т.п., а мне надо lookup{$local_part}.
А так оно не хочет.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35046
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение Alex Keda » 2007-12-18 22:49:22

кого ты хочешь проверить - юзера или домен?
Убей их всех! Бог потом рассортирует...

ExH
рядовой
Сообщения: 45
Зарегистрирован: 2007-02-20 12:06:41

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение ExH » 2007-12-18 22:55:37

У меня email в формате:
юзер@мой_основной_домен

я по имени юзера хочу найти в файле есть ли домен.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35046
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение Alex Keda » 2007-12-18 22:58:25

какой? основной? Это домен сервера, он полюбому есть.
чётко напиши задачу с нормальными примерами имён и прочего.
Убей их всех! Бог потом рассортирует...

ExH
рядовой
Сообщения: 45
Зарегистрирован: 2007-02-20 12:06:41

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение ExH » 2007-12-19 1:26:28

Попробую ещё раз.

Домен сервера:

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

server1.domain.tld
Пользователи хостинга:

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

user1, домен domainuser1.tld
user2, домен domainuser2.tld
user3, домен domainuser3.tld
Когда пользователи хостинга отправляет почту из скриптов обратный адрес ставится вида:

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

user1@server1.domain.tld
user2@server1.domain.tld
user3@server1.domain.tld
Некоторые почтовые серверы решают проверить существует ли такой пользователь, для чего заходят и спрашивают об этом.
А так как у меня проверка реализована путём проверки существования пользователя в файле /etc/virtual/{$domain}/passwd, проверяющему серверу даётся отлуп.

Значит мне надо проверить существование домена по известному пользователю.

Единственно похожее на необходимую для меня информацию я нашёл в файле /etc/virtual/domainowners, но она в виде:

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

domainuser1.tld:  user1
domainuser2.tld:  user2
domainuser3.tld:  user3
В итоге мне нужно по этому файлу найти есть ли запись для пользователя.

Пример.
Ломится ко мне проверяющий сервер (rambler.ru, к примеру любит так делать) и спрашивает, есть ли у тебя пользователь user2@server1.domain.tld?
Я каким-то образом (lsearch?) смотрю в файл /etc/virtual/domainowners, вижу там запись о существовании такого пользователя и говорю есть такой пользователь или говорю нет такого пользователя.

Вот.
Последний раз редактировалось Alex Keda 2007-12-19 9:24:08, всего редактировалось 1 раз.
Причина: Товарищщи, юзайте кнопочку [code], цените чужое время...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35046
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение Alex Keda » 2007-12-19 9:23:38

у меня сделано так:

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

localuser:
  driver = accept
  check_local_user
  condition = "${if eq {$domain} {$primary_hostname} {yes} {no}}"
#  data = $local_part@$domain
#  transport = local_delivery
  transport = virtual_localdelivery_v2
транспорт

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

virtual_localdelivery_v2:
        driver = appendfile
        check_string = ""
        create_directory
        delivery_date_add
        group = mail
        return_path_add
        user = $local_part
        directory_mode = 770
        maildir_format
        message_prefix = ""
        message_suffix = ""
        mode = 0660
        directory = /home/${local_part}/Maildir
===============
P.S. поакуратней с конфигом.
Там неслабый конфиг, и я сам дважды из себя делал открытый релей, пока настроил.
Неприятно, но не смертельно...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35046
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение Alex Keda » 2007-12-19 9:24:50

P.S.2
не будешь юзать кнопочку code - вообще отвечать не буду.
У меня глаза не казёные, время тоже.
Убей их всех! Бог потом рассортирует...

ExH
рядовой
Сообщения: 45
Зарегистрирован: 2007-02-20 12:06:41

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение ExH » 2007-12-19 10:35:17

Про code понял. Исправлюсь.

А пропустить ли твой код сообщение пользователю

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

root@primary_hostname
?

И мне не хочется рулить на уровне транспортов, хочется рулить на уровне ACL.
Так можно?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35046
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение Alex Keda » 2007-12-19 13:16:53

про рута - тут уже как альясы скажут.
=======
а ACL - надо придумывать чё-то - в лоб помоему не решается

P.S. хотя можно поля по разделителю извлекать и сравнивать...
Убей их всех! Бог потом рассортирует...

ExH
рядовой
Сообщения: 45
Зарегистрирован: 2007-02-20 12:06:41

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение ExH » 2007-12-19 14:29:55

lissyara писал(а):P.S. хотя можно поля по разделителю извлекать и сравнивать...
Вот это и надо.
Я пробовал, у меня не получается.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35046
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение Alex Keda » 2007-12-19 14:50:10

Убей их всех! Бог потом рассортирует...

ExH
рядовой
Сообщения: 45
Зарегистрирован: 2007-02-20 12:06:41

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение ExH » 2007-12-19 19:11:22

Вот про это я и писал в начале.
Насколько я понимаю, надо делать extract списку, который я загружу.
Я пытался сделать так:

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

${extract{2}{:}{lookup;/etc/virtual/domainowners}}
Не работает.
Т.е. теперь вопрос переформулируется так.
Как загрузить списокв exim?

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

${extract{2}{:}{вот_сюда_список}}

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35046
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Опять DirectAdmin и Exim

Непрочитанное сообщение Alex Keda » 2007-12-19 21:58:08

дык строку вначале надо найти.
Убей их всех! Бог потом рассортирует...