gpt4 book ai didi

java - 从标题中划分“主题”、“发件人”和“收件人”值

转载 作者:行者123 更新时间:2023-12-01 18:28:10 27 4
gpt4 key购买 nike

我正在从授权电子邮件中获取消息,但问题是主题、发件人和收件人值与 java 中 header 的分离,我成功了,下面的代码工作正常,但分离需要更多时间,我查了这么多 Gmail API 文档但我没有得到解决方案。

ListMessagesResponse listResponse = service.users().messages().list(user).setMaxResults(10L)
.setLabelIds(labelidlist).setQ(query).execute();

List<Message> listofmesssages = listResponse.getMessages();

HashMap<String, Object> msgsMap;
List messageslist = new ArrayList();

for (Message message : listofmesssages) {
Message fullmessage = service.users().messages().get("me", message.getId()).setFormat("full").execute();

msgsMap = new LinkedHashMap<String, Object>();
/*Adding threadid for threadid is required when delete operation has happen*/
msgsMap.put("threadid", message.getThreadId());
List<MessagePartHeader> headers = fullmessage.getPayload().getHeaders();

if (!headers.isEmpty()) {
for (MessagePartHeader header : headers) {
String name = header.getName();
msgsMap.put("msgid", message.getId());

if (name.equalsIgnoreCase("Subject")) {
subject = header.getValue();
msgsMap.put("subject", subject);
} else if (name.equalsIgnoreCase("From")) {
from = header.getValue().split("<")[0];
msgsMap.put("from", from);
} else if (name.equalsIgnoreCase("To")) {
to = header.getValue().split(" ")[0];
msgsMap.put("to", to);
} else if (name.equalsIgnoreCase("Date")) {
String date = header.getValue();
java.util.Date fecha = new java.util.Date(date);
DateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.US);
Date date1;
date1 = (Date) formatter.parse(fecha.toString());
Calendar cal = Calendar.getInstance();
cal.setTime(date1);
String formatedDate = cal.get(Calendar.DATE) + "/" + (cal.get(Calendar.MONTH) + 1) + "/"
+ cal.get(Calendar.YEAR);
msgsMap.put("date", formatedDate);
}
}
}

messageslist.add(msgsMap);
}

return messageslist;

最佳答案

如果你看message resource JSON,您可以看到 headers 是一个包含属性 namevalue 的对象数组。没有名为 ToSubject 的属性键。这就是您使用的库没有名为 getTogetSubject 的方法的原因。

这是有道理的,因为 header 可能并不总是相同。

因此,您无法专门获取某个 header 名称。

引用:

关于java - 从标题中划分“主题”、“发件人”和“收件人”值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60201732/

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