下载后显示损坏的Java mail附加文件
我正在发送带有附件的邮件,但当我尝试打开该文件时,该文件未打开,并出现以下错误: 我试着这样做:下载后显示损坏的Java mail附加文件,java,spring,spring-mvc,inputstream,email-attachments,Java,Spring,Spring Mvc,Inputstream,Email Attachments,我正在发送带有附件的邮件,但当我尝试打开该文件时,该文件未打开,并出现以下错误: 我试着这样做: JavaMailSenderImpl mailSender = getMailSender(); MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper; URLDataSource url; try { helper = new MimeMessageHelper(message
JavaMailSenderImpl mailSender = getMailSender();
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper;
URLDataSource url;
try {
helper = new MimeMessageHelper(message, true);
url = new URLDataSource(new URL("localhost:8080/test/attachment/simpldoc.docx"));
helper.setFrom(mailFrom);
helper.setSubject(subject);
helper.setTo(mailTo);
helper.setText(text, true);
helper.addAttachment(attachmentName, url);
mailSender.send(message);
}
catch (MessagingException e) {
e.printStackTrace();
}
您正试图将url对象作为附件传递 可以使用url.getOutputStream()打开流,然后在附加文件之前写入文件对象 所有这些都很糟糕 您应该使用File来获取相关文件 因此,替换
URLDataSource url;
//Code
url = new URLDataSource(new URL("localhost:8080/test/attachment/simpldoc.docx"));
与
它将返回实际文件并将其存储在url对象中
试一试。你能打开“详细信息”吗?URL
localhost:8080/test/attachment/simpldoc.docx
如何提供该文件?你能把这部分也贴出来吗?因为我有一个非常类似的错误(请参阅):添加响应的ContentLength
解决了这个问题@rpax在详细信息中,它说文件已损坏,无法打开。您应该使用文件而不是URL来获取附件。
File url;
//Code
url = new File("file://localhost:8080/test/attachment/simpldoc.docx")