add body jsproperty to MIME
[org.ibex.mail.git] / src / org / ibex / mail / Message.java
index f52a6f2..9d91a18 100644 (file)
@@ -44,12 +44,13 @@ public class Message extends MIME.Part {
 
     public static Message newMessage(Fountain in) throws Malformed { return new Message(in); }
 
+    /*
     public Message reply(Fountain in, Address from, boolean includeReInSubject) throws Malformed {
-        /*
        Address to = null;
        if (to==null) to = Address.parse(headers.get("reply-to"));
        if (to==null) to = Address.parse(headers.get("from"));
        if (to==null) to = envelopeFrom;
+        if (to==null) throw new Malformed("cannot reply to a message without a return address");
        Message ret = newMessage(in, from, to);
        ret.headers.put("In-Reply-To", messageid);
        String references = headers.get("references");
@@ -57,10 +58,8 @@ public class Message extends MIME.Part {
        if (includeReInSubject && subject!=null && !subject.toLowerCase().trim().startsWith("re:"))
            headers.put("subject", "Re: "+subject);
        return ret;
-        */
-        // FIXME
-        return null;
     }
+    */
 
     // FIXME
     //public static Message newMessage(Headers headers, Fountain body, Address from, Address to) throws Malformed {
@@ -134,6 +133,7 @@ public class Message extends MIME.Part {
     }
     */
 
+
     // Helpers /////////////////////////////////////////////////////////////////////////////
 
     // http://www.jwz.org/doc/mid.html
@@ -163,8 +163,7 @@ public class Message extends MIME.Part {
         if (envelopeFrom==null || envelopeFrom.toString().equals("")) return null;
 
         Log.warn(Message.class, "bouncing message due to: " + reason);
-        Headers h = new Headers.Original(headers.getStream());
-        h = h.set(new String[] {
+        Headers h = new Headers(headers, new String[] {
             "Envelope-To", envelopeFrom.toString(),
             "Return-Path", "<>",
             "From",        "MAILER-DAEMON <>",
@@ -173,6 +172,7 @@ public class Message extends MIME.Part {
         });
 
         String error =
+            "\r\n"+
             "Hi. This is the Ibex Mail Server.  I'm afraid I wasn't able to deliver\r\n"+
             "your message to the following addresses. This is a permanent error;\r\n"+
             "I've given up.  Sorry it didn't work out\r\n."+
@@ -184,7 +184,7 @@ public class Message extends MIME.Part {
             "\r\n";
 
         try {
-            return newMessage(new Fountain.Concatenate(new Fountain.StringFountain(h.getString()+"\r\n"+error), getBody()));
+            return newMessage(Fountain.Util.concat(h, Fountain.Util.create(error), getBody()));
         } catch (Message.Malformed e) {
             Log.error(this, "caught Message.Malformed in Message.bounce(); this should never happen");
             Log.error(this, e);