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