X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Fmail%2FMessage.java;h=0e0b13a56f7bdb6b3014bafde125f05bf9540f37;hb=034d6cb1d6f959c4640a0690b9ba0613e1f0ded4;hp=85ab516e6f8123883913bb845a36da2ba713a97e;hpb=a18d27681a90b7630234b278d2e09a1a1040eb8a;p=org.ibex.mail.git diff --git a/src/org/ibex/mail/Message.java b/src/org/ibex/mail/Message.java index 85ab516..0e0b13a 100644 --- a/src/org/ibex/mail/Message.java +++ b/src/org/ibex/mail/Message.java @@ -42,6 +42,8 @@ public class Message extends JSReflection { public void dump(OutputStream os) throws IOException { Writer w = new OutputStreamWriter(os); w.write(allHeaders); + w.write("X-IbexMail-EnvelopeFrom: " + envelopeFrom + "\r\n"); + w.write("X-IbexMail-EnvelopeTo: "); for(int i=0; i 126) - throw new Malformed("Header key contains invalid character \"" + s.charAt(i) + "\""); - String val = s.substring(0, s.indexOf(':')); + for(int i=0; i 126) + throw new Malformed("Header key \""+key+"\" contains invalid character \"" + key.charAt(i) + "\""); + String val = s.substring(s.indexOf(':') + 1).trim(); while(Character.isSpace(val.charAt(0))) val = val.substring(1); if (key.startsWith("Resent-")) { if (key.startsWith("Resent-From")) resent.addElement(new Hashtable()); @@ -135,9 +137,9 @@ public class Message extends JSReflection { } this.date = (Date)headers.get("Date"); - this.to = new Address((String)headers.get("To")); - this.from = new Address((String)headers.get("From")); - this.replyto = new Address((String)headers.get("Reply-To")); + this.to = new Address((String)headers.get("To")); // FIXME what if null? + this.from = headers.get("From") == null ? envelopeFrom : new Address((String)headers.get("From")); + this.replyto = headers.get("Reply-To") == null ? null : new Address((String)headers.get("Reply-To")); this.subject = (String)headers.get("Subject"); this.messageid = (String)headers.get("Message-Id"); if (headers.get("Cc") != null) {