JavaMail java郵件開發_填充和完善建立複雜郵件的細節程式碼
阿新 • • 發佈:2018-12-21
JavaMail03:
package com.yuming.test; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.mail.Session; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility; /** * 架子是對的,但是裡面有問題 * @author Administrator *報錯資訊: *Exception in thread "main" java.io.IOException: No content *at javax.mail.internet.MimePartDataSource.getInputStream(MimePartDataSource.java:106) at javax.activation.DataHandler.writeTo(DataHandler.java:305) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1350) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:845) at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:361) at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:85) at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:889) at javax.activation.DataHandler.writeTo(DataHandler.java:317) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1350) at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1683) at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1659) at com.yuming.test.JavaMail03.main(JavaMail03.java:72) */ public class JavaMail03 { public static void main(String[] args) throws Exception { Session session = Session.getInstance(new Properties()); MimeMessage msg = new MimeMessage(session); msg.setSubject("這是發郵件的主題"); //mixed---混合關係 MimeMultipart msgMultipart = new MimeMultipart("mixed"); msg.setContent(msgMultipart); msg.getReplyTo(); //html body與附件整合 //body MimeBodyPart content = new MimeBodyPart(); //附件1 MimeBodyPart attch1 = new MimeBodyPart(); //附件2 MimeBodyPart attch2 = new MimeBodyPart(); msgMultipart.addBodyPart(content); msgMultipart.addBodyPart(attch1); msgMultipart.addBodyPart(attch2); //附件1 DataSource ds = new FileDataSource("D:\\ycsql.txt"); DataHandler dh1 = new DataHandler(ds ); attch1.setDataHandler(dh1); attch1.setFileName("ycsql.txt"); //附件2 DataSource ds2 = new FileDataSource("D:\\log.jpg"); DataHandler dh2 = new DataHandler(ds2 ); attch1.setDataHandler(dh2); attch2.setFileName("log.jpg"); //內容 related--關聯關係 MimeMultipart bodyMultipart = new MimeMultipart("related"); content.setContent(bodyMultipart); MimeBodyPart htmlpart = new MimeBodyPart(); MimeBodyPart gifpart = new MimeBodyPart(); bodyMultipart.addBodyPart(htmlpart); bodyMultipart.addBodyPart(gifpart); DataSource gifds = new FileDataSource("D:\\log.jpg"); DataHandler gifdh = new DataHandler(gifds ); gifpart.setDataHandler(gifdh); gifpart.setHeader("Content-Location", "D:\\log.jpg"); //htmlpart htmlpart.setContent("我自己用程式生成和傳送的郵件哦!<img src='D:\\log.jpg'>", "text/html;charset=UTF-8"); //根據這些物件生成郵件 msg.saveChanges(); OutputStream os = new FileOutputStream("E:\\JavaMail03.eml"); msg.writeTo(os); // msg.writeTo(os); os.close(); } }
報錯資訊:
/** * 架子是對的,但是裡面有問題 * @author Administrator *報錯資訊: *Exception in thread "main" java.io.IOException: No content *at javax.mail.internet.MimePartDataSource.getInputStream(MimePartDataSource.java:106) at javax.activation.DataHandler.writeTo(DataHandler.java:305) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1350) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:845) at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:361) at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:85) at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:889) at javax.activation.DataHandler.writeTo(DataHandler.java:317) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1350) at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1683) at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1659) at com.yuming.test.JavaMail03.main(JavaMail03.java:72) */