备忘录:使用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发送各种类型的邮件,包括简单的文本邮件和HTML邮件。 首先,Spring邮件抽象层的核心接口是`MailSender`,它定义了发送邮件的基本操作。`SimpleMailMessage`是用于封装基本邮件属性的值...
通过以上步骤,你就可以在Java应用中使用Spring发送邮件了。当然,实际的邮件发送可能更复杂,涉及HTML内容、附件、多部分消息等,可以使用`MimeMessage`和`MimeMessageHelper`类来构建复杂的邮件结构。例如,添加...
在"spring各种邮件发送"这个主题中,我们将探讨Spring框架如何帮助开发者实现电子邮件的发送。邮件服务在许多应用场景中都十分常见,例如用户注册确认、密码重置提醒等。 首先,Spring框架提供了`JavaMailSender`...
综上所述,Java结合Spring框架发送邮件是一个实用且功能强大的解决方案,通过合理的配置和编程,可以满足各种业务场景下的邮件需求。在实际项目中,根据具体的邮件服务提供商和业务需求,可能会有更多细节需要考虑和...
Spring的邮件支持是通过JavaMailSender接口实现的,它允许开发者轻松地发送各种类型的邮件,包括HTML、文本或者带有附件的邮件。 在本项目中,结合Struts和Spring,我们可以按照以下步骤实现邮件发送: 1. **配置...
接下来,我们将介绍如何使用Spring发送不同类型的邮件: 1. **发送纯文本邮件**: 要发送纯文本邮件,你可以创建一个`SimpleMailMessage`对象,设置发件人、收件人、主题和正文,然后调用`JavaMailSender`的`send...
以上代码覆盖了Spring Boot中发送各种类型邮件的基本需求。在实际应用中,可能还需要处理异常、异步发送、模板引擎集成等功能,但这些基础示例已经足够帮助理解如何在Spring Boot中使用邮件服务。记得根据实际邮件...
在Spring MVC框架中,实现邮件发送功能通常涉及配置Spring的JavaMailSender接口和使用模板引擎如FreeMarker来创建动态邮件内容。以下是一个详细的步骤...这将使你的应用程序能够高效、灵活地发送各种类型的电子邮件。
**Spring邮件发送** 在Java开发中,Spring框架提供了一种简单而强大的方式来发送电子邮件。Spring的`JavaMailSender`接口以及其实现类`SimpleMailMessage`和`MailMessage`,使得开发者能够轻松地集成邮件服务到应用...
根据提供的信息,我们可以详细探讨如何使用Spring框架结合Velocity模板引擎来实现邮件的自动化发送功能。这一过程涉及到Spring框架的基本配置、Velocity模板引擎的使用以及JavaMail API的应用。 ### Spring框架与...
标题中的“spring mail通过代理发送邮件”指的是使用Spring框架中的JavaMailSender接口和相关的支持类,通过设置代理服务器来发送电子邮件。在某些网络环境中,直接访问SMTP服务器可能会受到限制,这时就需要通过...
总结来说,Spring发送邮件需要`spring-context`、`spring-context-support`、`java-mail`、`javax.activation`这些核心库,以及可能需要的测试库`junit`。理解和掌握这些库的作用及如何配置它们,对于实现Spring中的...
其中,Spring的JavaMailSenderImpl是用于发送电子邮件的一个重要工具,它使得开发者能够方便地集成邮件服务到他们的应用中。下面将详细介绍这个知识点。 **1. Spring的JavaMailSender接口与JavaMailSenderImpl实现*...
3. 带附件的邮件发送支持发送带有附件的邮件,附件可以是任意类型的文件。 4. 模板邮件发送支持使用模板引擎生成邮件内容,并发送模板邮件。 ## 安装使用步骤 1. 环境准备 安装Eclipse J2EE最新版,自带Maven支持...
标题“Spring整合Quartz定时发送邮件”涉及到两个主要技术领域:Spring框架和Quartz调度库。这个场景的应用是使用Quartz来安排任务,而Spring则提供了集成环境和邮件服务支持。 首先,Quartz是一个开源的作业调度...
通过这种方式,我们可以灵活地构建和发送各种类型的邮件,满足日常开发中的各种需求。Spring Boot的`spring-boot-starter-mail`模块简化了邮件发送的配置和使用,使得开发者能够更加专注于业务逻辑,而不是底层通信...
在这个场景中,Spring 提供了电子邮件服务的抽象层,使得发送邮件变得简单。 2. **FreeMarker**:FreeMarker 是一个基于模板的 Java 模板引擎,常用于生成动态 HTML、XML 或其他文本格式的文档。在这里,我们使用 ...
通过以上步骤,我们已经学会了如何使用Spring Boot发送不同类型的邮件。在实际项目中,你可能需要根据业务需求进行更复杂的定制,如添加附件、设置抄送和密送等。总之,Spring Boot的邮件服务功能强大且易于使用,...
在本项目中,我们将关注Spring如何实现“无敌邮件发送”功能。邮件服务在现代软件系统中扮演着重要的角色,例如用于发送通知、验证用户账户或提供客户服务。Spring框架通过其MailSender接口和JavaMailSenderImpl实现...