一、抛出异常
异常信息:535 Error: authentication failed
二、确认账号与授权码
由于使用javamail发送邮件需要进行第三方邮箱登录,认证时需要账号和授权码。不同的邮箱授权码获取方法不同,这里以QQ邮箱为例:


关于账号的填写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()方法发送邮件,成功接收。
参考: