您也可以在郵件中內嵌圖片,在內嵌圖片時要給定一個"cid"值,直接來看程式的示範:
- AttachedImageDemo.java
package onlyfun.caterpillar;
import java.io.File;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import javax.mail.internet.MimeMessage;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.MimeMessageHelper;
public class AttachedImageDemo {
public static void main(String[] args) throws Exception {
JavaMailSenderImpl senderImpl =
new JavaMailSenderImpl();
// 設定 Mail Server
senderImpl.setHost("your_mail_server.com");
// 建立郵件訊息
MimeMessage mailMessage =
senderImpl.createMimeMessage();
MimeMessageHelper messageHelper =
new MimeMessageHelper(mailMessage, true);
// 設定收件人、寄件人、主題與內文
messageHelper.setTo("xxx@your_mail_server.com");
messageHelper.setFrom("xxx@your_mail_server.com");
messageHelper.setSubject("Test");
messageHelper.setText(
"<html><head></head><body><h1>Hello! Spring!"
+ "</h1><img src=\"cid:caterpillar\">"
+ "</body></html>", true);
FileSystemResource img =
new FileSystemResource(
new File("C:/upload/caterpillar.jpg"));
messageHelper.addInline("wish", img);
// 傳送郵件
senderImpl.send(mailMessage);
System.out.println("郵件傳送成功...");
}
}
在建構MimeMessageHelper類別的實例時所給定的boolean值為true,表示要啟用multipart模式,在setText()中 方法指定了"cid"值為"caterpillar",這個設定與addInline()方法中的"cid"值指定對應,addInline()方法可以 將您的影像檔案加入至郵件中。
直接將影像檔案加入郵件中有好有壞,好處是您不用像給定連結的方式,必須在伺服器上提供檔案以讓使用者讀取郵件時可以取得所連結的圖片,壞處是有的郵件客戶端對於內嵌圖片的支援會有問題,可能在某些客戶端軟體中會發生無法顯示圖片的情況。
您也可以在郵件中使用附加檔案(Attachment file),只要使用MimeMessageHelper的addAttachment()方法,其中"cid"值的指定是用來顯示附加檔案的名稱,一個實例如下:
- AttachedFileDemo.java
package onlyfun.caterpillar;
import java.io.File;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import javax.mail.internet.MimeMessage;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.MimeMessageHelper;
public class AttachedFileDemo {
public static void main(String[] args) throws Exception {
JavaMailSenderImpl senderImpl =
new JavaMailSenderImpl();
// 設定 Mail Server
senderImpl.setHost("your_mail_server.com");
// 建立郵件訊息
MimeMessage mailMessage =
senderImpl.createMimeMessage();
MimeMessageHelper messageHelper =
new MimeMessageHelper(mailMessage, true);
// 設定收件人、寄件人、主題與內文
messageHelper.setTo("xxx@your_mail_server.com");
messageHelper.setFrom("xxx@your_mail_server.com");
messageHelper.setSubject("Test");
messageHelper.setText(
"<html><head></head><body><h1>Hello! Spring!"
+ "</h1></body></html>", true);
FileSystemResource file =
new FileSystemResource(
new File("C:/upload/caterpillar.zip"));
messageHelper.addAttachment("caterpillar.zip", file);
// 傳送郵件
senderImpl.send(mailMessage);
System.out.println("郵件傳送成功...");
}
}