javamail创建带图片和附件的邮件
来源:互联网 发布:家里网络电视打开步骤 编辑:程序博客网 时间:2024/05/02 02:46
package cn.test.demo;import java.io.FileOutputStream;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Session;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.mail.internet.MimeUtility;public class ComplexMail {/** * 复杂的邮件 * @throws MessagingException * @throws AddressException */public static void main(String[] args) throws Exception {MimeMessage message = new MimeMessage(Session.getInstance(new Properties()));message.setFrom(new InternetAddress("aa@sina.com"));message.setRecipient(Message.RecipientType.TO, new InternetAddress("aa@sina.com"));message.setSubject("这是邮件");//封装正文MimeBodyPart text = new MimeBodyPart();text.setContent("这是我的邮件xxx<br><img src='cid:3.jpg'>", "text/html;charset=UTF-8");//封装图片MimeBodyPart image = new MimeBodyPart();image.setDataHandler(new DataHandler(new FileDataSource("src\\3.jpg")));image.setContentID("3.jpg");//封装附件MimeBodyPart attach = new MimeBodyPart();DataHandler dh = new DataHandler(new FileDataSource("src\\灰色.mp3"));attach.setDataHandler(dh);String filename = dh.getName();attach.setFileName(MimeUtility.encodeText(filename)); //附件的乱码问题//描述正文和图片的关系MimeMultipart content = new MimeMultipart();content.addBodyPart(text);content.addBodyPart(image);content.setSubType("related");//描述正文和附件的关系MimeMultipart mm = new MimeMultipart();mm.addBodyPart(attach);MimeBodyPart bp = new MimeBodyPart();bp.setContent(content);mm.addBodyPart(bp);mm.setSubType("mixed");message.setContent(mm);message.saveChanges();message.writeTo(new FileOutputStream("c:\\3.eml"));}}