The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"exim + dovecot  + mysql + postfixadmin"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"exim + dovecot  + mysql + postfixadmin"  +/
Сообщение от Серж (??) on 04-Окт-09, 21:37 
postfixadmin:
добавил алиас-домен для другого домена, в таблице alias_domain появилась соответствующая строка

алиасы для почтовых ящиков (в рамках одного домена) exim смотрит так:
exim.conf
system_aliases:
    driver      = redirect
    allow_fail
    allow_defer
    data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
            `address`='${quote_mysql:$local_part@$domain}' OR \
                `address`='${quote_mysql:@$domain}'}}


А как настроить exim.conf что-бы он использовал смотрел домены алиасы из таблицы alias_domain?

Заранее благодарен за помощь!!!

P.S. CREATE TABLE `alias_domain` (
  `alias_domain` varchar(255) NOT NULL,
  `target_domain` varchar(255) NOT NULL,
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`alias_domain`),
  KEY `active` (`active`),
  KEY `target_domain` (`target_domain`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Postfix Admin - Domain Aliases';

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "exim + dovecot  + mysql + postfixadmin"  +/
Сообщение от ALex_hha (ok) on 05-Окт-09, 19:38 
Покажи хотя бы одну запись из alias_domain
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "exim + dovecot  + mysql + postfixadmin"  +/
Сообщение от Серж (??) on 06-Окт-09, 04:16 
>Покажи хотя бы одну запись из alias_domain

mysql> select * from alias_domain;
+--------------+---------------+---------------------+---------------------+--------+
| alias_domain | target_domain | created             | modified            | active |
+--------------+---------------+---------------------+---------------------+--------+
| domain1.ru   | domian2.ru    | 2009-09-30 21:59:31 | 2009-09-30 21:59:31 |      1 |

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "exim + dovecot  + mysql + postfixadmin"  +/
Сообщение от ALex_hha (ok) on 06-Окт-09, 12:58 
>[оверквотинг удален]
>mysql> select * from alias_domain;
>+--------------+---------------+---------------------+---------------------+--------+
>| alias_domain | target_domain | created      
>      | modified    
>        | active |
>
>+--------------+---------------+---------------------+---------------------+--------+
>| domain1.ru   | domian2.ru    | 2009-09-30 21:59:31
>| 2009-09-30 21:59:31 |      1 |
>

И как запрос

data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
            `address`='${quote_mysql:$local_part@$domain}' OR \
                `address`='${quote_mysql:@$domain}'}}

соответствует структуре таблицы?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "exim + dovecot  + mysql + postfixadmin"  +/
Сообщение от Серж (??) on 07-Окт-09, 12:31 
>И как запрос
>
>data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
>            
>`address`='${quote_mysql:$local_part@$domain}' OR \
>            
>    `address`='${quote_mysql:@$domain}'}}
>
>соответствует структуре таблицы?

уточняю:
есть две таблицы "alias" и "alias_domain" postfixadmin (Version 2.3rc7 - 2009/07/27 - SVN r691) работает с обеями

в таблицу "alias" он заносит записи для прямых псевдонимов в зоне одного домена, например:

+-----------------------+------------------+------------+---------------------+---------------------+--------+
| address               | goto             | domain     | created             | modified            | active |
+-----------------------+------------------+------------+---------------------+---------------------+--------+
| abuse@domain.ru       | admin@domain.ru  | domain.ru  | 2009-09-26 19:53:28 | 2009-09-26 19:54:38 |      1 |
| hostmaster@domain.ru  | admin@domain.ru  | domain.ru  | 2009-09-26 19:53:28 | 2009-09-26 19:54:58 |      1 |
| postmaster@domain.ru  | admin@domain.ru  | domain.ru  | 2009-09-26 19:53:28 | 2009-09-26 19:55:04 |      1 |

в таблицу "alias_domain" он заносит записи для псевдонимов-доменов, например:

