这是出错信息:
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;
}
解决方案 »
- 大虾帮忙 这里面怎么提示找不到符号的?急
- 正则 String a="" 匹配啥?
- 高人帮个忙,看看那错了
- 数据库驱动怎么那么麻烦啊 请教
- 可以在applet里像插入图片一样嵌入.swf文件吗?
- rs.getString为什么返回0xE689B.................
- 一个巨菜的问题:想调用父目录的CLASS,怎么写?
- ?请问:怎样把pdf文件?请问:怎样把pdf文件转化为图片文件(gif,jpg),用java实现,最好用 iText,100分必送(gyj86)转化为图片文件(gi
- 怎样运行java
- 程序员第四期中的一句话,应该怎么翻?
- thread dump 代码求指点
- java新手求大神帮忙解决这个文件输出的问题!!
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)