关于发送邮件提醒的错误:java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
今天才注册163邮箱账号,试着玩玩邮件的发送,可总是提醒java.lang.NoClassDefFoundError:com/sun/mail/util/LineInputStream
错误,百度后才知道主要的原因是因为:
我们使用的是javaee5的库,其中javax.mail和javax.activation这两个包已经在javaEE5当中属于基础包了,就是JDK中自带了已经,如果你在导入mail.jar和activation.jar就会出现出入。所以解决方法就是:”将javaee5的库,变成javaee6的库”。具体的步骤如下:
1、项目名称上点击鼠标右键,选择“Build Path–>Configure Build Path–>Java Build Path”
2、单击“Add Library…”
3、选择“User Library”,单击“Next”
4、单击“User Libraries…”,选择需要的Java EE 6 Libraries
可是天真的以为这样就好了,执行代码后又提示:550 User has no permission(邮箱不可用)
。这是因为我的163没有开启POP3/SMTP服务,具体如何去开请参照http://blog.****.net/hughnes/article/details/52070878
再去执行代码,发现又有新的错误:535 Error: authentication failed
,原因是:未使用授权码
解决办法:将你代码中的password,设置为你当时这只的客户端授权码即可
至此所有的问题都解决了,可以安心的发送邮件了。