`
xaocaotanghui
  • 浏览: 55543 次
  • 性别: Icon_minigender_1
  • 来自: 广西
文章分类
社区版块
存档分类
最新评论

利用Spring发送邮件

 
阅读更多

Spring提供了MailSender的一个子接口, 即org.springframework.mail.javamail.JavaMailSender。

Spring还提供了一个回调接口org.springframework.mail.javamail.MimeMessagePreparator, 用于准备JavaMail的MIME信件。

1.发送简单的文本邮件

import java.util.Properties;

import org.springframework.mail.SimpleMailMessage; 
import org.springframework.mail.javamail.JavaMailSenderImpl; 

/** 
* 本类测试简单邮件 
* 直接用邮件发送
* @author Administrator
*
*/ 
public class SingleMailSend { 
public static void main(String args[]){ 
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); 
// 设定mail server 
senderImpl.setHost( " smtp.163.com " );

// 建立邮件消息 
SimpleMailMessage mailMessage = new SimpleMailMessage(); 
// 设置收件人,寄件人 用数组发送多个邮件
// String[] array = new String[] {"sun111@163.com","sun222@sohu.com"}; 
// mailMessage.setTo(array); 
mailMessage.setTo( " toEmail@sina.com " ); 
mailMessage.setFrom( " userName@163.com " ); 
mailMessage.setSubject( " 测试简单文本邮件发送! " ); 
mailMessage.setText( " 测试我的简单邮件发送机制!! " ); 

senderImpl.setUsername( " userName " ) ; // 根据自己的情况,设置username 
senderImpl.setPassword( " password " ) ; // 根据自己的情况, 设置password 

Properties prop = new Properties() ;
prop.put( " mail.smtp.auth " , " true " ) ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确 
prop.put( " mail.smtp.timeout " , " 25000 " ) ; 
senderImpl.setJavaMailProperties(prop); 
// 发送邮件 
senderImpl.send(mailMessage); 

System.out.println( " 邮件发送成功.. " ); 
} 
} 

 2.发送简单的html邮件
org.springframework.mail.javamail.MimeMessageHelper是处理JavaMail邮件常用的顺手组件之一。它可以让你摆脱繁复的javax.mail.internetAPI类

import java.util.Properties;

import javax.mail.internet.MimeMessage; 
import org.springframework.mail.javamail.JavaMailSenderImpl; 
import org.springframework.mail.javamail.MimeMessageHelper; 
/** 
* 本类测试html邮件 
* @author sunny 
* 
*/ 
public class HTMLMailDemo { 
/** 
* @param args 
*/ 
public static void main(String[] args) throws Exception{ 
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); 

//设定mail server 
senderImpl.setHost("smtp.163.com"); 

//建立邮件消息,发送简单邮件和html邮件的区别 
MimeMessage mailMessage = senderImpl.createMimeMessage(); 
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage); 

//设置收件人,寄件人 
messageHelper.setTo("Mailto@sina.com"); 
messageHelper.setFrom("username@163.com"); 
messageHelper.setSubject("测试HTML邮件!"); 
//true 表示启动HTML格式的邮件 
messageHelper.setText("<html><head></head><body><h1>hello!!spring html Mail</h1></body></html>",true); 

senderImpl.setUsername("username") ; // 根据自己的情况,设置username
senderImpl.setPassword("password") ; // 根据自己的情况, 设置password
Properties prop = new Properties() ;
prop.put("mail.smtp.auth", "true") ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
prop.put("mail.smtp.timeout", "25000") ; 
senderImpl.setJavaMailProperties(prop); 
//发送邮件 
senderImpl.send(mailMessage); 

System.out.println("邮件发送成功.."); 
} 
} 

 

3.发送嵌套图片的邮件

Email允许添加附件,也允许在multipart信件中内嵌资源。内嵌资源可能是你在信件中希望使用的图像,或者样式表,但是又不想把它们作为附件。

 

import java.io.File; 
import java.util.Properties;

import javax.mail.internet.MimeMessage; 
import org.springframework.core.io.FileSystemResource; 
import org.springframework.mail.javamail.JavaMailSenderImpl; 
import org.springframework.mail.javamail.MimeMessageHelper; 
/** 
* 本类测试邮件中嵌套图片 
* @author sunny 
* 
*/ 
public class AttachedImageMail { 
public static void main(String[] args) throws Exception{ 
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); 

//设定mail server 
senderImpl.setHost("smtp.163.com"); 

//建立邮件消息,发送简单邮件和html邮件的区别 
MimeMessage mailMessage = senderImpl.createMimeMessage(); 
//注意这里的boolean,等于真的时候才能嵌套图片,在构建MimeMessageHelper时候,所给定的值是true表示启用, 
//multipart模式 
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true); 

//设置收件人,寄件人 
messageHelper.setTo("toMail@sina.com"); 
messageHelper.setFrom("username@163.com"); 
messageHelper.setSubject("测试邮件中嵌套图片!!"); 
//true 表示启动HTML格式的邮件 
messageHelper.setText("<html><head></head><body><h1>hello!!spring image html mail</h1>" + 
"<img src=\"cid:aaa\"/></body></html>",true); 

FileSystemResource img = new FileSystemResource(new File("g:/123.jpg")); 

messageHelper.addInline("aaa",img); 

senderImpl.setUsername("username") ; // 根据自己的情况,设置username
senderImpl.setPassword("password") ; // 根据自己的情况, 设置password
Properties prop = new Properties() ;
prop.put("mail.smtp.auth", "true") ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
prop.put("mail.smtp.timeout", "25000") ; 
senderImpl.setJavaMailProperties(prop); 

//发送邮件 
senderImpl.send(mailMessage); 

System.out.println("邮件发送成功.."); 
} 
} 

 

4.发送包含附件的邮件

import java.io.File; 
import java.util.Properties;

import javax.mail.internet.MimeMessage; 
import org.springframework.core.io.FileSystemResource; 
import org.springframework.mail.javamail.JavaMailSenderImpl; 
import org.springframework.mail .javamail.MimeMessageHelper; 
public class AttachedFileMail { 
/** *//** 
* 本类测试的是关于邮件中带有附件的例子 
* @param args 
*/ 
public static void main(String[] args) throws Exception{ 
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); 

//设定mail server 
senderImpl.setHost("smtp.163.com"); 
//建立邮件消息,发送简单邮件和html邮件的区别 
MimeMessage mailMessage = senderImpl.createMimeMessage(); 
//注意这里的boolean,等于真的时候才能嵌套图片,在构建MimeMessageHelper时候,所给定的值是true表示启用, 
//multipart模式 为true时发送附件 可以设置html格式
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"utf-8"); 

//设置收件人,寄件人 
messageHelper.setTo("toMail@sina.com"); 
messageHelper.setFrom("username@163.com"); 
messageHelper.setSubject("测试邮件中上传附件!!"); 
//true 表示启动HTML格式的邮件 
messageHelper.setText("<html><head></head><body><h1>你好:附件中有学习资料!</h1></body></html>",true); 

FileSystemResource file = new FileSystemResource(new File("g:/test.rar")); 
//这里的方法调用和插入图片是不同的。 
messageHelper.addAttachment("test.rar",file); 

senderImpl.setUsername("username") ; // 根据自己的情况,设置username
senderImpl.setPassword("password") ; // 根据自己的情况, 设置password
Properties prop = new Properties() ;
prop.put("mail.smtp.auth", "true") ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
prop.put("mail.smtp.timeout", "25000") ; 
senderImpl.setJavaMailProperties(prop); 
//发送邮件 
senderImpl.send(mailMessage); 

System.out.println("邮件发送成功.."); 
} 

 此外,spring还可结合Velocity一起使用,具体参考文档

分享到:
评论

相关推荐

    spring各种邮件发送

    在"spring各种邮件发送"这个主题中,我们将探讨Spring框架如何帮助开发者实现电子邮件的发送。邮件服务在许多应用场景中都十分常见,例如用户注册确认、密码重置提醒等。 首先,Spring框架提供了`JavaMailSender`...

    用spring发送邮件

    然后,我们创建一个邮件服务类,利用Spring的`JavaMailSender`接口发送邮件: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; ...

    利用 spring mail 通过 gmail(SSL) 发邮件

    本教程将详细讲解如何利用Spring Mail通过Gmail的SSL(安全套接层)协议来发送邮件。 首先,我们需要在项目中引入Spring Mail的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    Spring Boot中利用JavaMailSender发送邮件的方法示例(附源码)

    在Spring Boot应用中,利用JavaMailSender发送邮件是一种常见的需求,Spring Boot的`spring-boot-starter-mail`模块为我们提供了方便的自动化配置。首先,我们需要在项目的`pom.xml`文件中引入这个依赖: ```xml ...

    Spring邮件发送

    这篇博客()将深入探讨如何利用Spring进行邮件发送。 首先,我们需要在项目中引入Spring的邮件支持依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.springframework ...

    spring定时发送邮件

    通过分析和运行这些文件,我们可以更深入地理解和学习如何在实际应用中利用Spring实现定时发送邮件的功能。 总结来说,Spring的定时任务和邮件服务功能为我们提供了强大的工具,能够自动化执行诸如发送邮件这样的...

    在spring利用javamail,quartz定时发送邮件

    本文将详细探讨如何在Spring环境中,利用JavaMail和Quartz库实现定时发送邮件的功能。 #### JavaMail简介 JavaMail API是一个允许Java应用程序读取和发送邮件的工具包。它提供了与不同邮件协议(如SMTP、POP3和...

    Spring 高效批量邮件发送

    在本话题中,我们将探讨“Spring高效批量邮件发送”这一技术点,这通常涉及到Spring框架中的邮件服务模块以及如何优化邮件发送的效率。 首先,Spring框架的MailSender接口是处理邮件发送的核心组件。它提供了send()...

    struts2+spring3.0+mybatis3.0.4集成的邮件发送实例(可上传附件)

    `SendService`会利用这些API创建`Session`,然后通过`Transport`对象发送邮件。 在生成HTML表格方面,`CreateHtmlTable`可能是用于生成邮件正文的HTML代码的工具类。这通常涉及字符串拼接或使用模板引擎,如...

    使用Spring发送邮件

    总的来说,使用Spring发送邮件是一个简单而强大的功能,它允许开发者轻松地集成邮件发送到各种业务逻辑中,提高应用的交互性和用户体验。通过理解和运用上述知识,你可以在自己的Java应用中实现高效、安全的邮件发送...

    spring JavaMailSenderImpl 发送邮件 java

    - **创建SimpleMailMessage对象**: SimpleMailMessage是Spring提供的一个预定义的邮件消息类,我们可以在这里设置邮件的发件人、收件人、主题和正文。 - **调用send方法发送邮件**: 使用JavaMailSenderImpl的send...

    spring线程发送邮件

    接下来,为了实现异步发送邮件,我们可以利用Spring的`@Async`注解和`TaskExecutor`。首先,我们需要创建一个`@Configuration`类来配置`TaskExecutor`: ```java @Configuration @EnableAsync public class ...

    Spring发送邮件简单实例

    标题中的"Spring发送邮件简单实例"表明我们即将探讨的是如何使用Spring框架来实现电子邮件的发送功能。Spring框架提供了丰富的工具类和接口,使得在Java应用中发送邮件变得相当简便。这个实例可能是通过...

    spring+velocity发送邮件

    在本场景中,我们将利用Spring来管理JavaMail Sender对象,以便于发送邮件。 #### Velocity模板引擎 Velocity是一个基于Java的模板引擎,它允许开发者通过简单的模板语言来生成HTML网页、XML数据或者普通的文本。在...

    spring发送邮件

    从提供的文件列表中,我们可以推测`spring发送邮件.md`可能是一个Markdown格式的文档,详细讲解了如何配置和使用Spring发送邮件,而`1.png`、`2.png`和`3.png`可能是相关的截图,帮助读者更好地理解和学习这一过程。...

    Spring mail发送邮件实例

    通过以上步骤,我们可以利用 Spring Mail 模块轻松地实现邮件的发送功能。此外,Spring Mail 还提供了更为高级的功能,比如发送 HTML 格式的邮件、附件等,这些都是在实际应用中非常有用的功能。

    手把手教你 ,spring定时发送邮件

    本教程将聚焦于Spring的一个实用特性——定时任务,特别是如何利用Spring集成JavaMailSender来实现定时发送邮件。我们将探讨以下知识点: 1. **Spring定时任务(Scheduled Tasks)** Spring通过`@Scheduled`注解和`...

    spring邮件服务(java邮件发送)

    本教程将深入探讨如何利用Spring框架的邮件服务模块来实现Java邮件发送功能,包括发送多附件、多人发送、抄送和暗送。 首先,`SpringMailUtil.java`这个文件很可能是邮件服务的核心工具类,它封装了邮件发送的相关...

    java发送邮件(两种方式-springcloud方式+静态调用方式).zip

    在Spring Cloud框架中,我们可以利用`spring-cloud-starter-mail`模块来发送邮件。首先,需要在`pom.xml`文件中引入依赖: ```xml &lt;groupId&gt;org.springframework.cloud &lt;artifactId&gt;spring-cloud-starter-mail ...

Global site tag (gtag.js) - Google Analytics