} else if (conn.getRemoteAddress().isLoopbackAddress() || (from!=null&&from.toString().indexOf("johnw")!=-1)) {
conn.println("250 you are connected locally, so I will let you send");
to.addElement(addr);
+ whitelist.addWhitelist(addr);
+ } else if (authenticatedAs!=null) {
+ conn.println("250 you are authenticated as "+authenticatedAs+", so I will let you send");
+ to.addElement(addr);
+ whitelist.addWhitelist(addr);
} else {
conn.println("535 sorry, " + addr + " is not on this machine, you are not connected from localhost, and I will not relay without SMTP AUTH");
Log.warn("","535 sorry, " + addr + " is not on this machine, you are not connected from localhost, and I will not relay without SMTP AUTH");
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);
+ 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 = m.headers;
head = head.remove("return-path");
head = head.remove("bcc");