X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Fmail%2FMailingList.java;h=54fed952408c2fd083377211918b68f138cff08d;hb=4b76a31e8f86bc8de673899bbb45252c01e9a0f6;hp=9708118e942c989196c945cb4f9e1f213ee5eb63;hpb=272b3ed26fcacc6b0ad66c7f106f3717bac5f5fb;p=org.ibex.mail.git diff --git a/src/org/ibex/mail/MailingList.java b/src/org/ibex/mail/MailingList.java index 9708118..54fed95 100644 --- a/src/org/ibex/mail/MailingList.java +++ b/src/org/ibex/mail/MailingList.java @@ -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); }