gpt4 book ai didi

Outlook 中未显示 Java 邮件附件

转载 作者:行者123 更新时间:2023-11-30 08:18:38 26 4
gpt4 key购买 nike

我们使用 Java Mail 通过 SMTP 通过 Lotus Notes 向我们的客户发送带有 PDF 附件的电子邮件。前段时间我们收到通知说一些客户没有收到附件。

其中一位客户使用 Microsoft Outlook,他的收件箱中有一个附件标记。但当他打开电子邮件,他没有看到附件。我们无法检查电子邮件客户端的版本并进行客户端测试,因为我们的客户遍布全局。

如果我们的客户回复或(内部)转发电子邮件,附件将显示在收件人的电子邮件客户端中。

以下部分是受影响的Java源代码:

private static Multipart createMultipartMailWithAttachment(String messageText)
throws MessagingException {
// Message with attachments
Multipart mp = new MimeMultipart();

// Attach Text
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(messageText, UTF8, HTML);
mp.addBodyPart(mbp1);

for (File f : attachments) {
MimeBodyPart fileAttachment = new MimeBodyPart();
try {
fileAttachment.setDisposition(MimeBodyPart.ATTACHMENT);
fileAttachment.attachFile(f);
if(f.getName().toLowerCase().endsWith(PDF_EXTENSION)) {
fileAttachment.setHeader(CONTENT_TYPE, APPLICATION_PDF);
}
} catch (IOException e) {
returnMessage = e.getMessage();
}
mp.addBodyPart(fileAttachment);
}
return mp;
}

我们已经测试了不同的网络邮件服务,例如 gmail.com、yahoo.com 和 outlook.com。在每种情况下显示附件。也在本地安装的 Mozilla Thunderbird、Microsoft Outlook 或 Lotus Notes 中是否显示了附件。

经过多次询问,我们得到了很多不同的解决流程。请参阅 setDisposition(MimeBodyPart.ATTACHMENT)setHeader(CONTENT_TYPE, APPLICATION_PDF)。这些解决方案都没有带领我们走向成功。有人知道吗解决该问题的解决方案或新的解决方案流程?

最佳答案

我们在将文件附件从 J2EE 应用程序发送到各种邮件帐户时遇到了类似的问题。我们使用带有端口 465 和 HTTPS 连接类型的 SMTP gmail 服务器 (smtp.gmail.com) 来发送我们的外发邮件。

通过 Java 发送的邮件的附件没有显示在 Outlook 中,但我们可以在 gmail 帐户的 Web 界面中观察到它们。

在我们的案例中,事实证明 MimeMultipart 构造不正确。我们有

Multipart multipart = new MimeMultipart("alternative");

当我们修改为

Multipart multipart = new MimeMultipart();

附件变得可见。

另请引用the following resource以获得完整的解释。

关于Outlook 中未显示 Java 邮件附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27405511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com