comment out BODYSTRUCTURE
[org.ibex.mail.git] / src / org / ibex / mail / MailingList.java
index 9708118..54fed95 100644 (file)
@@ -13,6 +13,10 @@ import java.net.*;
 import javax.servlet.*;
 import javax.servlet.http.*;
 
+// TODO: RFC 2369
+// TODO: RFC 2919
+
+// FEATURE: store interesting/important stuff in sqlite
 public class MailingList extends Mailbox.MailboxWrapper {
 
     // FIXME
@@ -188,17 +192,21 @@ public class MailingList extends Mailbox.MailboxWrapper {
         try {
             StringBuffer buf = new StringBuffer();
             m.getBody().getStream().transcribe(buf);
-            Headers head = new Headers.Original(m.headers.getStream());
-            head = head.set("List-Id", one_line_description + "<"+address+">");
-            head = head.set("Subject", properties.get("prefix") + " " + head.get("Subject"));
+            Headers head = new Headers(m.headers,
+                                       new String[] {
+                                           "List-Id", one_line_description + "<"+address+">",
+                                           "Subject", properties.get("prefix") + " " + m.headers.get("Subject")
+                                       });
             
-            m = Message.newMessage(new Fountain.StringFountain(head.getString()+"\r\n"+buf.toString()));
+            m = Message.newMessage(Fountain.Util.concat(new Fountain[] { head, 
+                                                                         Fountain.Util.create("\r\n"),
+                                                                         Fountain.Util.create(buf.toString()) }));
             Log.warn(MailingList.class, "archiving list message " + m.subject);
             mailbox.accept(m);
             
             for(Subscriber s : subscribers()) try {
                     Log.warn(MailingList.class, "  trying " + s.address);
-                    SMTP.accept(Message.newMessage(m, m.envelopeFrom, s.address));
+                    SMTP.enqueue(m.withEnvelope(m.envelopeFrom, s.address));
                     Log.warn("[list]", "successfully sent to " + s);
                 } catch (Exception e2) { Log.error("[list]", e2); }
         } catch (Exception e) { throw new RuntimeException(e); }