Java Mail发送Email总结(三)--邮件发送的综合例子

来源:互联网 发布:odn网络 s r什么意思 编辑:程序博客网 时间:2024/06/03 23:35

本文介绍如何使用Java Mail发送带图片及附件的例子

1.生成一封带图片及附件的邮件

    public static MimeMessage createMixedMail(Session session) throws Exception {        //创建邮件        MimeMessage message = new MimeMessage(session);        //发件人        message.setFrom("xxx@qq.com");        //收件人        message.setRecipient(Message.RecipientType.TO, new InternetAddress("xxx@qq.com"));        message.setSubject("带附件和带图片的的邮件");        //正文        MimeBodyPart text = new MimeBodyPart();        text.setContent("xxx这是女的xxxx<br/><img src='cid:a.jpg'>","text/html;charset=UTF-8");        //图片        MimeBodyPart image = new MimeBodyPart();        image.setDataHandler(new DataHandler(new FileDataSource("xxx.jpg")));        image.setContentID("a.jpg");        //附件1        MimeBodyPart file= new MimeBodyPart();        DataHandler dh = new DataHandler(new FileDataSource("b.txt"));        file.setDataHandler(dh);        file.setFileName(dh.getName());        //附件2        MimeBodyPart file2= new MimeBodyPart();        DataHandler dh2 = new DataHandler(new FileDataSource("c.xml"));        file2.setDataHandler(dh2);        file2.setFileName(dh2.getName());        //描述关系:正文和图片        MimeMultipart mp1 = new MimeMultipart();        mp1.addBodyPart(text);        mp1.addBodyPart(image);        mp1.setSubType("related");        //代表正文的bodypart        MimeBodyPart content = new MimeBodyPart();        content.setContent(mp1);        //描述关系:正文和附件        MimeMultipart mp2 = new MimeMultipart();        mp2.addBodyPart(file);        mp2.addBodyPart(file2);        mp2.addBodyPart(content);        mp2.setSubType("mixed");        message.setContent(mp2);        message.saveChanges();        message.writeTo(new FileOutputStream("W:\\MixedMail.eml"));        //返回创建好的的邮件        return message;    }