commons-email实现发送邮件及遇到的问题

项目是用maven管理,首先导入以下依赖

<dependency>

<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.4</version>

</dependency>

会自动帮你导入javax.mail activation jar包。

java中发送邮件需要这些jar包就够了。后面我会讲我遇到的jar包冲突。

代码部分可以参考如下博客:

http://blog.csdn.net/wang379275614/article/details/46624889

或者这个:

http://www.jb51.net/article/85839.htm

具体流程就是:

先导入依赖,再创建一个Mail实体类,封装发送邮件所需要的信息,如服务器地址,发件人,收件人,发件人的邮箱账号密码,主题,内容等。

然后写一个工具类MailUtil,从实体类中获取参数填充email(HtmlEmail或SimpleEmail),执行发送邮件的操作。这个代码参考上面微博。

然后就是在项目中需要发送邮件的地方写具体的方法,写一个发送邮件的方法,将要发送的信息保存到实体类Mail中,然后调用mailUtil.send(mail)方法。

此时代码基本完成,开始测试,启动tomcat,设置条件触发发送邮件的任务。此时可能不会成功,需要你的邮箱设置POP3/SMTP/IMAP服务,此时去对应邮箱网站设置即可,按要求设置开启SMTP服务。

然后基本就可以成功了,有些邮件如腾讯还需开启SSL,在MailUtil中添加email.setSSLOnConnect(true);即可。

这时我的可以发邮件了,但是收到的却是这样的:


内容:

------=_Part_0_1924255560.1481597597417
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E5=90=8C=E6=AD=A5=E8=B4=A6=E6=88=B7=E4=
=B8=AD=E5=BF=83=E5=A4=B1=E8=B4=A5:=E8=B4=A6=E6=88=B7=E4=B8=AD=E5=BF=83=E8=BF=
=94=E5=9B=9E:{resultMsg=3D=E5=90=8C=E6=AD=A5=E8=B4=A6=E6=88=B7=E4=B8=AD=E5=
=BF=83=E5=A4=B1=E8=B4=A5, resultCode=3Dx}=E5=AE=A1=E6=A0=B8=E6=B5=81=E6=B0=
=B4:.UserVerify@48303e79[VerifyId=3D66,A=
ccountId=3D7,VerifyType=3D1,VerifyContent=3D=E6=98=B5=E7=A7=B0=E4=BF=AE=E6=
=94=B97,Status=3D1,OperatorId=3D1,OpTime=3DThu Dec 01 15:09:32 CST 2016]
------=_Part_0_1924255560.1481597597417--

此时百度了很久,找到了一篇博客:

http://blog.csdn.net/zljjava/article/details/49149443

这里有类似的问题。是jar包冲突导致的。

于是在自己的项目中找到 axis2-kernel,这个依赖引入了一些相关的jar包如geronimo-javamail_1.4_spec等一些没用的jar,但会引起JavaMail冲突。

在pom文件中剔除相关jar包,如下

<dependency>
    <groupId>org.apache.axis2</groupId>
     <artifactId>axis2-kernel</artifactId>
      <exclusions>
         <exclusion>
		    <groupId>org.apache.geronimo.specs</groupId>
		    <artifactId>geronimo-javamail_1.4_spec</artifactId>
           </exclusion>
           <exclusion>
		    <groupId>org.apache.geronimo.specs</groupId>
		    <artifactId>geronimo-activation_1.1_spec</artifactId>
           </exclusion>
           <exclusion>
		    <groupId>org.apache.geronimo.specs</groupId>
		    <artifactId>geronimo-jms_1.1_spec</artifactId>
           </exclusion>
           <exclusion>
		    <groupId>org.apache.geronimo.specs</groupId>
		    <artifactId>geronimo-stax-api_1.0_spec</artifactId>
           </exclusion>
           </exclusions>
 </dependency>
  <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-adb</artifactId>
              <exclusions>
               <exclusion>
		  		 <groupId>org.apache.geronimo.specs</groupId>
		        <artifactId>geronimo-activation_1.1_spec</artifactId>
               </exclusion>
               <exclusion>
		         <groupId>org.apache.geronimo.specs</groupId>
		         <artifactId>geronimo-stax-api_1.0_spec</artifactId>
               </exclusion>
              </exclusions>
 </dependency>
然后,再测试就可以了,能正常显示邮件了。 吐舌头

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值