Am Sonntag, den 27.08.2006, 22:45 -0400 schrieb Noel J. Bergman:
> Norman Maurer wrote:
> > Noel J. Bergman wrote:
> 
> >>>  private void checkValidRcpt(SMTPSession session) {
> >>>    MailAddress rcpt =
> session.getState().getSMTPSession.CURRENT_RECIPIENT);
> >>>    boolean invalidUser = true;
> >>>
> >>>   if (session.getConfigurationData().getUsersRepository()
> >>>       .contains(rcpt.getUser()) == true
> >>>       || recipients.contains(rcpt.toString().toLowerCase())
> >>>       || domains.contains(rcpt.getHost().toLowerCase())) {
> >> Check to see if you are doing virtual user mapping, and map the user
> >> first; THEN do the check.  And if there is a valid mapping, then I
> >> would consider that to imply a valid user for remote purposes, so
> >> that we don't have to deal with adding domains for mapped forwarding
> >> addresses.
> > Can you explain a bit more ? I not understand what exactly you want to do.
> 
> Well, we can optimize the order for performance, but for clarity, I had in
> mind something like:
> 
>   if ((mapping && map(rcpt) != null) // there is a valid mapping
>       // or there is a local POP3 box of this name
>       // --- BUT IT COULD BE WRONG, so allow disabling
>       || (useRepository &&
> (session.getConfigurationData().getUsersRepository().contains(rcpt.getUser()
> ) == true))
>       // explicit, and most likely fake, recipient, e.g., a mailing list
> address
>       || (recipients != null &&
> recipients.contains(rcpt.toString().toLowerCase()))
>       // explicit domain, e.g., one for which we merely forward
>       || (domains != null &&
> domains.contains(rcpt.getHost().toLowerCase()))) {
>     invalidUser = false;
>   }
> 
> NOTA BENE: the mapping code needs to make be aware of "error:" and similar
> strings that can be in the target field, and do NOT imply a successful
> mapping.
> 
> We might want to restructure the code to keep the mapping result so that we
> don't need to map it again in the pipeline, although we don't want to expose
> the mapping in the Received: header we'll generate.  Therefore, perhaps it
> would be best to put virtual mapping into a RCPT handler that is inserted in
> the handler chain before the ValidRcptHandler, and which can short-circuit
> the chain in the event of an invalid recipient.
> 
>       --- Noel

Ok now i understand.. And i think its a good idea to add a handler which
do the mapping first. So we don't have to bother with the mapping in the
ValidRcptHandler code. 

I will try to do the work the next days.

bye
Norman
 

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil

Reply via email to