java mail

来源:互联网 发布:剑三霸气军娘捏脸数据 编辑:程序博客网 时间:2024/06/10 07:19
 
/**   * 创建内含图片的邮件,保存为 Outlook 的 ".eml" 文件   * @author haolloyin   */ public class WithPictureMessage {      public static void main(String[] args) throws Exception{           String from = "test_hao@sina.cn";          String to = "test_hao@163.com";          String subject = "创建一个内含图片的邮件!";          String body = "<h4>内含图片的邮件测试!!!</h4> " +          "<a href = http://haolloyin.blog.51cto.com/> 蚂蚁</a></br></br>" +           "<a href = http://haolloyin.blog.51cto.com/>" +          "<img src = \"cid:haolloyin_logo_jpg\"></a>";          /**  上面的 cid 是指 MIME 协议中的 Content-ID 头,它是           *  对于文件资源的唯一标识符,下面的 setContentID()方法  *  中传入的 ID 号就必须与这个haolloyin_logo_jpg相一致*/   // 创建该邮件应用程序所需的环境信息以及会话信息          Session session = Session.getDefaultInstance(new Properties());     // 以下几句是设置邮件的基本信息          MimeMessage msg = new MimeMessage(session);     msg.setFrom(new InternetAddress(from));               msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));          msg.setSubject(subject);          msg.setSentDate(new Date());                    /*           *  创建一个子类型为 “related” 的 MIME 消息组合对象,           *  其实 MimeMultipart 类还有另外两种子类型,请自行           *  查阅并比较其中的适用场景           */         MimeMultipart multipart = new MimeMultipart("related");                    /*           * 创建一个表示 HTML 正文部分的 MimeBodyPart 对象,            * 并加入 到上一语句创建的 MimeMultiPart 对象中,           * 由于 HTML 正文中包含中文,故下面应该指定字符集为 gbk 或 gb2312           */         MimeBodyPart htmlBodyPart = new MimeBodyPart();          htmlBodyPart.setContent(body, "text/html;charset=gbk");         multipart.addBodyPart(htmlBodyPart);                    /*           *  创建一个表示图片文件的 MimeBodyPart 对象,           *  并加入 到上面所创建的 MimeMultiPart 对象中,           *  使用 JAF 框架中的 FileDataSource 类获取图片文件源,           *  它能够自动获知文件的 MIME 格式并设置好消息头           */         MimeBodyPart jpgBodyPart = new MimeBodyPart();          FileDataSource fds = new FileDataSource("F:\\java\\haolloyin_logo.jpg");          jpgBodyPart.setDataHandler(new DataHandler(fds));          jpgBodyPart.setContentID("haolloyin_logo_jpg");                    multipart.addBodyPart(jpgBodyPart);                    /*           *  这里不用再设置字符集了,因为上面的 HTML MimeBodyPart 对象中           *  已经设置了,而图片文件的因为使用了 DataSource 对象,即 JAF 框架           *  中的具体数据处理操作类,能够自动判断获知数据的 MIME 类型           */         msg.setContent(multipart);                    // 保存对邮件的修改并写入文件中          msg.saveChanges();                msg.writeTo(new FileOutputStream("withPictureMail.eml"));      }  } 编译、运行,生成 withPictureMail.eml 文件,双击打开

/**   * 创建内含图片的邮件,保存为 Outlook 的 ".eml" 文件   * @author haolloyin   */ public class WithPictureMessage {      public static void main(String[] args) throws Exception{           String from = "test_hao@sina.cn";          String to = "test_hao@163.com";          String subject = "创建一个内含图片的邮件!";          String body = "<h4>内含图片的邮件测试!!!</h4> " +          "<a href = http://haolloyin.blog.51cto.com/> 蚂蚁</a></br></br>" +           "<a href = http://haolloyin.blog.51cto.com/>" +          "<img src = \"cid:haolloyin_logo_jpg\"></a>";          /**  上面的 cid 是指 MIME 协议中的 Content-ID 头,它是           *  对于文件资源的唯一标识符,下面的 setContentID()方法  *  中传入的 ID 号就必须与这个haolloyin_logo_jpg相一致*/   // 创建该邮件应用程序所需的环境信息以及会话信息          Session session = Session.getDefaultInstance(new Properties());     // 以下几句是设置邮件的基本信息          MimeMessage msg = new MimeMessage(session);     msg.setFrom(new InternetAddress(from));               msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));          msg.setSubject(subject);          msg.setSentDate(new Date());                    /*           *  创建一个子类型为 “related” 的 MIME 消息组合对象,           *  其实 MimeMultipart 类还有另外两种子类型,请自行           *  查阅并比较其中的适用场景           */         MimeMultipart multipart = new MimeMultipart("related");                    /*           * 创建一个表示 HTML 正文部分的 MimeBodyPart 对象,            * 并加入 到上一语句创建的 MimeMultiPart 对象中,           * 由于 HTML 正文中包含中文,故下面应该指定字符集为 gbk 或 gb2312           */         MimeBodyPart htmlBodyPart = new MimeBodyPart();          htmlBodyPart.setContent(body, "text/html;charset=gbk");         multipart.addBodyPart(htmlBodyPart);                    /*           *  创建一个表示图片文件的 MimeBodyPart 对象,           *  并加入 到上面所创建的 MimeMultiPart 对象中,           *  使用 JAF 框架中的 FileDataSource 类获取图片文件源,           *  它能够自动获知文件的 MIME 格式并设置好消息头           */         MimeBodyPart jpgBodyPart = new MimeBodyPart();          FileDataSource fds = new FileDataSource("F:\\java\\haolloyin_logo.jpg");          jpgBodyPart.setDataHandler(new DataHandler(fds));          jpgBodyPart.setContentID("haolloyin_logo_jpg");                    multipart.addBodyPart(jpgBodyPart);                    /*           *  这里不用再设置字符集了,因为上面的 HTML MimeBodyPart 对象中           *  已经设置了,而图片文件的因为使用了 DataSource 对象,即 JAF 框架           *  中的具体数据处理操作类,能够自动判断获知数据的 MIME 类型           */         msg.setContent(multipart);                    // 保存对邮件的修改并写入文件中          msg.saveChanges();                msg.writeTo(new FileOutputStream("withPictureMail.eml"));      }  } 编译、运行,生成 withPictureMail.eml 文件,双击打开

原创粉丝点击