Вопрос

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.

Это было полезно?

Решение

found the solution, i have to use item.load(); before getting the sender email address.

Другие советы

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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top