+--------------+---------------+---------------------+---------------------+--------+
| alias_domain | target_domain | created             | modified            | active |
+--------------+---------------+---------------------+---------------------+--------+
| domain2.ru   | domain.ru     | 2009-09-30 21:59:31 | 2009-09-30 21:59:31 |      1 |
| domain3.ru   | domain.ru     | 2009-10-04 19:56:14 | 2009-10-04 19:56:14 |      1 |
+--------------+---------------+---------------------+---------------------+--------+

цель - модифицировать что-либо, с тем что-бы ходила почта для:

1. алиасов в зоне одного домена
2. ящиков и алиасов, существующих в зоне целевого домена, направленных на такие-же имена в зоне домена-алиаса

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "exim + dovecot  + mysql + postfixadmin"  +/
Сообщение от bill (ok) on 05-Окт-09, 21:48 
>[оверквотинг удален]
>
>    allow_fail
>    allow_defer
>    data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE
>\
>            
>`address`='${quote_mysql:$local_part@$domain}' OR \
>            
>    `address`='${quote_mysql:@$domain}'}}
>

Запрос взят похоже из статьи  с сайта Лисяры и он у меня тоже не заработал. Алиасы такого типа - @domain.com - > @otherdomain.com.
Изменил запрос на такой , работает, хотя может быть можно сделать лучше (отдельную таблицу не создавал, постфиксадмин со стандартной работает) :

data = ${lookup mysql{SELECT IF(`goto` LIKE '@%',CONCAT('${quote_mysql:$local_part}',`goto`),`goto`) FROM `alias` WHERE \          `address`='${quote_mysql:$local_part@$domain}' OR \               `address`='${quote_mysql:@$domain}'}}

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "exim + dovecot  + mysql + postfixadmin"  +/
Сообщение от Серж (??) on 06-Окт-09, 04:29 
>Запрос взят похоже из статьи  с сайта Лисяры и он у меня тоже не заработал. Алиасы такого типа - @domain.com - > @otherdomain.com.

да, от туда

>Изменил запрос на такой , работает, хотя может быть можно сделать лучше
>(отдельную таблицу не создавал, постфиксадмин со стандартной работает) :

я тоже не создавал, при создании алиаса-домена в postfixadmin'а он записывает их в таблицу alias_domain
а алиасы-ящики (в рамках одного домена) пишутся в таблицу alias и имеют вид:
+-----------------------+------------------+------------+--------+
| address               | goto             | domain     | active |
+-----------------------+------------------+------------+--------+
| abuse@domain1.ru      | admin@domain1.ru | domain1.ru |      1 |
| hostmaster@domain1.ru | admin@domain1.ru | premial.ru |      1 |
| postmaster@domain2.ru | admin@domain2.ru | domain2.ru |      1 |
| webmaster@domain2.ru  | admin@domain2.ru | domain2.ru |      1 |


>
>data = ${lookup mysql{SELECT IF(`goto` LIKE '@%',CONCAT('${quote_mysql:$local_part}',`goto`),`goto`) FROM `alias` WHERE \  
>        `address`='${quote_mysql:$local_part@$domain}' OR \
>          
>   `address`='${quote_mysql:@$domain}'}}

куда ваш postfixadmin пишет домены-алиасы? покажите наглядно плз.

ваш рецепт пока еще не попробовал, буду разбираться

Спасибо!!!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "exim + dovecot  + mysql + postfixadmin"  +/
Сообщение от bill (ok) on 06-Окт-09, 19:42 
>[оверквотинг удален]
>
>
>>
>>data = ${lookup mysql{SELECT IF(`goto` LIKE '@%',CONCAT('${quote_mysql:$local_part}',`goto`),`goto`) FROM `alias` WHERE \  
>>        `address`='${quote_mysql:$local_part@$domain}' OR \
>>          
>>   `address`='${quote_mysql:@$domain}'}}
>
>куда ваш postfixadmin пишет домены-алиасы? покажите наглядно плз.
>

