ITEEDU

附档

您也可以在邮件中内嵌图片,在内嵌图片时要给定一个"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("邮件传送成功...");
	}
}