本文基于以下版本的jar包并使用myeclipse6.5.1,jdk1.6.0_20,tomcat6.0.29
mail.jar(版本1.4.3),log4j-1.2.16,activation.jar(未知版本)下载地址去google.com搜索
需要注意的问题:
log4j版本不能太低,否则不支持用户名密码认证,经过我测试的1.2.16一定支持
mail版本也不能过低,我在编译时起初发邮件不成功,于是将1.2.16的源代码引入myeclipse后,发现其引用的mail.jar与myeclipse引用的J2EE 1.4自带的mail.jar不匹配,另外如果将mail.jar加的lib中时,要注意myeclipse的编译,最好将mail.jar把myeclipse引用的J2EE 1.4中的mail.jar替换,否则有可能myeclipse编译后部署到tomcat中的mail.jar并不是我们真正想要的,此点很重要
此外,log4j目前只就error级别的log发送邮件,所以如果你的应用环境或者测试环境里面写的没有此级别的log,则必然没有任何结果
配置:
log4j顶头的log4j.rootCategory=INFO,stdout,MAIL,R(其中MAIL是我们后加入的)
log4j文件里面加入:
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.SMTPDebug=true
log4j.appender.MAIL.Threshold=ERROR
log4j.appender.MAIL.BufferSize=1
log4j.appender.MAIL.SMTPHost=你用来发邮件的smtp服务器,如:smt
log4j.appender.MAIL.Subject=邮件主题(这个就不用多说了)
log4j.appender.MAIL.SMTPUsername=发邮件服务器的用户名,如:abcd
log4j.appender.MAIL.SMTPPassword=发邮件服务器的
log4j.appender.MAIL.From=发邮件邮箱的全名,如:,这个必须与用户名那个对应的邮箱匹配,否则一样发不出
log4j.appender.MAIL.To=收件人地址
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=[ErrorMessage] %d - %c -%-4r [%t] %-5p %c %x - %m%n
以上配置完成后,基本就可以发邮件了。