Noel,

> > 1) I didn't find another way to overcome [the] ParseException.
> 
> I have not yet tested the code, but I did compile Redirect.java and
> Bounce.java.  This compiles against the CVS + 
> MailetContext.sendMail(Mail).

Thanks for the help. I see the trick: the various AddressMarker.XXX are not final, so 
you could code the static {try {...}...} block without getting the compile error!

> 
> > 2) [We] have to remember that NULL will have a different meaning than
> null.
> 
> Well, it is only visible as SpecialAddress.NULL, and RFC 2821 refers to it
> as the null reverse-path, which specific instructions (section 6.1):
> 
>   If there is a delivery failure after acceptance of a message, the
>   receiver-SMTP MUST formulate and mail a notification message.  This
>   notification MUST be sent using a null ("<>") reverse path in the
>   envelope.  The recipient of this notification MUST be the address
>   from the envelope return path (or the Return-Path: line).  However,
>   if this address is null ("<>"), the receiver-SMTP MUST NOT send a
>   notification.
> 
> By the way, should the SpecialAddress markers be treated as case
> insensitive?

What do you mean? Right now in the Redirect code only the equals method is used, which 
does an equalsIgnoreCase on the user and host parts. Perhaps having it all lower case  
will reduce the risk of potential problems arising from those "unexistent" addresses, 
if used in some wrong places. I'll change it.

> 
> > 3) I'm exploring the convenience of having an AbstractRedirect class,
> >    extended by Redirect and the other mailets
> 
> OK.

I will in the next days complete Bounce (the getTo methods are wrong), test Bounce and 
NotifyPostmaster, then introduce:
AbstractRedirect
AbstractNotify extends AbstractRedirect
Forward extends AbstractRedirect

and have:

Redirect extends AbstractRedirect
Bounce extends AbstractRedirect
NotifySender extends AbstractNotify
NotifyPostmaster extends AbstractNotify

This should get us to a less redundant code; I'll look also for small shared pieces of 
code that can be put inside some convenience methods.

Vincenzo


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to