java - 为什么我的电子邮件方法总是发送电子邮件并将电子邮件本身作为附件?

标签 java spring-boot jakarta-mail email-attachments

尝试发送带有 Excel 附件和一些正文的电子邮件。 无论出于何种原因,我收到的电子邮件始终是一封包含我想要作为附件发送的电子邮件的电子邮件,然后 Excel 本身会附加到所附电子邮件中...

是否有一些属性可以禁用此行为?

public void sendEmailWithAttachment(EmailProperties properties) {
    MimeMessage message = javaMailSender.createMimeMessage();

    try {
        message.setFrom(properties.getFrom());
        message.setHeader("X-Mailer", properties.getHeader());

        if (properties.getPriority() != null) {
            message.setHeader("X-Priority", properties.getPriority().getValue());
        }

        InternetAddress[] toEmailArray = properties.getToAddresses().toArray(new InternetAddress[properties.getToAddresses().size()]);

        message.setRecipients(javax.mail.Message.RecipientType.TO, toEmailArray);
        message.setSubject(properties.getSubject());
        message.setSentDate(new Date());

        Multipart multipart = new MimeMultipart();
        if (StringUtils.isNotBlank(properties.getMessageText())) {
            MimeBodyPart mimeBodyPart = new MimeBodyPart();
            mimeBodyPart.setText(properties.getMessageText());
            multipart.addBodyPart(mimeBodyPart);
        }

        MimeBodyPart mimeBodyPart = new MimeBodyPart();
        mimeBodyPart.setDataHandler(new DataHandler(new ByteArrayDataSource(properties.getContents(), properties.getContentType())));
        mimeBodyPart.setFileName(properties.getFileName());
        multipart.addBodyPart(mimeBodyPart);

        message.setContent(multipart);

        send(message);
    } catch (Exception exc) {
        logger.error("Error attempting to send email!", exc);
    }
}

最佳答案

我已经弄清楚,如果电子邮件不包含正文,则发送的电子邮件会将电子邮件作为附件。一旦有正文,电子邮件看起来很正常,它显示正文,然后显示 Excel 作为附件...只是为什么...

关于java - 为什么我的电子邮件方法总是发送电子邮件并将电子邮件本身作为附件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45988065/

相关文章:

java - 是否可以使带有 GridBagLayout 的 JPanel 内的元素从左上角开始?

java - 为单个 Feign 客户端禁用 Hystrix

email - 使用 IMAP 获取邮件,获取已删除的邮件

jakarta-mail - 消息唯一存在于java邮件中

java - JSON 解析器仅获取 JSON 的一部分

java - 如何将本地 HTML 页面与抽屉导航中的字符串链接起来?

java - Spring Boot 元空间内存泄漏

java - 使用特殊线程发送邮件

java - 有官方的 MRSS xsd 吗?

hibernate - Spring4 @Scheduled @Transaction 抛出多个数据源刷新时没有事务正在进行