我正在尝试通过javamail发送包含zip文件的附件。但是,发送它时会抛出异常
com.sun.mail.smtp.SMTPSendFailedException:552-5.7.0此邮件已被阻止,因为其内容存在潜在的552-5.7.0安全问题。
我将MIME内容类型添加为application/zip
,但面临
javax.mail.MessagingException: IOException while sending message;
nested exception is:
javax.activation.UnsupportedDataTypeException: no object DCH for MIME type
application/zip at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1167)
以下是我的代码段:
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(message, "application/zip");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
File srcFile = new File(System.getProperty("user.dir")+ "/Reports/");
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(srcFile.getPath()+"/Report.zip");
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName("Report.zip");
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
Transport.send(message);
当我删除.zip扩展名时,它可以正常工作但不能使用.zip。
答案 0 :(得分:1)
您的代码正在添加附件两次,我确定这不是您想要的。用以下代码替换您的代码:
MimeBodyPart messageBodyPart = new MimeBodyPart();
String srcFile = System.getProperty("user.dir") + "/Reports/Report.zip";
messageBodyPart.attachFile(srcFile, "application/zip", "base64");
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
Transport.send(message);