`
jacally
  • 浏览: 770153 次
  • 性别: 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邮件抽象层是Spring框架提供的一套用于发送电子邮件的高级接口,它隐藏了与底层邮件系统交互的复杂性,使得开发者能够以一种简洁的方式发送邮件。这个抽象层主要包含在`org.springframework.mail`包中,提供了...

    spring各种邮件发送

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

    spring集成邮件服务

    它抽象了JavaMail的复杂性,提供了更友好的API来发送邮件。以下是一个基本的集成步骤: 1. **配置邮件服务器**:在Spring的配置文件中,你需要配置邮件服务器的相关属性,如主机名、端口号、用户名、密码等。例如:...

    Spring进阶—如何用Java代码实现邮件发送

    此外,Spring的邮件抽象层还有一套异常处理机制,以更好地封装和处理邮件系统可能出现的异常。 使用Spring发送邮件的基本步骤如下: 1. 添加Spring核心库和相关的邮件发送库(如JavaMail API)到项目依赖中。 2. ...

    spring整合quartz定时发送邮件

    Spring 整合 Quartz 定时发送邮件是一种常见的任务调度场景,用于定期执行如发送通知、报告等操作。Quartz 是一个开源的作业调度框架,它允许开发者创建、调度和管理任务。而Spring作为一个强大的企业级应用开发框架...

    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来...

    Java基于JDK1.6基础上Spring2.5.6版本上发送邮件功能需要的依赖lib.zip

    - 使用`JavaMailSender`发送邮件,如: ```java SimpleMailMessage mail = new SimpleMailMessage(); mail.setTo("recipient@example.com"); mail.setSubject("测试邮件"); mail.setText("这是一封测试邮件");...

    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. ...

    ActiveMQ与Spring整合之异步发送邮件

    1. **邮件服务**:在Spring中,可以使用`JavaMailSender`接口来发送邮件,结合`SimpleMailMessage`对象定义邮件内容。 2. **异步处理**:通过集成ActiveMQ,可以创建一个消息生产者,将发送邮件的任务作为一个消息...

    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整合freemarker发送邮件例子

    在这个场景中,Spring 提供了电子邮件服务的抽象层,使得发送邮件变得简单。 2. **FreeMarker**:FreeMarker 是一个基于模板的 Java 模板引擎,常用于生成动态 HTML、XML 或其他文本格式的文档。在这里,我们使用 ...

    SpringUseJavaMailSendEmail(spring使用javamail发送邮件的例子)

    总结起来,Spring结合JavaMail API发送邮件的过程主要包括:配置`JavaMailSender` bean,创建邮件消息对象,设置邮件内容和属性,最后通过`JavaMailSender`实例发送邮件。通过这种方式,开发者可以轻松地在Spring...

    Spring发送Email

    有了配置后,我们可以通过Spring的`JavaMailSender`接口来发送邮件。下面是一个简单的示例,展示了如何创建并发送一封带有文本内容的邮件: ```java @Autowired private JavaMailSender javaMailSender; public ...

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

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

Global site tag (gtag.js) - Google Analytics