Javamail添加附件阻止发送邮件
我正在努力使用Javamail,我正在尝试发送带有zip文件的电子邮件。Javamail添加附件阻止发送邮件,java,email,jakarta-mail,attachment,Java,Email,Jakarta Mail,Attachment,我正在努力使用Javamail,我正在尝试发送带有zip文件的电子邮件。 当我尝试发送一封没有附件的邮件时,它可以正常工作,但是当我添加zip时,邮件就不再发送了。我没有错误 我的代码: LOGGER.info("########################### Send Email with attachement to " + destination + " Start ######################"); //Config smtp mail Prop
当我尝试发送一封没有附件的邮件时,它可以正常工作,但是当我添加zip时,邮件就不再发送了。我没有错误 我的代码:
LOGGER.info("########################### Send Email with attachement to " + destination + " Start ######################");
//Config smtp mail
Properties props = new Properties();
props.put("mail.smtp.host", getSmtpHost());
props.put("mail.smtp.socketFactory.port", getSmtpsocketFactoryPort());
props.put("mail.smtp.socketFactory.class", getSmtpsocketFactoryClass());
props.put("mail.smtp.auth", getSmtpAuth());
props.put("mail.smtp.port", getSmtpPort());
//instance Session
Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(getUsername(), getPassword());
}
});
try {
//construction objet mail
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(getFromAddress()));
//Send Email to Addresse
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(destination));
message.setSubject(objet);
message.setSentDate(new Date());
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(contenu);
MimeBodyPart attachmentBodyPart = new MimeBodyPart();
String fileName = attachementPath + attachementName;
File file = new File (fileName);
attachmentBodyPart.attachFile(file);
MimeMultipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
multipart.addBodyPart(attachmentBodyPart);
message.setContent(multipart);
//send Email
Transport.send(message);
LOGGER.info("########################### Send email with attachement to " + destination + " End ########################### ");
} catch (MessagingException e) {
LOGGER.error("Error when send email to " + destination);
throw new RuntimeException(e);
}
我已经尝试了很多事情,我可能会累到发现错误xD
谢谢你的帮助
更新:多亏了jmehrens,我发现了这个问题。我的邮件服务器不允许.zip请确保您的邮件服务器没有阻止以
.zip
扩展名发送电子邮件的策略。您应该能够用一个邮件客户端(或JavaMail)测试它,并将扩展名重命名为.txt
甚至.piz
读这本书。它充满了关于最佳实践、调试和故障排除步骤的良好信息。“当我添加邮政编码时,邮件将不再发送。”看起来可疑,您可能在某个地方遇到了一些异常。顺便说一句,
新建StringBuilder(attachementPath+attachementName).toString()
?可能会有帮助您的邮件服务器是否有禁止以.zip
结尾的文件的策略?您应该只需要一个邮件客户端就可以测试它,或者重命名扩展名。@jmehrens谢谢!我刚试过一个.txt,它就成功了!这是我第一次使用Javamail,所以我假设我犯了一个错误……@RC。我做了一个StringBuilder,因为我很累,我认为String=String+String不能工作。。。