备忘录:使用Spring发送各种类型的邮件,经测试,发送方和接收方可以是gmail,163。
当发送方是gmail时,设置有点不同。
Spring的设置:
- <!-- Activates annotation-based bean configuration -->
- <!--
-
<context:component-scan base-package="com.aboy" />
- -->
-
- <!-- JavaMailSender -->
- <!--
-
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
-
<property name="host" value="smtp.163.com" />
-
<property name="username" value="obullxl@163.com" />
-
<property name="password" value="********" />
-
<property name="javaMailProperties">
- <props>
-
<prop key="mail.smtp.auth">true</prop>
-
<prop key="mail.smtp.timeout">25000</prop>
- </props>
- </property>
- </bean>
- -->
-
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
-
<property name="host" value="smtp.gmail.com" />
-
<property name="username" value="obullxl@gmail.com" />
-
<property name="password" value="********" />
-
<property name="javaMailProperties">
- <props>
-
<prop key="mail.smtp.auth">true</prop>
-
<prop key="mail.smtp.timeout">25000</prop>
-
<prop key="mail.smtp.port">465</prop>
-
<prop key="mail.smtp.socketFactory.port">465</prop>
-
<prop key="mail.smtp.socketFactory.fallback">false</prop>
-
<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
- </props>
- </property>
- </bean>
-
- <!-- 简单的message -->
-
<bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
-
<property name="to" value="obullxl@163.com" />
-
<property name="from" value="obullxl@gmail.com" />
-
<property name="subject" value="测试邮件" />
- </bean>
-
- <!-- MimeMessage -->
-
<bean id="mimeMessage" class="javax.mail.internet.MimeMessage" factory-bean="javaMailSender"
-
factory-method="createMimeMessage" />
<!-- Activates annotation-based bean configuration -->
<!--
<context:component-scan base-package="com.aboy" />
-->
<!-- JavaMailSender -->
<!--
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.163.com" />
<property name="username" value="obullxl@163.com" />
<property name="password" value="********" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">25000</prop>
</props>
</property>
</bean>
-->
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com" />
<property name="username" value="obullxl@gmail.com" />
<property name="password" value="********" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">25000</prop>
<prop key="mail.smtp.port">465</prop>
<prop key="mail.smtp.socketFactory.port">465</prop>
<prop key="mail.smtp.socketFactory.fallback">false</prop>
<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
</props>
</property>
</bean>
<!-- 简单的message -->
<bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
<property name="to" value="obullxl@163.com" />
<property name="from" value="obullxl@gmail.com" />
<property name="subject" value="测试邮件" />
</bean>
<!-- MimeMessage -->
<bean id="mimeMessage" class="javax.mail.internet.MimeMessage" factory-bean="javaMailSender"
factory-method="createMimeMessage" />
上面的设置中,第一个JavaMailSender的发送方为163邮箱,后面的一个为gmail邮箱的。
下面是单元测试代码:
- private JavaMailSender mailSender;
- private MailMessage mailMessage;
- private MimeMessage mimeMessage;
-
- @Before
- public void setUp() {
-
ApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/mail-context.xml");
-
- Assert.notNull(context);
-
- this.mailSender = context.getBean(JavaMailSender.class);
- this.mailMessage = context.getBean(MailMessage.class);
- this.mimeMessage = context.getBean(MimeMessage.class);
-
- Assert.notNull(this.mailSender);
- Assert.notNull(this.mailMessage);
- Assert.notNull(this.mimeMessage);
- }
-
- /**
- * 普通文本邮件
- */
- @Test
- public void testSendPlainTextMail() {
-
this.mailMessage.setSubject("普通文本邮件");
-
this.mailMessage.setText("测试Spring发送Email.");
-
- try {
- mailSender.send((SimpleMailMessage) this.mailMessage);
- } catch (MailException e) {
-
System.out.println("Oops: 发送Email失败了....");
- e.printStackTrace();
- }
- }
-
- /**
- * HTML格式邮件
- * @throws MessagingException
- */
- @Test
- public void testSendHTMLMail() throws MessagingException {
-
MimeMessageHelper messageHelper = new MimeMessageHelper(this.mimeMessage, true, "UTF-8");
-
-
messageHelper.setTo("obullxl@163.com");
-
messageHelper.setFrom("obullxl@gmail.com");
-
messageHelper.setSubject("HTML格式邮件");
-
messageHelper.setText("<html><head></head><body><h2>Hello! Spring!</h2><b>XXX(中国)信息技术有限公司</b></body></html>", true);
-
- this.mailSender.send(this.mimeMessage);
-
- }
-
- /**
- * 带附件的HTML格式邮件
- * @throws MessagingException
- */
- @Test
- public void testSetAttachMail() throws MessagingException {
-
MimeMessageHelper messageHelper = new MimeMessageHelper(this.mimeMessage, true, "UTF-8");
-
-
messageHelper.setTo("obullxl@163.com");
-
messageHelper.setFrom("obullxl@gmail.com");
-
messageHelper.setSubject("带附件的HTML格式邮件");
-
messageHelper.setText("<html><head></head><body><h2>Hello! Spring!</h2><b>XXX(中国)信息技术有限公司</b></body></html>", true);
-
-
FileSystemResource file = new FileSystemResource(new File("E:/Study/Spring/Spring-Validator.jpg")); // 根据个人情况设置
-
messageHelper.addInline("SpringValidator", file);
-
messageHelper.addAttachment("SpringValidator", file);
-
-
ClassPathResource resource = new ClassPathResource("jbpm.cfg.xml"); // 根据个人情况设置
-
messageHelper.addInline("jbpm.cfg.xml", resource);
-
messageHelper.addAttachment("jbpm.cfg.xml", resource);
-
- this.mailSender.send(this.mimeMessage);
- }
private JavaMailSender mailSender;
private MailMessage mailMessage;
private MimeMessage mimeMessage;
@Before
public void setUp() {
ApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/mail-context.xml");
Assert.notNull(context);
this.mailSender = context.getBean(JavaMailSender.class);
this.mailMessage = context.getBean(MailMessage.class);
this.mimeMessage = context.getBean(MimeMessage.class);
Assert.notNull(this.mailSender);
Assert.notNull(this.mailMessage);
Assert.notNull(this.mimeMessage);
}
/**
* 普通文本邮件
*/
@Test
public void testSendPlainTextMail() {
this.mailMessage.setSubject("普通文本邮件");
this.mailMessage.setText("测试Spring发送Email.");
try {
mailSender.send((SimpleMailMessage) this.mailMessage);
} catch (MailException e) {
System.out.println("Oops: 发送Email失败了....");
e.printStackTrace();
}
}
/**
* HTML格式邮件
* @throws MessagingException
*/
@Test
public void testSendHTMLMail() throws MessagingException {
MimeMessageHelper messageHelper = new MimeMessageHelper(this.mimeMessage, true, "UTF-8");
messageHelper.setTo("obullxl@163.com");
messageHelper.setFrom("obullxl@gmail.com");
messageHelper.setSubject("HTML格式邮件");
messageHelper.setText("<html><head></head><body><h2>Hello! Spring!</h2><b>XXX(中国)信息技术有限公司</b></body></html>", true);
this.mailSender.send(this.mimeMessage);
}
/**
* 带附件的HTML格式邮件
* @throws MessagingException
*/
@Test
public void testSetAttachMail() throws MessagingException {
MimeMessageHelper messageHelper = new MimeMessageHelper(this.mimeMessage, true, "UTF-8");
messageHelper.setTo("obullxl@163.com");
messageHelper.setFrom("obullxl@gmail.com");
messageHelper.setSubject("带附件的HTML格式邮件");
messageHelper.setText("<html><head></head><body><h2>Hello! Spring!</h2><b>XXX(中国)信息技术有限公司</b></body></html>", true);
FileSystemResource file = new FileSystemResource(new File("E:/Study/Spring/Spring-Validator.jpg")); // 根据个人情况设置
messageHelper.addInline("SpringValidator", file);
messageHelper.addAttachment("SpringValidator", file);
ClassPathResource resource = new ClassPathResource("jbpm.cfg.xml"); // 根据个人情况设置
messageHelper.addInline("jbpm.cfg.xml", resource);
messageHelper.addAttachment("jbpm.cfg.xml", resource);
this.mailSender.send(this.mimeMessage);
}
运行测试用例,即可看到结果!
分享到:
相关推荐
利用spring下的一个类进行邮件发送,内附具体用法
它包括了发送电子邮件的主要接口MailSender,和值对象SimpleMailMessage,它封装了简单邮件的属性如from, to,cc, subject,text。 包里还包含一棵以MailException为根的checked Exception继承树,它们提供了对底层...
springboot集成javamail,实现发送邮件的功能,可以发送文本类型邮件,也可以发送html格式的邮件,其中整合了mysql、mybatis 具体集成步骤可以参考我的文章: https://www.jianshu.com/p/668d320b4981
7.3.2. Spring里的通知类型 7.4. Spring里的advisor(Advisor) API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对...
7.3.2. Spring里的通知类型 7.3.2.1. 拦截around通知 7.3.2.2. 前置通知 7.3.2.3. 异常通知 7.3.2.4. 后置通知 7.3.2.5. 引入通知 7.4. Spring里的advisor(Advisor) API 7.5. 使用ProxyFactoryBean创建AOP代理 ...
spring boot demo是一个用于深度学习并实战...强大的ORM框架)、upload( 本地文件上传和七牛云文件上传)、redis( 缓存)、ehcache( 缓存)、email( 发送各种类型邮件)、task( 基础定时任务)、quartz( 动态管理定时任务)等
7.3.2. Spring里的通知类型 7.4. Spring里的Advisor API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对类进行代理 ...
plus(快速操作Mybatis)、BeetlSQL(强大的ORM框架)、upload(本地文件上传和七牛云文件上传)、redis(缓存)、ehcache(缓存)、email(发送各种类型邮件)、task(基础定时任务)、quartz(动态管理定时任务)、xxl-job(分布式...
plus(快速操作Mybatis)、BeetlSQL(强大的ORM框架)、upload(本地文件上传和七牛云文件上传)、redis(缓存)、ehcache(缓存)、email(发送各种类型邮件)、task(基础定时任务)、quartz(动态管理定时任务)、xxl-job(分布式...
7.3.2. Spring里的通知类型 7.4. Spring里的advisor(Advisor) API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对...
第1章 Spring简介 1 1.1 实例化Spring IoC容器 1 1.1.1 问题 1 1.1.2 解决方案 1 1.1.3 工作原理 3 1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用...
7.3.2. Spring里的通知类型 7.4. Spring里的Advisor API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对类进行代理 ...
功能特点: 发送邮件: 用户可以通过系统发送邮件,包括设置收件人、主题、正文等信息。...附件处理: 需要支持不同类型的邮件附件,确保能够准确发送和接收附件。 安全性意识: 需要考虑邮件传输
.subject("使用JavaMail发送混合组合类型的邮件测试主题") // .attachFiles(attachFiles) .content(contentBuf.toString()) .toRecipients(toRecipients); ServiceResponse<String> serviceResponse = ...
第1章 Spring简介 1 1.1 实例化Spring IoC容器 1 1.1.1 问题 1 1.1.2 解决方案 1 1.1.3 工作原理 3 1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java...附录A JavaMail发送邮件 附录B 在Spring中开发Web Service
Spring Email抽象核心接口MailSender,其实现类JavaMailSenderImpl,在其中配置邮件 服务器host,pssword,协议等 。。。。。 1.发送简单的消息 SimpleMailMessage:发送简单的消息 2.发送丰富的消息(比如带有附件,内...
12.2.1配置邮件发送器 12.2.2构建电子邮件 12.3调度任务 12.3.1使用javatimer调度任务 12.3.2使用quartz调度器 12.3.3按调度计划调用方法 12.4使用jmx管理springbean 12.4.1将springbean输出为mbean 12.4.2...
12.2.1 配置邮件发送器 12.2.2 构建电子邮件 12.3 调度任务 12.3.1 使用Java Timer调度任务 12.3.2 使用Quartz调度器 12.3.3 按调度计划调用方法 12.4 使用JMX管理Spring Bean 12.4.1 将Spring Bean输出为...
12.2.1 配置邮件发送器 12.2.2 构建电子邮件 12.3 调度任务 12.3.1 使用Java Timer调度任务 12.3.2 使用Quartz调度器 12.3.3 按调度计划调用方法 12.4 使用JMX管理Spring Bean 12.4.1 将Spring Bean输出为...