异常处理
在进行发送时,抛出异常
javax.mail.NoSuchProviderException: smtp…….
网上搜索,说是因为jar版本的问题。
修改maven配置信息
<dependencies>
......
<!-- java mail -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-javamail_1.4_spec</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-activation_1.1_spec</artifactId>
</exclusion>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
问题解决。
spring XML配置
<!--163邮箱-->
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.163.com" />
<property name="username" value="163account@163.com" />
<property name="password" value="163password" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
</props>
</property>
</bean>
<!--QQ邮箱-->
<bean id="qqMailServer" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.qq.com" />
<property name="username" value="qqaccount@qq.com" />
<property name="password" value="qq授权码" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
<prop key="mail.smtp.port">465</prop>
<prop key="mail.smtp.socketFactory.port">465</prop>
</props>
</property>
</bean>
在使用QQ发送测试邮件时,一开始使用“163邮箱”的配置,结果总提示认证失败。
改为“QQ邮箱“配置后,测试成功。
QQ授权码在:QQ邮箱->邮箱设置->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务中获取。