关于使用 Spring 发送简单邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于使用 Spring 发送简单邮件相关的知识,希望对你有一定的参考价值。

  这是通过Spring 框架内置的功能完成简单邮件发送的测试用例。

  1. 导入相关的 jar 包.

Spring 邮件抽象层的主要包为 org.springframework.mail

它包括了发送电子邮件的主要接口 MailSender,和值对象 SimpleMailMessage,它封装了简单邮件的属性。

如 from,to,cc, subject,text。

  2. 在邮箱设置中打开邮件的发送服务:

  技术分享

  3. 在src目录下建立mail.properties文件里边包含一下内容

mail.host=smtp.exmail.qq.com (邮箱的发送域名设置)
mail.username=你的邮箱名
mail.password=你的邮箱密码
mail.from=发送方的邮箱

  4. spring配置

 1 <!-- 加载Properties文件 -->
 2 <bean id="configurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
 3     <property name="locations">
 4         <list>
 5             <value>classpath:mail.properties</value>
 6         </list>
 7     </property>
 8 </bean>
 9 <bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
10     <property name="from">
11         <value>${mail.from}</value>
12     </property>
13     <!-- 查看SimpleMailMessage源码还可以注入标题,内容等 -->
14 </bean>
15 <!-- 申明JavaMailSenderImpl对象 -->
16 <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
17     <property name="defaultEncoding" value="UTF-8" />
18     <property name="host" value="${mail.host}" />
19     <property name="username" value="${mail.username}" />
20     <property name="password" value="${mail.password}" />
21     <property name="javaMailProperties">
22         <props>
23             <!-- 设置认证开关 -->
24             <prop key="mail.smtp.auth">true</prop>
25             <!-- 启动调试开关 -->
26             <prop key="mail.debug">true</prop>
27             <!-- 设置发送延时 -->
28             <prop key="mail.smtp.timeout">0</prop>
29         </props>
30     </property>
31 </bean>
32 </beans>

  5. action中添加简单的发送方法

 1 /**
 2 * 本类测试邮件发送html形式
 3 */
 4 public class SingleMailSend {
 5     static ApplicationContext actx =
 6         new ClassPathXmlApplicationContext("applicationContext.xml");
 7     static MailSender sender = (MailSender) actx.getBean("mailSender");
 8     static SimpleMailMessage mailMessage =
 9         (SimpleMailMessage) actx.getBean("mailMessage");
10     public static void main(String args[]) throws MessagingException {
11         mailMessage.setSubject("你好");
12         mailMessage.setText("这个是一个通过Spring框架来发送邮件的小程序");
13         mailMessage.setTo("******@qq.com");
14         sender.send(mailMessage);
15     }
16 }

 

以上是关于关于使用 Spring 发送简单邮件的主要内容,如果未能解决你的问题,请参考以下文章

使用spring的JavaMailSender发送邮件

Javascript - 使用 HTML 片段通过电子邮件发送 JSON 输出

Spring整合freemarker发送邮件

使用Spring Boot 优雅地发送邮件

C#和ASP.NET通过Gmail账户发送邮件的代码

关于JDK8发送邮件失败的问题