// FIXME: loop prevention
// FIXME: probably need some throttling on outbound mail
+// FEATURE: public static boolean validate(Address a)
+// FEATURE: rate-limiting
+
// FEATURE: infer messageid, date, if not present (?)
// FEATURE: exponential backoff on retry time?
// FEATURE: RFC2822, section 4.5.1: special "postmaster" address
new Outgoing().start();
}
- public static void accept(Message m) throws IOException {
- if (!m.envelopeTo.isLocal()) Outgoing.accept(m);
+ public static void enqueue(Message m) throws IOException {
+ if (!m.envelopeTo.isLocal()) Outgoing.enqueue(m);
else Target.root.accept(m);
}
public void handleRequest(Connection conn) throws IOException {
conn.setTimeout(5 * 60 * 1000);
conn.setNewline("\r\n");
- conn.println("220 " + conn.vhost + " SMTP " + this.getClass().getName());
+ conn.println("220 " + conn.vhost + " ESMTP " + this.getClass().getName());
Address from = null;
Vector to = new Vector();
boolean ehlo = false;