`
litxuf
  • 浏览: 123272 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用Spring发送邮件(一)

阅读更多

  Spring对发送邮件提供了一个抽象层,对接收邮件没有提供额外的支持。Spring在org.springframework.mail包的MailMessage和MailSender这两个高层抽象层接口描述了邮件消息和发送者。

       Spring通过MailSender的子接口JavaMailSender提供了发送负责邮件的功能。JavaMailSender类实现了该子接口,支持JavaMail的MimeMessage和Spring的MailMessage。

       MimeMessageHelper是MimeMessage的封装类,提供了编辑MimeMessage的方法,提供了设置html邮件内容、内嵌文件(如图片文件、音频文件等)及邮件附件的支持。

 

一、发送纯文本邮件

      在Spring中,使用JavaMailSenderImpl发送纯文本邮件。

Java代码 复制代码
  1. package com.bb.spring.email;   
  2. import org.springframework.context.ApplicationContext;   
  3. import org.springframework.context.support.FileSystemXmlApplicationContext;   
  4. import org.springframework.mail.SimpleMailMessage;   
  5. import org.springframework.mail.javamail.JavaMailSender;   
  6. public class MailService {   
  7.     
  8.  public void sendSimpleMail(JavaMailSender sender){   
  9.   SimpleMailMessage msg=new SimpleMailMessage();   
  10.   msg.setFrom("<A href="mailto:dongkk@sina.com">dongkk@sina.com</A>");   
  11.   msg.setTo("<A href="mailto:dongkk@sina.com">dongkk@sina.com</A>");   
  12.   msg.setReplyTo("<A href="mailto:dongkk@sina.com">dongkk@sina.com</A>");   
  13.   msg.setSubject("使用Spring发送邮件");   
  14.   msg.setText("test Spring发送邮件");   
  15.      
  16.   sender.send(msg);   
  17.   System.out.println("成功发送!");    
  18.  }   
  19.     
  20.  public static void main(String[] args) {   
  21.   // TODO Auto-generated method stub   
  22.   ApplicationContext ctx = new FileSystemXmlApplicationContext(      
  23.         "src/applicationContext.xml");    
  24.   JavaMailSender sender=(JavaMailSender) ctx.getBean("mailsender");   
  25.      
  26.   MailService ms=new MailService();   
  27.   ms.sendSimpleMail(sender);   
  28.  }   
  29. }  
package com.bb.spring.email;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
public class MailService {
 
 public void sendSimpleMail(JavaMailSender sender){
  SimpleMailMessage msg=new SimpleMailMessage();
  msg.setFrom("dongkk@sina.com");
  msg.setTo("dongkk@sina.com");
  msg.setReplyTo("dongkk@sina.com");
  msg.setSubject("使用Spring发送邮件");
  msg.setText("test Spring发送邮件");
  
  sender.send(msg);
  System.out.println("成功发送!"); 
 }
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  ApplicationContext ctx = new FileSystemXmlApplicationContext(   
        "src/applicationContext.xml"); 
  JavaMailSender sender=(JavaMailSender) ctx.getBean("mailsender");
  
  MailService ms=new MailService();
  ms.sendSimpleMail(sender);
 }
}

   在src下的applicationContext.xml中对JavaMailSenderImpl的配置如下:

  

Java代码 复制代码
  1. <bean id="mailsender" class="org.springframework.mail.javamail.JavaMailSenderImpl">   
  2.    <property name="host" value="smtp.sina.com.cn"/>   
  3.    <property name="username" value="dongkk"/>   
  4.    <property name="password" value="123456"/>   
  5.    <property name="javaMailProperties">     
  6.             <props>     
  7.                 <prop key="mail.smtp.auth">true</prop>     
  8.                 <prop key="mail.smtp.timeout">25000</prop>     
  9.             </props>     
  10.    </property>     
  11. </bean>  
<bean id="mailsender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
   <property name="host" value="smtp.sina.com.cn"/>
   <property name="username" value="dongkk"/>
   <property name="password" value="123456"/>
   <property name="javaMailProperties">  
            <props>  
                <prop key="mail.smtp.auth">true</prop>  
                <prop key="mail.smtp.timeout">25000</prop>  
            </props>  
   </property>  
</bean>

    此时可以发送成功。

 

二、发送html邮件

      发送html邮件和发送纯文本邮件差不多,但必须用MimeMessage创建邮件消息,可以通过MimeMessageHelper类创建并填充MimeMessage。

    

Java代码 复制代码
  1. public void sendHtmlMail(JavaMailSender sender) throws MessagingException{   
  2.         MimeMessage msg=sender.createMimeMessage();   
  3.     //创建MimeMessageHelper实例,第2个参数表示是否为multipart邮件,第3个参数表示MimeMessage的编码   
  4.         MimeMessageHelper helper=new MimeMessageHelper(msg,false,"utf8");   
  5.         helper.setFrom("dongkk@sina.com");   
  6.         helper.setTo("dongkk@sina.com");   
  7.         helper.setSubject("注册成功");   
  8.         String htmlText="<html><head>"+   
  9.         "<meta http-equiv=\"content-type\" content=\"text/html;charset=utf8\">"+   
  10.         "</head><body>" +   
  11.         "恭喜你在淘宝网:<font color='red' size='30'>注册成功</font>"+   
  12.         "</body></html>";   
  13.            
  14.         //设置邮件内容,第2个参数为true表示该邮件为html邮件   
  15.         helper.setText(htmlText,true);    
  16.            
  17.         sender.send(msg);   
  18.         System.out.println("成功发送html邮件!");     
  19.     }  
public void sendHtmlMail(JavaMailSender sender) throws MessagingException{
		MimeMessage msg=sender.createMimeMessage();
	//创建MimeMessageHelper实例,第2个参数表示是否为multipart邮件,第3个参数表示MimeMessage的编码
		MimeMessageHelper helper=new MimeMessageHelper(msg,false,"utf8");
		helper.setFrom("dongkk@sina.com");
		helper.setTo("dongkk@sina.com");
		helper.setSubject("注册成功");
		String htmlText="<html><head>"+
		"<meta http-equiv=\"content-type\" content=\"text/html;charset=utf8\">"+
		"</head><body>" +
		"恭喜你在淘宝网:<font color='red' size='30'>注册成功</font>"+
		"</body></html>";
		
		//设置邮件内容,第2个参数为true表示该邮件为html邮件
		helper.setText(htmlText,true); 
		
		sender.send(msg);
		System.out.println("成功发送html邮件!");	
	}

    运行方法与纯文本一样:

    MailService ms=new MailService();
    ms.sendHtmlMail(sender);

分享到:
评论

相关推荐

    Spring Boot整合邮件发送并保存历史发送邮箱

    项目主要是使用 Spring Boot 发送邮件,主要的技术点有: 1、Spring Boot +mybatis的整合 2、Spring Boot项目中jsp的使用 3、Spring Boot 发送邮件(文本格式的邮件、发送HTML格式的邮件、发送带附件 的邮件、...

    java 发送邮件 spring发送邮件Mail

    Spring框架提供了一种优雅的方式来处理这个任务,它整合了JavaMailSender接口和JavaMail API,使得在Java应用程序中发送邮件变得更加简单。让我们深入探讨这个主题。 首先,JavaMail API是Java用来处理邮件收发的...

    java发送邮件 spring发送邮件

    通过以上步骤,你就可以在Java应用中使用Spring发送邮件了。当然,实际的邮件发送可能更复杂,涉及HTML内容、附件、多部分消息等,可以使用`MimeMessage`和`MimeMessageHelper`类来构建复杂的邮件结构。例如,添加...

    spring发送邮件demo

    下面将详细介绍如何使用Spring发送邮件。 首先,我们需要在项目中引入Spring的邮件支持。这通常通过添加`spring-context-support`依赖来完成,该依赖包含了处理邮件发送所需的类。在Maven项目中,可以在pom.xml文件...

    Spring 使用163发邮件带附件

    标题 "Spring 使用163发邮件带附件" 涉及到的是在Java开发中,使用Spring框架发送电子邮件,特别是包含附件的邮件。这通常在系统需要自动化通知、报告发送或者用户验证过程中非常常见。Spring提供了JavaMailSender...

    spring各种邮件发送

    在IT行业中,Spring框架是Java开发中的一个关键组件,它提供了丰富的...对于那些需要发送大量或定期邮件的应用,还可以考虑使用邮件队列服务,如Amazon SES或SendGrid,配合Spring进行集成,实现高效、可靠的邮件发送。

    使用Spring发送邮件

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

    spring集成邮件服务

    而Spring集成邮件服务则是一个常见的需求,特别是对于那些需要发送确认邮件、通知或者报告的应用来说。下面将详细阐述Spring如何与JavaMail API结合,实现邮件服务的集成。 首先,我们需要理解JavaMail API。...

    Spring邮件发送源码

    接下来,我们将介绍如何使用Spring发送不同类型的邮件: 1. **发送纯文本邮件**: 要发送纯文本邮件,你可以创建一个`SimpleMailMessage`对象,设置发件人、收件人、主题和正文,然后调用`JavaMailSender`的`send...

    使用Spring Boot 开发支持多附件邮件发送微服务平台代码

    本项目聚焦于使用Spring Boot来开发一个支持多附件邮件发送的微服务平台。这个平台可以方便地集成到各种业务场景中,例如发送报告、通知或者用户验证邮件。 首先,我们需要了解Spring Boot的邮件服务模块——`...

    Spring 高效批量邮件发送

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

    spring发送邮件所需jar包

    总结来说,Spring发送邮件需要`spring-context`、`spring-context-support`、`java-mail`、`javax.activation`这些核心库,以及可能需要的测试库`junit`。理解和掌握这些库的作用及如何配置它们,对于实现Spring中的...

    用spring发送邮件

    总之,使用Spring发送邮件是一个便捷的过程,只需要配置好SMTP服务器信息,通过`JavaMailSender`接口即可轻松实现。在遇到问题时,通过检查配置、阅读日志和调试可以帮助我们快速定位并解决问题。在`MyEmail`这个...

    spring定时发送邮件

    首先,定义一个`Runnable`实现类,这个类中包含发送邮件的逻辑,使用Spring Mail的API。然后,将这个任务实例化,并在Spring配置中设置定时任务,通过cron表达式定义执行时间。例如,如果你想让任务在每天的6点30分...

    struts spring 实现简单的邮件发送

    邮件服务类中的方法可以接收邮件的发件人、收件人、主题和内容作为参数,然后调用JavaMailSender的send方法发送邮件。 3. **Struts2整合**:在Struts2的配置文件(struts.xml)中,定义一个Action类,该类会调用...

    spring JavaMailSenderImpl 发送邮件 java

    以下是一个简单的示例,展示了如何在Spring中使用JavaMailSenderImpl发送邮件: ```java @Autowired private JavaMailSender emailSender; public void sendEmail() { SimpleMailMessage message = new ...

    Spring 使用163发邮件

    2. **配置Spring发送邮件**: 在Spring应用中,我们需要配置`JavaMailSender`的实现,这通常在Spring的配置文件(如`applicationContext.xml`)或者使用Java配置类来完成。配置包括SMTP服务器地址、端口、用户名、...

Global site tag (gtag.js) - Google Analytics