我正在发送带有附件的邮件,但是当我尝试打开该文件时,它打不开并出现以下错误:
我试着这样做:
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"));
与
File url;
//Code
url = new File("file://localhost:8080/test/attachment/simpldoc.docx")
这应该会返回实际文件并将其存储在 url 对象中。
试一试。
关于Java 邮件附加文件在下载后显示损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24179777/