【发布时间】:2015-04-11 15:00:26
【问题描述】:
我在使用 ews java API 1.3 SNAPSHOT 获取附件时遇到一些问题,我想在我的电子邮件中获取附件,这里是我的代码:
try {
ExchangeService service;
service.setUrl(new URI("https://" + myserver + "/ews/Exchange.asmx"));
ExchangeCredentials credentials = new WebCredentials(username, password);
service.setCredentials(credentials);
ItemView view = new ItemView(Integer.MAX_VALUE);
view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Ascending);
Folder folder = Folder.bind(service, WellKnownFolderName.Inbox);
FindItemsResults<Item> results = service.findItems(folder.getId(),view);
service.loadPropertiesForItems(results, new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.Attachments));
for (Item item : results) {
Item itm = Item.bind(service, item.getId(), new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.Attachments));
EmailMessage emailMessage = EmailMessage.bind(service, itm.getId(), new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.Attachments));
if (emailMessage.getHasAttachments()) {
for (Attachment attachment : emailMessage.getAttachments()) {
String FileExtension = getFileExtension(attachment.getName());
File TempFile = File.createTempFile(attachment.getName(), FileExtension);
attachment.load(TempFile.getAbsolutePath());
}
}
}
} catch (Exception e) {
logger.error("Error ", e.getMessage());
}
我的问题是它可以收到另一封没有附件的电子邮件,并且总是跳过有附件的电子邮件,示例是这样的, 在我的收件箱中,我有这个电子邮件列表
- 来自:a@gmail.com(有附件)
- 来自:b@mycompany.com(无附件)
- 来自:c@hiscompany.com(有附件)
- 来自:d@mycompany.com(无附件)
当我运行我的代码时,它总是收到没有附件的电子邮件,如下所示:
- 来自:b@mycompany.com(无附件)
- 来自:d@mycompany.com(无附件)
并跳过其他带有附件的电子邮件,我不知道这怎么会发生。有人可以帮帮我吗?
【问题讨论】:
-
您使用的是哪个 java api?链接?
-
我使用 ews java api 1.3 SNAPSHOT,我从 maven 存储库和这里下载我的 pom.xml
com.microsoft.office ews-java-api system 1.3-SNAPSHOT -
看起来正确,可能使用 TraceListener 捕获 SOAP 数据包会有所帮助。以下是一些链接:1、2、3 另外我建议您将问题发布到exchange development forum 以获得准确的回复。当我遇到类似的奇怪事情时,这对我有所帮助。
标签: java email email-attachments exchangewebservices ewsjavaapi