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)
*/