You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by se...@apache.org on 2003/05/09 19:46:32 UTC

cvs commit: jakarta-james/src/java/org/apache/james/transport/mailets LocalDelivery.java

serge       2003/05/09 10:46:32

  Modified:    src/java/org/apache/james/transport/mailets Tag:
                        branch_2_1_fcs LocalDelivery.java
  Log:
  Sets the Delivered-To header when it gets delivered into a user's inbox.  Have to clone the message, which isn't great, but otherwise you get cumulative delivered-to headers for multiple recipients.
  
  Bugzilla 15709.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.6.4.3   +9 -2      jakarta-james/src/java/org/apache/james/transport/mailets/LocalDelivery.java
  
  Index: LocalDelivery.java
  ===================================================================
  RCS file: /home/cvs/jakarta-james/src/java/org/apache/james/transport/mailets/LocalDelivery.java,v
  retrieving revision 1.6.4.2
  retrieving revision 1.6.4.3
  diff -u -r1.6.4.2 -r1.6.4.3
  --- LocalDelivery.java	8 Mar 2003 21:54:08 -0000	1.6.4.2
  +++ LocalDelivery.java	9 May 2003 17:46:31 -0000	1.6.4.3
  @@ -63,6 +63,7 @@
   import org.apache.mailet.MailAddress;
   
   import javax.mail.MessagingException;
  +import javax.mail.internet.MimeMessage;
   import java.util.Collection;
   import java.util.Iterator;
   import java.util.Vector;
  @@ -86,10 +87,16 @@
       public void service(Mail mail) throws MessagingException {
           Collection recipients = mail.getRecipients();
           Collection errors = new Vector();
  +        MimeMessage message = mail.getMessage();
           for (Iterator i = recipients.iterator(); i.hasNext(); ) {
               MailAddress recipient = (MailAddress) i.next();
               try {
  -                getMailetContext().storeMail(mail.getSender(), recipient, mail.getMessage());
  +                //Per RFC 1327 (?)
  +                MimeMessage localMessage = new MimeMessage(message);
  +                localMessage.addHeader("Delivered-To", recipient.toString());
  +                localMessage.saveChanges();
  +
  +                getMailetContext().storeMail(mail.getSender(), recipient, localMessage);
               } catch (Exception ex) {
                   getMailetContext().log("Error while storing mail.", ex);
                   errors.add(recipient);
  @@ -103,7 +110,7 @@
               // email doesn't include any details regarding the details of the failure(s).
               // In the future we may wish to address this.
               getMailetContext().sendMail(mail.getSender(),
  -                                        errors, mail.getMessage(), Mail.ERROR);
  +                                        errors, message, Mail.ERROR);
           }
           //We always consume this message
           mail.setState(Mail.GHOST);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: james-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: james-dev-help@jakarta.apache.org