ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] virtual mail domain
@ 2003-04-02  1:05 metrol
  2003-04-02  2:48 ` Dmitry Lebkov
  0 siblings, 1 reply; 7+ messages in thread
From: metrol @ 2003-04-02  1:05 UTC (permalink / raw)
  To: community

Здравствуйте!

Создал виртуальный почтовый домен в такой связке:
Postfix + Courier-imap + Maildrop-userdb.
Делал по maildrop.README-ALT.
Все прекрасно работает, пока дело не дошло до несуществующих
пользователей в этом виртуальном домене.
Письма для них болтаются в очереди postfix'а, mailq показывает:

-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
1876DF0146      675 Wed Apr  2 10:36:43  test@virtual.ru
(temporary failure. Command output: /usr/bin/maildrop-userdb: Invalid 
user specified. )
                                         test1@virtual.ru

Подскажите как сделать, чтобы для таких зверей почта пересылалась на
существующего пользователя?

--
Евгений.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Comm] virtual mail domain
  2003-04-02  1:05 [Comm] virtual mail domain metrol
@ 2003-04-02  2:48 ` Dmitry Lebkov
  2003-04-02  3:35   ` metrol
  2003-04-02  4:53   ` metrol
  0 siblings, 2 replies; 7+ messages in thread
From: Dmitry Lebkov @ 2003-04-02  2:48 UTC (permalink / raw)
  To: community

On Wed, 02 Apr 2003 11:05:42 +1000
metrol@amur.ru wrote:

> 
> Здравствуйте!
> 
> Создал виртуальный почтовый домен в такой связке:
> Postfix + Courier-imap + Maildrop-userdb.
> Делал по maildrop.README-ALT.
> Все прекрасно работает, пока дело не дошло до несуществующих
> пользователей в этом виртуальном домене.
> Письма для них болтаются в очереди postfix'а, mailq показывает:
> 
> -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
> 1876DF0146      675 Wed Apr  2 10:36:43  test@virtual.ru
> (temporary failure. Command output: /usr/bin/maildrop-userdb: Invalid 
> user specified. )
>                                          test1@virtual.ru
> 
> Подскажите как сделать, чтобы для таких зверей почта пересылалась на
> существующего пользователя?

На вскидку, три варианта: %)

1. Патчить maildrop на предмет exit code в случае отсутствия пользователя,
   для которого доставляется почта. Сейчас maildrop возвращает EX_TEMPFAIL.
   В твоем случае - необходимо EX_NOUSER. Патч, корректирующий поведение
   maildrop, лежит здесь:

http://www-dt.e-technik.uni-dortmund.de/~ma/postfix/fix-maildrop-NO_USER.diff

Это не совсем 'right way', т.к. принимать решение о доставке сообщения -
дело MTA (sedmail или postfix) а не MDA (procmail или maildrop), т.е.
предполагается, что в момент передачи сообщения локальному агенту от MTA,
пользователь уже присутствует в системе. И с этой точки зрения EX_TEMPFAIL
вполне уместен: если по какой-либо причине не удалось получить инфо о
пользователе (отвалился SQL или LDAP, не сработал вызов getpwent, и т.д.)
-- сообщение зависает в очереди до тех пор, пока ситуация не исправится.


2. Настроить почтовый сервер таким образом, чтоб он _не принимал_ почту
   для несуществующих адресов.

Т.к. у тебя пользователи в userdb, то можно попытаться использовать этот самый
/etc/courier-imap/userdb.db как postfix map. Если maildrop-userdb у тебя описан
как транспорт maildrop, то тебе должно помочь что-то типа:

maildrop_recipient_map = hash:/etc/courier-imap/userdb

Подробности - в доках postfix'а, в районе local_recipient_map.


3. Попытаться Написать общесистемный maildroprc, обрабатывающий данную ситуацию.
   См. man maildropfilter.

Про этот метод я знаю, что он существует и является довольно универсальным
инструментом. Но сам я никогда не пытался решить подобную задачу с помощью
общесистемного maildroprc. %)


-- 
WBR, Dmitry Lebkov


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Comm] virtual mail domain
  2003-04-02  2:48 ` Dmitry Lebkov
@ 2003-04-02  3:35   ` metrol
  2003-04-02  4:35     ` Dmitry Lebkov
  2003-04-02  4:53   ` metrol
  1 sibling, 1 reply; 7+ messages in thread
From: metrol @ 2003-04-02  3:35 UTC (permalink / raw)
  To: community

Dmitry Lebkov пишет:

