private static void check(String s, Connection conn) {
if (s==null) return;
while (s.length() > 3 && s.charAt(3) == '-') s = conn.readln();
- if (s.startsWith("4")||s.startsWith("5")) throw new SMTPException(s);
+ //if (s.startsWith("4")||s.startsWith("5")) throw new SMTPException(s);
+ if (!s.startsWith("2")&&!s.startsWith("3")) throw new SMTPException(s);
}
private static boolean attempt(final Message m, final InetAddress mx) {
boolean accepted = false;
conn.println("HELO " + conn.vhost);
check(conn.readln(), conn);
}
- if (m.envelopeFrom==null) {
- Log.warn("", "MAIL FROM:<>");
- conn.println("MAIL FROM:<>"); check(conn.readln(), conn);
- } else {
- Log.warn("", "MAIL FROM:<" + m.envelopeFrom.toString()+">");
- conn.println("MAIL FROM:<" + m.envelopeFrom.toString()+">"); check(conn.readln(), conn);
- }
- conn.println("RCPT TO:<" + m.envelopeTo.toString()+">"); check(conn.readln(), conn);
- conn.println("DATA"); check(conn.readln(), conn);
- Headers head = m.headers;
- head = head.remove("return-path");
- head = head.remove("bcc");
+ String envelopeFrom = m.envelopeFrom==null ? "" : m.envelopeFrom.toString();
+ conn.println("MAIL FROM:<" + envelopeFrom +">"); check(conn.readln(), conn);
+ conn.println("RCPT TO:<" + m.envelopeTo.toString()+">"); check(conn.readln(), conn);
+ conn.println("DATA"); check(conn.readln(), conn);
+
+ Headers head = new Headers(m.headers,
+ new String[] {
+ "return-path", null,
+ "bcc", null
+ });
Stream stream = head.getStream();
for(String s = stream.readln(); s!=null; s=stream.readln()) {
if (s.startsWith(".")) conn.print(".");