下载后显示损坏的Java邮件附加文件

时间:2014-06-12 08:31:52

标签: java spring spring-mvc inputstream email-attachments

我发送带附件的邮件,但是当我尝试打开文件时,它没有打开并发出以下错误:

enter image description here

我尝试这样做:

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();
    }

1 个答案:

答案 0 :(得分:0)

您正在尝试将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对象中。

放手一搏。