>>Создал виртуальный почтовый домен в такой связке:
>>Postfix + Courier-imap + Maildrop-userdb.
>>Делал по maildrop.README-ALT.
>>Все прекрасно работает, пока дело не дошло до несуществующих
>>пользователей в этом виртуальном домене.
>>Письма для них болтаются в очереди postfix'а, mailq показывает:
>>
>>-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
>>1876DF0146      675 Wed Apr  2 10:36:43  test@virtual.ru
>>(temporary failure. Command output: /usr/bin/maildrop-userdb: Invalid 
>>user specified. )
>>                                         test1@virtual.ru
>>
>>Подскажите как сделать, чтобы для таких зверей почта пересылалась на
>>существующего пользователя?
>>    
>>
>
>На вскидку, три варианта: %)
>
>1. Патчить maildrop на предмет exit code в случае отсутствия пользователя,
>   для которого доставляется почта. Сейчас maildrop возвращает EX_TEMPFAIL.
>   В твоем случае - необходимо EX_NOUSER. Патч, корректирующий поведение
>   maildrop, лежит здесь:
>
>http://www-dt.e-technik.uni-dortmund.de/~ma/postfix/fix-maildrop-NO_USER.diff
>
>  
>
Это отпадает, причину отписал сам. Вдруг на ldap или на MySQL нужно 
будет делать.

>2. Настроить почтовый сервер таким образом, чтоб он _не принимал_ почту
>   для несуществующих адресов.
>
>Т.к. у тебя пользователи в userdb, то можно попытаться использовать этот самый
>/etc/courier-imap/userdb.db как postfix map. Если maildrop-userdb у тебя описан
>как транспорт maildrop, то тебе должно помочь что-то типа:
>
>maildrop_recipient_map = hash:/etc/courier-imap/userdb
>
>Подробности - в доках postfix'а, в районе local_recipient_map.
>  
>
В этом случае сообщения будут отвергаться, если юзера нет в мапе.
Но пригодится на будующее.

>3. Попытаться Написать общесистемный maildroprc, обрабатывающий данную ситуацию.
>   См. man maildropfilter.
>
>Про этот метод я знаю, что он существует и является довольно универсальным
>инструментом. Но сам я никогда не пытался решить подобную задачу с помощью
>общесистемного maildroprc. %)
>
Значить этот вариант надо брать за основу.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Comm] virtual mail domain
  2003-04-02  3:35   ` metrol
@ 2003-04-02  4:35     ` Dmitry Lebkov
  2003-04-02  5:10       ` metrol
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry Lebkov @ 2003-04-02  4:35 UTC (permalink / raw)
  To: community

On Wed, 02 Apr 2003 13:35:55 +1000
metrol@amur.ru wrote:

> Dmitry Lebkov пишет:

[skip]

> >1. Патчить maildrop на предмет exit code в случае отсутствия пользователя,
> >   для которого доставляется почта. Сейчас maildrop возвращает EX_TEMPFAIL.
> >   В твоем случае - необходимо EX_NOUSER. Патч, корректирующий поведение
> >   maildrop, лежит здесь:
> >
> >http://www-dt.e-technik.uni-dortmund.de/~ma/postfix/fix-maildrop-NO_USER.diff
> >
> Это отпадает, причину отписал сам. Вдруг на ldap или на MySQL нужно 
> будет делать.

Так будет то же самое. Если юзер не найден -> EX_NOUSER. Единственнное, что мне в
этом случае не нравится - сообщение уже лежит в очереди, т.е. MTA его принимает.
А это - трафик, за который берут деньги ... %)

> >2. Настроить почтовый сервер таким образом, чтоб он _не принимал_ почту
> >   для несуществующих адресов.
> >
> >Т.к. у тебя пользователи в userdb, то можно попытаться использовать этот самый
> >/etc/courier-imap/userdb.db как postfix map. Если maildrop-userdb у тебя описан
> >как транспорт maildrop, то тебе должно помочь что-то типа:
> >
> >maildrop_recipient_map = hash:/etc/courier-imap/userdb
> >
> >Подробности - в доках postfix'а, в районе local_recipient_map.
> >
> В этом случае сообщения будут отвергаться, если юзера нет в мапе.

Ааа ... Так тебе надо, чтоб все сообщения для несуществующих юзеров валились
в какой-нить ящик ... %) А я "целился" в вариант "отшивания" сообщений
для неизвестных локальных получателей. %)))

> Но пригодится на будующее.

> > 
> >3. Попытаться Написать общесистемный maildroprc, обрабатывающий данную ситуацию.
> >   См. man maildropfilter.
> >
> >Про этот метод я знаю, что он существует и является довольно универсальным
> >инструментом. Но сам я никогда не пытался решить подобную задачу с помощью
> >общесистемного maildroprc. %)
> >
> Значить этот вариант надо брать за основу.

Да, похоже это - единственный выход ... %)


-- 
WBR, Dmitry Lebkov


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Comm] virtual mail domain
  2003-04-02  2:48 ` Dmitry Lebkov
  2003-04-02  3:35   ` metrol
@ 2003-04-02  4:53   ` metrol
  1 sibling, 0 replies; 7+ messages in thread
From: metrol @ 2003-04-02  4:53 UTC (permalink / raw)
  To: community

Dmitry Lebkov пишет:

