found the solution, i have to use item.load();
before getting the sender email address.
Can't get sender email address with EWS Java API
-
27-11-2021 - |
Frage
I am using EWS Java API 1.1.5. I am trying to get the email sender as follows:
ItemView view = new ItemView(10);
FindItemsResults<Item> findResults = service.findItems(
WellKnownFolderName.Inbox, view);
for (Item item : findResults.getItems()) {
if (item instanceof EmailMessage) {
String senderEmail = ((EmailMessage) item).getSender().getAddress();
System.out.println("Sender Email: " + senderEmail);
}
}
);
But it always returns null
. I also tried the following:
String senderEmail = ((EmailMessage) item).getFrom().getAddress();
But it also returns null
. I can see that the email contains sender like:
Test User <testuser@testdomain.com>
It appears in the message and also when replying to the email.
Please advise how to fix this issue.
Lösung
Andere Tipps
While the above works perfectly, as an alternative, loading is not necessary if the search is done with the view of the properties, consider the code snippet
ItemView view = new ItemView(100);
view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Descending);
view.setPropertySet(new PropertySet(BasePropertySet.IdOnly,
ItemSchema.Subject,
ItemSchema.DateTimeReceived,
EmailMessageSchema.From));
SearchFilterCollection searchCollection=new SearchFilter.SearchFilterCollection();
searchCollection.add(new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, !unreadEmailOnly));
FindItemsResults<Item> result=exchangeService.findItems(WellKnownFolderName.Inbox,
searchCollection,
view);
Subsequently, EmailMessage.getFrom().getAddress() can be called.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow