gpt4 book ai didi

java getDisposition 在带有附件的电子邮件上返回 null

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:08:32 24 4
gpt4 key购买 nike

所以我正在为家庭作业制作一个邮件客户端,其中一项要求是处理传入的附件。我要做的第一件事就是显示电子邮件是否有附件。我有一堆 AWT 列表,它们并排显示发件人、主题、大小、日期、附件。

出于测试目的,如果处置返回 null,我只是在 attachmentList 中放置一个 x。如果它是内联的,它会放置一个 i 并且对于附件它应该显示文件名。但是,即使在有附件的电子邮件上并查看 gmail webmail 中的 header ,将内容处置显示为附件(全部小写),电子邮件的 getDisposition 仍然返回 null。我不明白为什么它不返回 ATTACHMENT 或 attachment 或 null 以外的东西。这是相关代码。

for (int i = 0; i < messages.length; i++) {

Address[] froms = messages[i].getFrom();
String email = froms == null ? null : ((InternetAddress) froms[0]).getAddress();
fromList.add(email);
subjectList.add(messages[i].getSubject());
sizeList.add("" + messages[i].getSize());
dateList.add(messages[i].getReceivedDate().toString());
String disposition = messages[i].getDisposition();
System.out.println("Disposition is " + disposition + ".");
if (disposition == null) {
attachmentList.add("x");
}
else if ("INLINE".equalsIgnoreCase(disposition)) {
attachmentList.add("i");
}
else if ("ATTACHMENT".equalsIgnoreCase(disposition)) {
String fileName = messages[i].getFileName();
if (fileName != null) {
attachmentList.add("attachment " + fileName);
}
}
}

您会注意到它打印“处置是...”,这是另一个测试代码,它总是打印 null 或 INLINE。我正在查看的特定电子邮件大约有 700k,包含 2 个附件。

最佳答案

查看消息的原始 MIME 文本并确保 Content-Disposition header 已按预期设置。

打开 JavaMail session debugging并检查调试输出中的协议(protocol)跟踪。

您是否使用 IMAP 阅读邮件?如果是,则IMAP服务器解析消息并返回IMAP协议(protocol)消息中的“处置”信息。 IMAP 服务器可能未正确解析邮件或可能未正确返回处置信息。

关于java getDisposition 在带有附件的电子邮件上返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17517355/

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