>2. Настроить почтовый сервер таким образом, чтоб он _не принимал_ почту
>   для несуществующих адресов.
>
>Т.к. у тебя пользователи в userdb, то можно попытаться использовать этот самый
>/etc/courier-imap/userdb.db как postfix map. Если maildrop-userdb у тебя описан
>как транспорт maildrop, то тебе должно помочь что-то типа:
>
>maildrop_recipient_map = hash:/etc/courier-imap/userdb
>
>Подробности - в доках postfix'а, в районе local_recipient_map.
>
Попробывал этот метод - результат 0.
Что-то не нравится postfix такая база.
Может кто-нибудь уточнит правильный формат.
Или будут другие предложения?


--
Евгений




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Comm] virtual mail domain
  2003-04-02  4:35     ` Dmitry Lebkov
@ 2003-04-02  5:10       ` metrol
  2003-04-02  6:02         ` Dmitry Lebkov
  0 siblings, 1 reply; 7+ messages in thread
From: metrol @ 2003-04-02  5:10 UTC (permalink / raw)
  To: community

Dmitry Lebkov пишет:

>>>2. Настроить почтовый сервер таким образом, чтоб он _не принимал_ почту
>>>  для несуществующих адресов.
>>>
>>>Т.к. у тебя пользователи в userdb, то можно попытаться использовать этот самый
>>>/etc/courier-imap/userdb.db как postfix map. Если maildrop-userdb у тебя описан
>>>как транспорт maildrop, то тебе должно помочь что-то типа:
>>>
>>>maildrop_recipient_map = hash:/etc/courier-imap/userdb
>>>
>>>Подробности - в доках postfix'а, в районе local_recipient_map.
>>>
>>>      
>>>
>>В этом случае сообщения будут отвергаться, если юзера нет в мапе.
>>    
>>
>
>Ааа ... Так тебе надо, чтоб все сообщения для несуществующих юзеров валились
>в какой-нить ящик ... %) А я "целился" в вариант "отшивания" сообщений
>для неизвестных локальных получателей. %)))
>  
>
>>Но пригодится на будующее.
>>    
>>

Вообще-то это был бы наиболее правильный вариант,
может и на нем остановлюсь, а может и временно.
Но в лоб твой пример не прокатил. :-(
Я так и не понял какой формат должен быть для recipient_map,
и похоже он отличается от /etc/courier-imap/userdb.

Знатоки postfix'а подскажите как правильно должно быть в этом случае?

--
Евгений




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Comm] virtual mail domain
  2003-04-02  5:10       ` metrol
@ 2003-04-02  6:02         ` Dmitry Lebkov
  0 siblings, 0 replies; 7+ messages in thread
From: Dmitry Lebkov @ 2003-04-02  6:02 UTC (permalink / raw)
  To: community

On Wed, 02 Apr 2003 15:10:32 +1000
metrol@amur.ru wrote:

> Dmitry Lebkov пишет:
> 
> >>>2. Настроить почтовый сервер таким образом, чтоб он _не принимал_ почту
> >>>  для несуществующих адресов.
> >>>
> >>>Т.к. у тебя пользователи в userdb, то можно попытаться использовать этот самый
> >>>/etc/courier-imap/userdb.db как postfix map. Если maildrop-userdb у тебя описан
> >>>как транспорт maildrop, то тебе должно помочь что-то типа:
> >>>
> >>>maildrop_recipient_map = hash:/etc/courier-imap/userdb
> >>>
> >>>Подробности - в доках postfix'а, в районе local_recipient_map.
> >>>
> >>В этом случае сообщения будут отвергаться, если юзера нет в мапе.
> >>    
> >Ааа ... Так тебе надо, чтоб все сообщения для несуществующих юзеров валились
> >в какой-нить ящик ... %) А я "целился" в вариант "отшивания" сообщений
> >для неизвестных локальных получателей. %)))
> >  
> >>Но пригодится на будующее.
> >>    
> 
> Вообще-то это был бы наиболее правильный вариант,
> может и на нем остановлюсь, а может и временно.
> Но в лоб твой пример не прокатил. :-(
> Я так и не понял какой формат должен быть для recipient_map,
> и похоже он отличается от /etc/courier-imap/userdb.
> 
> Знатоки postfix'а подскажите как правильно должно быть в этом случае?

:) Скорее всего посфикс ищет базу в /var/spool/postfix/etc/courier-imap
См. пердупреждение в main.cf на предмет local_recipient_maps


-- 
WBR, Dmitry Lebkov


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2003-04-02  6:02 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-04-02  1:05 [Comm] virtual mail domain metrol
2003-04-02  2:48 ` Dmitry Lebkov
2003-04-02  3:35   ` metrol
2003-04-02  4:35     ` Dmitry Lebkov
2003-04-02  5:10       ` metrol
2003-04-02  6:02         ` Dmitry Lebkov
2003-04-02  4:53   ` metrol

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git