--- /dev/null
+package org.ibex.mail.protocol;
+import org.ibex.io.*;
+import org.ibex.crypto.*;
+import org.ibex.jinetd.Listener;
+import org.ibex.jinetd.Worker;
+import org.ibex.mail.*;
+import org.ibex.util.*;
+import org.ibex.mail.target.*;
+import java.util.*;
+import java.net.*;
+import java.text.*;
+import java.io.*;
+
+public class Mbox {
+ public static Message[] parse(Stream stream) {
+ StringBuffer buf = null;
+ Vec vec = new Vec();
+ for(String s = stream.readln(); ; s = stream.readln()) {
+ if (s == null || s.startsWith("From ")) {
+ try {
+ if (buf != null) vec.addElement(new Message(new Stream(buf.toString()), null));
+ } catch (Exception e) { Log.warn(Mbox.class, e); }
+ if (s == null) break;
+ buf = new StringBuffer();
+ } else if (buf != null) {
+ if (buf.length() == 0 && s.length() == 0) continue; // skip blank line after From
+ buf.append(s);
+ buf.append("\r\n");
+ }
+ }
+ return (Message[])vec.copyInto(new Message[vec.size()]);
+ }
+}