java mail使用中遇到的550类型错误

前言

首先,需要说明的是,本错误来自于一个简单的基于java mail的api程序,邮件服务器是163的SMTP,即smtp.163.com.

报错如下;

1 javax.mail.AuthenticationFailedException: 550 User has no permission
 2 
 3     at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:809)
 4     at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:752)
 5     at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:669)
 6     at javax.mail.Service.connect(Service.java:317)
 7     at javax.mail.Service.connect(Service.java:176)
 8     at javax.mail.Service.connect(Service.java:125)
 9     at javax.mail.Transport.send0(Transport.java:194)
10     at javax.mail.Transport.send(Transport.java:124)
11     at com.shihuc.demo.SendEmail.send(SendEmail.java:154)
12     at com.shihuc.demo.SendEmail.main(SendEmail.java:181)
13     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
14     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
15     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
16     at java.lang.reflect.Method.invoke(Method.java:606)
17     at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)

则要考虑是不是没有启用应用密码功能。我的测试过程,是通过启用应用密码功能,得以将500的问题解决掉的!

 

步骤

1. 登录自己的163邮箱,注意,要用你的应用程序中设置的邮箱地址去登录。

2. 在主菜单栏上的“设置”子菜单里面,选择POP3/SMTP/IAMP菜单。

 

3. 若没有开启“客户端授权密码”,则选择将其开启。开启后,会给你生成一个应用授权密码。要用这个生成的密码作为java mail API发送邮件的认证密码,如此,才能解除500密码,若用邮箱的登录密码去设置这个认证密码,会遇到500的错误。下图是开启“客户端授权密码”功能后的截图:

 

这个错误,我折腾了很长时间,百度上找了很久,都找不到,google查看的信息,都是基于gmail的问题(535错误码,其实类似163的这个500的错误),最后,自己研究了下163邮箱上的功能菜单,摸索着修改,最终解决了这个问题!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值