这是出错信息:
java.io.IOException
at javax.mail.internet.MimePartDataSource.getInputStream(MimePartDataSource.java:70)
at javax.activation.DataHandler.getInputStream(DataHandler.java:220)
at javax.mail.internet.MimeBodyPart.getInputStream(MimeBodyPart.java:492)这是源码:
public String saveAttachMent(Part part) throws Exception {
String fileName = "";
if (part.isMimeType("multipart/*")) {
Multipart mp = (Multipart) part.getContent();
for (int i = 0; i < mp.getCount(); i++) {
BodyPart mpart = mp.getBodyPart(i);
String disposition = mpart.getDisposition();
if ((disposition != null) && ((disposition.equals(Part.ATTACHMENT)))) {
fileName = mpart.getFileName();
if (fileName != null) {
fileName = MimeUtility.decodeText(fileName);
}
System.out.println("================"+fileName);
InputStream in = mpart.getInputStream();。。在这里报错的
saveFile(fileName, in);
} else if (mpart.isMimeType("multipart/*")) {
saveAttachMent(mpart);
} else {
fileName = mpart.getFileName();
if (fileName != null) {
fileName = MimeUtility.decodeText(fileName);
saveFile(fileName, mpart.getInputStream());
}
}
}
} else if (part.isMimeType("message/rfc822")) {
saveAttachMent((Part) part.getContent());
}
return fileName;
}
java.io.IOException
at javax.mail.internet.MimePartDataSource.getInputStream(MimePartDataSource.java:70)
at javax.activation.DataHandler.getInputStream(DataHandler.java:220)
at javax.mail.internet.MimeBodyPart.getInputStream(MimeBodyPart.java:492)这是源码:
public String saveAttachMent(Part part) throws Exception {
String fileName = "";
if (part.isMimeType("multipart/*")) {
Multipart mp = (Multipart) part.getContent();
for (int i = 0; i < mp.getCount(); i++) {
BodyPart mpart = mp.getBodyPart(i);
String disposition = mpart.getDisposition();
if ((disposition != null) && ((disposition.equals(Part.ATTACHMENT)))) {
fileName = mpart.getFileName();
if (fileName != null) {
fileName = MimeUtility.decodeText(fileName);
}
System.out.println("================"+fileName);
InputStream in = mpart.getInputStream();。。在这里报错的
saveFile(fileName, in);
} else if (mpart.isMimeType("multipart/*")) {
saveAttachMent(mpart);
} else {
fileName = mpart.getFileName();
if (fileName != null) {
fileName = MimeUtility.decodeText(fileName);
saveFile(fileName, mpart.getInputStream());
}
}
}
} else if (part.isMimeType("message/rfc822")) {
saveAttachMent((Part) part.getContent());
}
return fileName;
}
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;
public class Demo3 { /**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
Session session = Session.getInstance(new Properties());
MimeMessage msg = new MimeMessage(session);
msg.setSubject("男人真的靠不住么?"); MimeMultipart msgMultipar = new MimeMultipart("mixed");
msg.setContent(msgMultipar);
MimeBodyPart attch1 = new MimeBodyPart(); //附件1
MimeBodyPart attch2 = new MimeBodyPart(); //附件2
MimeBodyPart content = new MimeBodyPart(); //正文
msgMultipar.addBodyPart(attch1);
msgMultipar.addBodyPart(attch2);
msgMultipar.addBodyPart(content);
DataSource ds1 = new FileDataSource(
"C:\\Users\\Administrator\\Desktop\\gx.txt"
);
DataHandler dh1 = new DataHandler(ds1);
attch1.setDataHandler(dh1); //添加附件1、
attch1.setFileName("gx.txt");
DataSource ds2 = new FileDataSource(
"C:\\Users\\Administrator\\Desktop\\2.jpg"
);
DataHandler dh2 = new DataHandler(ds2);
attch1.setDataHandler(dh2); //添加附件2
attch2.setFileName("2.jpg");
MimeMultipart bodyMultipar = new MimeMultipart("related");
content.setContent(bodyMultipar);
MimeBodyPart htmlPart = new MimeBodyPart();
MimeBodyPart gifPart = new MimeBodyPart();
bodyMultipar.addBodyPart(htmlPart);
bodyMultipar.addBodyPart(gifPart);
DataSource gifds = new FileDataSource(
"C:\\Users\\Administrator\\Desktop\\3.jpg"
);
DataHandler gifdh = new DataHandler(gifds);
gifPart.setDataHandler(gifdh);
gifPart.setHeader("Content-Location", "http://www.itcast.cn/3.gif");
htmlPart.setContent("这可是我自己用程序生成的邮件哦"
,"text/html;charset=gbk");
msg.saveChanges();
OutputStream ips = new FileOutputStream("D:\\demo3.eml");
msg.writeTo(ips);
ips.close();
}}保存时出了这个错,但是能够保存成功,只是里面的图片附件显示不了,而且txt附件也是乱码,求大家解决??
Exception in thread "main" java.io.IOException: No content
at javax.mail.internet.MimePartDataSource.getInputStream(MimePartDataSource.java:108)
at javax.activation.DataHandler.writeTo(DataHandler.java:305)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1383)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:852)
at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:453)
at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:98)
at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:884)
at javax.activation.DataHandler.writeTo(DataHandler.java:317)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1383)
at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1743)
at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1719)
at com.util.mailtest.Demo3.main(Demo3.java:72)