一般的邮件服务器大豆要经过验证,如果log4j.properties 没有验证的话会出现
javax.mail.AuthenticationFailedException
的错误!!
意思是没有验证。而log4j项目组在他们的SMTPAppender类里没有加入验证机制,直到16版本也没有,估计以后也够呛了。所以要自己建一个类继承AppenderSkeleton 该写SMTPAppender,为其添加smtpAuth属性
log4j.appender.MAIL.smtpAuth=true
原先注入的处理email的类也由
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
变为
log4j.appender.MAIL=com.hua.test.SMTPHuaAppender
其中com.hua.test为工程中的包名,SMTPHuaAppender 是自己做的类
SMTPHuaAppender 的书写方法参照牛人的博客
最后我发现,还是出现异常
javax.mail.AuthenticationFailedException
刚想骂这篇文章的作者(其实已经骂完了),后发现,我的
log4j.appender.MAIL.From=doloveme70910054@sina.com
等属性后面有空格,而log4j处理过程中没有用.trim()。 结果我悲剧了。
以后一定要注意这个
一切皆有潜规则,我!!