MimeMessageHelper使用流发送带附件的邮件报错

InputStreamSource iss = null;
iss = new InputStreamResource(new FileInputStream("c:\\a.txt"));
MimeMessageHelper message = new MimeMessageHelper(mimeMessage,true, "UTF-8");
message.addAttachment("attachment", iss1);

Passed-in Resource contains an open stream: invalid argument. JavaMail requires an InputStreamSource that creates a fresh stream for every call.

For files generated in memory, you may use ByteArrayResource. Just convert your InputStream object using IOUtils from Apache Commons. It is quite simple:

helper.addAttachment("attachement",
    new ByteArrayResource(IOUtils.toByteArray(inputStream)));

你可能感兴趣的:(java)