您也可以在邮件中内嵌图片,在内嵌图片时要给定一个"cid"值,直接来看程式的示范:
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"值的指定是用来显示附加档案的名称,一个实例如下:
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("邮件传送成功..."); } }