У меня вообще нет таблицы alias_domain. postfixadmin 2.2.0.

Алиас домена такой:
select * from alias where goto like '@%' limit 1;
+---------------+----------+--------------+---------------------+---------------------+--------+
| address       | goto     | domain       | created             | modified            | active |
+---------------+----------+--------------+---------------------+---------------------+--------+
| @other.domain.com | @domain.com | other.domain.com | 2008-01-01 00:00:00 | 2008-01-01 00:00:00 |      1 |
+---------------+----------+--------------+---------------------+---------------------+--------+


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "exim + dovecot  + mysql + postfixadmin"  +/
Сообщение от Серж (??) on 07-Окт-09, 12:14 
>[оверквотинг удален]
>+---------------+----------+--------------+---------------------+---------------------+--------+
>| address       | goto  
>  | domain       |
>created          
>  | modified        
>    | active |
>+---------------+----------+--------------+---------------------+---------------------+--------+
>| @other.domain.com | @domain.com | other.domain.com | 2008-01-01 00:00:00 | 2008-01-01 00:00:00
>|      1 |
>+---------------+----------+--------------+---------------------+---------------------+--------+

насколько я понимаю при вашем SQL-запросе почта для домена алиаса, в вашем примере @other.domain.com, придет в домен @domain.com даже для несуществующих ящиков и ящиков алиасов в домене  @domain.com

например, имеем ящик admin@domain.com и алиас к нему admin2@@domain.com, почта для ящика vasia@other.domain.com свалится в ящик admin@domain.com

я прав?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "exim + dovecot  + mysql + postfixadmin"  +/
Сообщение от bill (ok) on 07-Окт-09, 14:58 
>[оверквотинг удален]
>>+---------------+----------+--------------+---------------------+---------------------+--------+
>
>насколько я понимаю при вашем SQL-запросе почта для домена алиаса, в вашем
>примере @other.domain.com, придет в домен @domain.com даже для несуществующих ящиков и
>ящиков алиасов в домене  @domain.com
>
>например, имеем ящик admin@domain.com и алиас к нему admin2@@domain.com, почта для ящика
>vasia@other.domain.com свалится в ящик admin@domain.com
>
>я прав?

Нет

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "exim + dovecot  + mysql + postfixadmin"  +/
Сообщение от Серж (??) on 10-Окт-09, 03:20 
>[оверквотинг удален]
>>насколько я понимаю при вашем SQL-запросе почта для домена алиаса, в вашем
>>примере @other.domain.com, придет в домен @domain.com даже для несуществующих ящиков и
>>ящиков алиасов в домене  @domain.com
>>
>>например, имеем ящик admin@domain.com и алиас к нему admin2@@domain.com, почта для ящика
>>vasia@other.domain.com свалится в ящик admin@domain.com
>>
>>я прав?
>
>Нет

увы, я прав

я сделал таблицу по аналогии с вашей и заполнил ее следующими значениями:
SELECT * FROM alias;
+------------------------+------------------+------------------+
| address                | goto             | domain           |
+------------------------+------------------+------------------+
| abuse@domain.com       | admin@domain.com | domain.com       |
| admin@domain.com       | admin@domain.com | domain.com       |
| @other.domain.com      | @domain.com      | other.domain.com |
+------------------------+------------------+------------------+

и примерил ваш SQL-запрос:
SELECT IF(goto LIKE '@%', CONCAT('$local_part', goto), goto) FROM alias WHERE address='$local_part@$domain' OR address='@$domain';

