?
Solved

How to get ToRecipients in Exchange Web Service

Posted on 2011-03-04
2
Medium Priority
?
1,767 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 2000 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

Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

Question has a verified solution.

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

How to resolve IMCEAEX NDRs in Exchange or Exchange Online related to invalid X500 addresses.
New style of hardware planning for Microsoft Exchange server.
In this video we show how to create a Contact 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 Recipients >> Contact ta…
The basic steps you have just learned will be implemented in this video. The basic steps are shown to configure an Exchange DAG in a live working Exchange Server Environment and manage the same (Exchange Server 2010 Software is used in a Windows Ser…
Suggested Courses

741 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