Solved

How to get ToRecipients in Exchange Web Service

Posted on 2011-03-04
2
1,745 Views
Last Modified: 2012-05-11
Experts,

I am working on Exchange Web Service API to read mails from a users inbox. I want to do the following

Get the list of mails from a users inbox - Done.
Resend these mails again to their intended recipients - PROBLEM

When i am trying to fetch the intended recipients, ToRecipients property of the EmailMessage class is always empty. Any idea why this is happening? I am attaching my code along with this question.

Working on Exchange Server 2010, Visual Studio 2008

It's an urgent requirement. Ur help is much needed.

Thank you
 
Imports System
Imports System.Configuration
Imports System.Net
Imports Microsoft.Exchange.WebServices.Autodiscover
Imports Microsoft.Exchange.WebServices.Data

Public Class Form2
#Region "Private members"
    Private _objService As ExchangeService
#End Region

#Region "Form/Control events"
    Private Sub FormLoad(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        InitializeService()
        ProcessMailQueue()
    End Sub
#End Region

#Region "User defined methods"
    Private Sub InitializeService() ''Initializes Exchange service
        Try
            _objService = New ExchangeService(ExchangeVersion.Exchange2010)
            _objService.Credentials = New WebCredentials("xxxx@xxxx.com", "xxxxxx")
            _objService.AutodiscoverUrl("xxxx@xxxx.com")
        Catch ex As Exception
        End Try
    End Sub

    Private Function GetInboxItems() As FindItemsResults(Of Item)
        Dim objFindItemResults As FindItemsResults(Of Item)
        Try
            objFindItemResults = _objService.FindItems(WellKnownFolderName.Inbox, New ItemView(10))
        Catch ex As Exception
        End Try
        Return objFindItemResults
    End Function

    Private Sub ProcessMailQueue()
        Dim objMails As FindItemsResults(Of Item)
        Dim objItem As Item

        Try
            objMails = GetInboxItems() ''Getting mails from users inbox

            For Each objItem In objMails ''Looping thru found items and resend them
                ResendMail(objItem)
            Next
        Catch ex As Exception
        End Try
    End Sub

    Private Sub ResendMail(ByVal Mail As EmailMessage)
        Dim objEmail As EmailMessage
        Dim objEmailAddress As EmailAddress

        objEmail = New EmailMessage(_objService)

        For Each objEmailAddress In Mail.ToRecipients ''Mail.ToRecipients list is always empty! 
            objEmail.ToRecipients.Add(objEmailAddress)
        Next

        objEmail.Subject = Mail.Subject
        objEmail.Body = Mail.Body
        objEmail.SendAndSaveCopy()
    End Sub

#End Region
End Class

Open in new window

0
Comment
Question by:RTKHOT
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 9

Accepted Solution

by:
jkofte earned 500 total points
ID: 35036199
did you try using LoadPropertiesForItems method ?

check my code below:

               
ExchangeService service = oEWS.CallEWSService(); 
                FindItemsResults<Item> findResults = service.FindItems(
                WellKnownFolderName.Inbox,
                new ItemView(Convert.ToInt16(AppSettings.GetConfigValue("BMAEMailCountPerCall"))));
                if (findResults.Items.Count > 0)
                {
                    service.LoadPropertiesForItems(findResults, PropertySet.FirstClassProperties.BasePropertySet);
                }

Open in new window

0
 

Author Closing Comment

by:RTKHOT
ID: 35054944
Perfect! Resolved one other problem i had as well. thx a lot dude! :)
0

Featured Post

Instantly Create Instructional Tutorials

Contextual Guidance at the moment of need helps your employees adopt to new software or processes instantly. Boost knowledge retention and employee engagement step-by-step with one easy solution.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article explains how to install and use the NTBackup utility that comes with Windows Server.
There are times when we need to generate a report on the inbox rules, where users have set up forwarding externally in their mailbox. In this article, I will be sharing a script I wrote to generate the report in CSV format.
In this video we show how to create an Address List in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Organization >> Ad…
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…

717 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question