получил следующие выборки:
admin@domain.com -> admin@domain.com (правильно)
abuse@domain.com -> admin@domain.com (правильно)
noexist@domain.com -> '' (правильно)
admin@other.domain.com -> admin@domain.com (правильно)
abuse@other.domain.com -> abuse@domain.com (не правильно, ожидалось admin@domain.com)
noexist@other.domain.com -> noexist@domain.com (не правильно, ожидалось '')

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "exim + dovecot  + mysql + postfixadmin"  +/
Сообщение от bill (ok) on 10-Окт-09, 09:58 
>[оверквотинг удален]
>>>ящиков алиасов в домене  @domain.com
>>>
>>>например, имеем ящик admin@domain.com и алиас к нему admin2@@domain.com, почта для ящика
>>>vasia@other.domain.com свалится в ящик admin@domain.com
>>>
>>>я прав?
>>
>>Нет
>
>увы, я прав

Не прав.

>[оверквотинг удален]
>SELECT IF(goto LIKE '@%', CONCAT('$local_part', goto), goto) FROM alias WHERE address='$local_part@$domain' OR
>address='@$domain';
>
>получил следующие выборки:
>admin@domain.com -> admin@domain.com (правильно)
>abuse@domain.com -> admin@domain.com (правильно)
>noexist@domain.com -> '' (правильно)
>admin@other.domain.com -> admin@domain.com (правильно)
>abuse@other.domain.com -> abuse@domain.com (не правильно, ожидалось admin@domain.com)
>noexist@other.domain.com -> noexist@domain.com (не правильно, ожидалось '')

Кем ожидалось? Вы ,наверное, не понимаете как работает редирект. Письмо при данной конфигурации, отправленное на abuse@other.domain.com, будет доставлено admin@domain.com.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "exim + dovecot  + mysql + postfixadmin"  +/
Сообщение от Серж (??) on 10-Окт-09, 13:26 

>>получил следующие выборки:
>>admin@domain.com -> admin@domain.com (правильно)
>>abuse@domain.com -> admin@domain.com (правильно)
>>noexist@domain.com -> '' (правильно)
>>admin@other.domain.com -> admin@domain.com (правильно)
>>abuse@other.domain.com -> abuse@domain.com (не правильно, ожидалось admin@domain.com)
>>noexist@other.domain.com -> noexist@domain.com (не правильно, ожидалось '')
>
>Кем ожидалось?

мной ожидалось, я думал, что здесь exim должен получить вполне определенные данные

>Вы ,наверное, не понимаете как работает редирект.

да, не совсем понимаю

>Письмо при данной конфигурации, отправленное на abuse@other.domain.com, будет доставлено admin@domain.com.

Я так понял - не смотря на то, что он получил от БД abuse@domain.com?

А куда будет доставлено письмо посланное на адрес noexist@other.domain.com (ведь в ответе от БД exim получит noexist@domain.com, а этого ящика/алиаса нет)?

Спасибо!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "exim + dovecot  + mysql + postfixadmin"  +/
Сообщение от bill (ok) on 10-Окт-09, 18:04 
>[оверквотинг удален]
>>>abuse@domain.com -> admin@domain.com (правильно)
>>>noexist@domain.com -> '' (правильно)
>>>admin@other.domain.com -> admin@domain.com (правильно)
>>>abuse@other.domain.com -> abuse@domain.com (не правильно, ожидалось admin@domain.com)
>>>noexist@other.domain.com -> noexist@domain.com (не правильно, ожидалось '')
>>
>>Кем ожидалось?
>
>мной ожидалось, я думал, что здесь exim должен получить вполне определенные данные
>

Exim их получил, решение о транспорте ещё не принято.

>[оверквотинг удален]
>
>да, не совсем понимаю
>
>>Письмо при данной конфигурации, отправленное на abuse@other.domain.com, будет доставлено admin@domain.com.
>
>Я так понял - не смотря на то, что он получил от
>БД abuse@domain.com?
>
>А куда будет доставлено письмо посланное на адрес noexist@other.domain.com (ведь в ответе
>от БД exim получит noexist@domain.com, а этого ящика/алиаса нет)?

Unrouteable address

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "exim + dovecot  + mysql + postfixadmin"  +/
Сообщение от Серж (??) on 11-Окт-09, 03:34 
содрал ваш sql, вроде все работает
Спасибо!!!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру