[Java]发送QQ邮件时抛出535认证异常

一、抛出异常

异常信息:535 Error: authentication failed

二、确认账号与授权码

由于使用javamail发送邮件需要进行第三方邮箱登录,认证时需要账号授权码。不同的邮箱授权码获取方法不同,这里以QQ邮箱为例:

登陆后点击“设置”->“账户”

 

在“账户”中下翻找到此项,选择“生成授权码”获取16位授权码

 关于账号的填写QQ邮箱有些特殊,仅填账号,不需要后缀。例如:10001@qq.com,红色部分为账号。

三、XML中配置Bean

设置端口、邮箱主机地址、账号、授权码等等,其中SSL是QQ邮箱的特殊需求

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl" lazy-init="false">
	<property name="host" value="smtp.qq.com"/>
	<property name="port" value="25"/>
        <!-- 无后缀账号 -->
	<property name="username" value="10001"/>
        <!-- 16位授权码 -->
	<property name="password" value="abcdabcdabcd"/>
	<property name="javaMailProperties">
		<props>
			<prop key="mail.smtp.auth">true</prop>
                        <!-- 设置超时时间不宜过短,否则将出现连接超时异常 -->
			<!--<prop key="mail.smtp.timeout">25000</prop>-->
			<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
                        <prop key="mail.smtp.socketFactory.port">465</prop>
			<!-- 如果是网易邮箱, mail.smtp.starttls.enable 设置为 false-->
                        <!-- QQ邮箱需要SSL协议,网易不需要 -->
			<prop key="mail.smtp.starttls.enable">true</prop>
		</props>
	</property>
</bean>

四、测试

配置好XML后使用MailSender对象的send()方法发送邮件,成功接收。

 

参考:

[11楼回帖]JSP中使用Javamail发送QQ邮件535错误,提示使用授权码登陆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值