您的位置:首页 > 编程语言 > Java开发

使用Spring 发送邮件时遇到的问题

2016-12-15 16:37 435 查看

异常处理

在进行发送时,抛出异常

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服务中获取。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring 邮件