关于使用Java Mail发送附件,网上和书上的资料可谓非常多,其思路都是一致的:使用MulitiPart类,似乎是一件很Trival的事情。但是,我多次验证,发现这样发送出去的附件是不能够被常见的email客户端软件(例如FoxMail,OutLook,以及WebMail)所识别的,它总是进入邮件的正文里,很自然,如果不是纯文本,就会显示为乱码!这当然是不允许的啊,如何解决这个问题呢?我查了很久,都没有找到办法。真头疼....
请高手解答,谢谢!
请高手解答,谢谢!
附件的文件名吗?你应该用一个辅助类给中文的文件名进行编码才行!mbp.setFileName(MimeUtility.encodeText(fds.getName(), getCharset(),"B")); // 得到文件名同样至入BodyPart
// Fill the message
messageBodyPart.setText("Pardon Ideas");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// Part two is attachment
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource("E:/x1.pdf");
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName("x1.pdf");
multipart.addBodyPart(messageBodyPart);
// Put parts in message
message.setContent(multipart);
上述程序发送正常,但是foxmail无法识别附件。
你所谓的“反射为附件”是需要还增加什么语句吗?
我们在使用FoxMail和OutLook发送附件的时候,似乎也没有限定什么附件格式啊,为什么它们可以正常发送,而JavaMail不行呢?