`
jacally
  • 浏览: 759609 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用Spring邮件抽象层发送邮件(转) ...

    博客分类:
  • JAVA
阅读更多

http://caterpillar.onlyfun.net/Gossip/SpringGossip/AttachedFileMail.html

您也可以在郵件中內嵌圖片,在內嵌圖片時要給定一個"cid"值,直接來看程式的示範:

  • AttachedImageDemo.java
    java 代码
    1. package onlyfun.caterpillar;   
    2.   
    3. import java.io.File;   
    4. import org.springframework.mail.javamail.JavaMailSenderImpl;   
    5. import javax.mail.internet.MimeMessage;   
    6. import org.springframework.core.io.FileSystemResource;   
    7. import org.springframework.mail.javamail.MimeMessageHelper;   
    8.   
    9. public class AttachedImageDemo {   
    10.     public static void main(String[] args) throws Exception {   
    11.         JavaMailSenderImpl senderImpl =    
    12.                     new JavaMailSenderImpl();   
    13.            
    14.         // 設定 Mail Server   
    15.         senderImpl.setHost("your_mail_server.com");    
    16.            
    17.         // 建立郵件訊息   
    18.         MimeMessage mailMessage =    
    19.             senderImpl.createMimeMessage();   
    20.         MimeMessageHelper messageHelper =    
    21.             new MimeMessageHelper(mailMessage, true);   
    22.                    
    23.         // 設定收件人、寄件人、主題與內文   
    24.         messageHelper.setTo("xxx@your_mail_server.com");   
    25.         messageHelper.setFrom("xxx@your_mail_server.com");   
    26.         messageHelper.setSubject("Test");   
    27.         messageHelper.setText("<html><head></head><body><h1>Hello! Spring!"
                  + "</h1><img src=\"cid:caterpillar\">"
                  + "</body></html>", true
      );
    28.            
    29.         FileSystemResource img =    
    30.                 new FileSystemResource(   
    31.                         new File("C:/upload/caterpillar.jpg"));   
    32.         messageHelper.addInline("wish", img);   
    33.            
    34.         // 傳送郵件   
    35.         senderImpl.send(mailMessage);    
    36.            
    37.         System.out.println("郵件傳送成功...");   
    38.     }   
    39. }    


在建構MimeMessageHelper類別的實例時所給定的boolean值為true,表示要啟用multipart模式,在setText()中方法指定了"cid"值為"caterpillar",這個設定與addInline()方法中的"cid"值指定對應,addInline()方法可以將您的影像檔案加入至郵件中。

直接將影像檔案加入郵件中有好有壞,好處是您不用像給定連結的方式,必須在伺服器上提供檔案以讓使用者讀取郵件時可以取得所連結的圖片,壞處是有的郵件客戶端對於內嵌圖片的支援會有問題,可能在某些客戶端軟體中會發生無法顯示圖片的情況。

您也可以在郵件中使用附加檔案(Attachment file),只要使用MimeMessageHelper的addAttachment()方法,其中"cid"值的指定是用來顯示附加檔案的名稱,一個實例如下:

  • AttachedFileDemo.java
java 代码
  1. package onlyfun.caterpillar;   
  2.   
  3. import java.io.File;   
  4. import org.springframework.mail.javamail.JavaMailSenderImpl;   
  5. import javax.mail.internet.MimeMessage;   
  6. import org.springframework.core.io.FileSystemResource;   
  7. import org.springframework.mail.javamail.MimeMessageHelper;   
  8.   
  9. public class AttachedFileDemo {   
  10.     public static void main(String[] args) throws Exception {   
  11.         JavaMailSenderImpl senderImpl =    
  12.                       new JavaMailSenderImpl();   
  13.            
  14.         // 設定 Mail Server   
  15.         senderImpl.setHost("your_mail_server.com");    
  16.            
  17.         // 建立郵件訊息   
  18.         MimeMessage mailMessage =    
  19.             senderImpl.createMimeMessage();   
  20.         MimeMessageHelper messageHelper =    
  21.             new MimeMessageHelper(mailMessage, true);   
  22.                    
  23.         // 設定收件人、寄件人、主題與內文   
  24.         messageHelper.setTo("xxx@your_mail_server.com");   
  25.         messageHelper.setFrom("xxx@your_mail_server.com");   
  26.         messageHelper.setSubject("Test");   
  27.         messageHelper.setText("<html><head></head><body><h1>Hello! Spring!"           
  28. + "</h1></body></html>", true);   
  29.            
  30.         FileSystemResource file =    
  31.                 new FileSystemResource(   
  32.                            new File("C:/upload/caterpillar.zip"));   
  33.         messageHelper.addAttachment("caterpillar.zip", file);   
  34.            
  35.         // 傳送郵件   
  36.         senderImpl.send(mailMessage);    
  37.            
  38.         System.out.println("郵件傳送成功...");   
  39.     }   
  40. }    
 

 

分享到:
评论

相关推荐

    spring邮件抽象层详解

    spring邮件抽象层详解,简单的方式发送email

    spring各种邮件发送

    Spring邮件抽象层的主要包为org.springframework.mail。它包括了发送电子邮件的主要接口MailSender,和值对象SimpleMailMessage,它封装了简单邮件的属性如from, to,cc, subject,text。 包里还包含一棵以...

    Spring 2.0 开发参考手册

    6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 7.2.3. AspectJ切入点表达式 7.2.4. ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...

    spring chm文档

    Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack ...19.2. 使用Spring JMS ...

    Spring中文帮助文档

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

    Spring API

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

    SpringMailTest.zip

    Spring邮件抽象层的主要包为org.springframework.mail。它包括了发送电子邮件的主要接口MailSender(实现类为org.springframework.mail.javamail.JavaMailSenderImpl,下面会用到改实现类)和封装了简单邮件属性的值...

    Spring.3.x企业应用开发实战(完整版).part2

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java...附录A JavaMail发送邮件 附录B 在Spring中开发Web Service

    Spring3.x企业应用开发实战(完整版) part1

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java...附录A JavaMail发送邮件 附录B 在Spring中开发Web Service

    Spring in Action(第二版 中文高清版).part2

    5.3.3 使用Spring对JDBC的DAO支持类 5.4 在Spring里集成Hibernate 5.4.1 选择Hibernate的版本 5.4.2 使用Hibernate模板 5.4.3 建立基于Hibernate的DAO 5.4.4 使用Hibernate 3上下文会话 5.5 Spring和Java...

    Spring in Action(第二版 中文高清版).part1

    5.3.3 使用Spring对JDBC的DAO支持类 5.4 在Spring里集成Hibernate 5.4.1 选择Hibernate的版本 5.4.2 使用Hibernate模板 5.4.3 建立基于Hibernate的DAO 5.4.4 使用Hibernate 3上下文会话 5.5 Spring和Java...

    开源框架 Spring Gossip

    简单邮件 HTML 邮件 内嵌图片或附档 排程 Spring则对 java.util.Timer提供了抽象封装,让您可以善用Spring的容器管理功能,而Spring对Quartz进行了封装,让它在使用上更加方便。 使用 ...

    spring-email-master:使用spring4.3.4 发送邮件,三种方式:文本格式,HTML格式,velocity模版,Thymeleaf模版,使用模版以及策略设计模式实现同步和异步发送

    Spring Email抽象核心接口MailSender,其实现类JavaMailSenderImpl,在其中配置邮件 服务器host,pssword,协议等 。。。。。 1.发送简单的消息 SimpleMailMessage:发送简单的消息 2.发送丰富的消息(比如带有附件,内...

    spring framework 开发参考手册

    你可以使用 IoC容器,在其上使用Struts,但是你也可以选择使用 Hibernate 整合代码或者 JDBC 抽象层。 我们将Spring设计为非侵入式的(并且以后也是如此),这意味着应用基本上不需要依赖框架本身 (或者肯定是最小...

    Spring in Action(第2版)中文版

    5.3.3使用spring对jdbc的dao支持类 5.4在spring里集成hibernate 5.4.1选择hibernate的版本 5.4.2使用hibernate模板 5.4.3建立基于hibernate的dao 5.4.4使用hibernate3上下文会话 5.5spring和java持久api ...

    Spring Framework 开发参考手册

    你可以使用 IoC容器,在其上使用Struts,但是你也可以选择使用 Hibernate 整合代码或者 JDBC 抽象层。 我们将Spring设计为非侵入式的(并且以后也是如此),这意味着应用基本上不需要依赖框架本身 (或者肯定是最小...

    Spring面试题

    1.使用双向一对多关联,不使用单向一对多 2.灵活使用单向一对多关联 3.不用一对一,用多对一取代 4.配置对象缓存,不使用集合缓存 5.一对多集合使用Bag,多对多集合使用Set 6. 继承类使用显式多态 7. 表字段要少,表...

    128元尚硅谷Java视频教程_Spring Boot视频教程(下)整合篇

    着重介绍SpringBoot的与各大场景的整合使用,内容包括:缓存(整合Redis),消息中间件(整合RabbitMQ),检索(整合ElasticSearch),任务(异步任务,定时任务,邮件任务),安全(整合SpringSecurity),分布式...

Global site tag (gtag.js) - Google Analytics