Javamail添加附件阻止发送邮件

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

我正在努力使用Javamail,我正在尝试发送带有zip文件的电子邮件。
当我尝试发送一封没有附件的邮件时,它可以正常工作,但是当我添加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不能工作。。。