关于Javaemail发送邮件时遇到的问题
2017-07-26 16:24
281 查看
1.导包
首先在网上找到了需要用到的jar包,两个就好。分别是:javax.mail和javax.activation,于是我在POM.xml文件中就导入了依赖。<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.4.7</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
2.测试代码
包倒好了,代码也编辑完成了,下面就开始测试代码。果然,代码报出了异常1.java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger
解决方案:MailLogger 是JavaMail的一部分,包含在Java EE环境里面,但是不包含在Java SE环境里面,出现这个错误很大的原因是在SE环境里面测试邮件的发送;javax.mail-api只适合编译,但是如果你实在要运行代码,必须完全实现JavaMail,可以用<groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId>
将上面javax.mail的包依赖切换为
<dependency >
<groupId >com.sun.mail </groupId >
<artifactId >javax.mail </artifactId >
<version >1.5.4 </version >
</dependency >
就好了
2.之后运行没问题了,可以注册用户,但是报出了另外一个异常
javax.mail.AuthenticationFailedException: 550 User has no permission
解决方案:这是网易邮箱设置的原因,登录发送邮件的网易邮箱(我是用网易邮箱发送邮件的),点击设置,选择客户端授权码,然后开启客户端授权码,OK
3.随后运行,仍然会报出一个异常
javax.mail.AuthenticationFailedException: 535 Error: authentication failed
解决方案:该异常的原因是因为认证不通过导致的,原因是因为刚刚开启了客户端授权码,而在代码中原来设置的网易邮箱的密码还是登陆密码,此时要把登陆密码改成客户端授权码就好了。
OK,运行代码,问题解决了!
相关文章推荐
- 关于使用commons-email包测试发送邮件遇到的问题
- java写email邮件发送的时候遇到的问题
- 关于使用commons-email包测试发送邮件遇到的问题
- commons-email实现发送邮件及遇到的问题
- 关于common-email 发送邮件失败问题!!!
- 关于使用spring框架来实现email发送其中遇到的问题已解决
- 谈谈在Java发送邮件中遇到的的问题
- 关于java使用网易服务器smtp.163.com发送邮件,连接失败的问题
- Java实现邮件发送遇到的问题
- 有关java定时发送邮件遇到的一些问题
- javaEmail发送邮件问题总结
- 关于用.NET写邮件发送系统的问题
- 关于在做java的Web开发中遇到跨域访问的问题的解决方法汇总
- JavaMail、Commons Email发送邮件 出现结果后到的文件是Base64的问题的解决办法
- java - HtmlEmail发送html邮件
- 发送邮件时遇到mail包冲突异常Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream 解决方法
- 关于Delphi2010使用Indy发送邮件乱码问题的解决
- 关于解决Jmail发送附件和html邮件的问题
- 关于GMAIL无法发送邮件问题解决的办法
- 用java开发Email工具之发送邮件 (1)作者:冯睿