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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值