Java Mail Log输出
日志输出实现类
import org.apache.log4j.Logger; import java.io.PrintStream; /** * 扩展PrintStream,用于输出Java Mail打印Debug日志 * <p> */ public class MailPrintStream extends PrintStream { private final Logger logger; public MailPrintStream(Logger logger) { super(System.out); this.logger = logger; } @Override public void print(String s) { logger.info(s); } @Override public void print(boolean b) { print(String.valueOf(b)); } @Override public void print(char c) { print(String.valueOf(c)); } @Override public void print(int i) { print(String.valueOf(i)); } @Override public void print(long l) { print(String.valueOf(l)); } @Override public void print(float f) { print(String.valueOf(f)); } @Override public void print(double d) { print(String.valueOf(d)); } @Override public void print(char[] s) { print(String.valueOf(s)); } @Override public void print(Object obj) { print(String.valueOf(obj)); } @Override public void println() { logger.info(""); } @Override public void println(boolean x) { println(String.valueOf(x)); } @Override public void println(char x) { println(String.valueOf(x)); } @Override public void println(int x) { println(String.valueOf(x)); } @Override public void println(long x) { println(String.valueOf(x)); } @Override public void println(float x) { println(String.valueOf(x)); } @Override public void println(double x) { println(String.valueOf(x)); } @Override public void println(char[] x) { println(String.valueOf(x)); } @Override public void println(String x) { logger.info(x); } @Override public void println(Object x) { println(String.valueOf(x)); } }
将实现类配置到DebugOut,并开启Debug模式
Properties props = new Properties(); props.setProperty("mail.transport.protocol", SMTP_MAIL_PROTOCOL); props.setProperty("mail.host", SMTP_MAIL_HOST); props.setProperty("mail.smtp.auth", "true"); Session session = Session.getDefaultInstance(props); session.setDebugOut(new MailPrintStream(log4j)); session.setDebug(true); MimeMessage message = new MimeMessage(session);