2014-02-21 87 views
0

我目前正在開發一個程序,用於通過公司的EWS發送電子郵件。發送郵件的代碼工作正常,但我還需要獲取有關郵件發件人的一些數據。這意味着,當用戶向我發送電子郵件時,我需要查看他的位置和地址。 我正在努力爭取更多的一個星期來找到一種方法來定義代碼中的發件人和他的聯繫方式。到目前爲止還沒有發現。 將appreacite你的helf。EWS - 獲取當前用戶(發件人)的聯繫信息vb.net

我迄今爲止代碼:

Dim url As String = "https://.../ews/Exchange.asmx" 
    exch.Url = New System.Uri(url) 
    exch.UseDefaultCredentials = False 
    exch.Credentials = New System.Net.NetworkCredential(TextBox2.Text, TextBox1.Text) 
    ' exch.AutodiscoverUrl("myemail") 
    'exch.ResolveName("", ResolveNameSearchLocation.ContactsThenDirectory, True) 
    Dim message As New EmailMessage(exch) 
    message.Subject = "Новое заявление (АП) - " & ComboBox1.SelectedItem 
    message.Body = "Добрый день!" & vbNewLine & vbNewLine & "Прошу обработать заявление - " & ComboBox1.SelectedItem 
    For Each f In attfiles 
     message.Attachments.AddFileAttachment(f) 
    Next 
    message.ToRecipients.Add(email) 
    message.SendAndSaveCopy() 
+0

包括他在郵件正文中的位置和地址。如果您要求用戶只需添加兩個其他輸入(位置和地址字段),以便用戶可以編寫這些輸入。 – qwr

+0

是的,這可能是一個決定,但我想盡量減少程序中的任何手動輸入。發件人點擊「發送」按鈕後,我想從發件人聯繫信息中檢索此信息(所有信息均顯示在每個人的聯繫人屬性中)。 – user3335741

+0

定義您的意思是聯繫信息。它存儲在數據庫中還是存儲在設備上?你在談論Windows Phone嗎? – qwr

回答

0

你是正確的道路上使用ResolveNames操作。使用發件人SMTP地址,使用ResolveNames找回發件人的潛在匹配列表。在這個例子中的foreach就是這樣,你可以看到每個結果。由於您傳遞的是SMTP地址,因此很可能您的結果集不超過幾個聯繫人。

這聽起來像你的一個假設是發件人始終在用戶的「聯繫人」文件夾中有一個條目。這總是如此嗎?發件人是否不能作爲收件人聯繫人文件夾中的條目存在,但在Active Directory中有條目?您正在通過使用ResolveNameSearchLocation.ContactsThenDirectory選項來覆蓋兩種可能性。

如果您有顯示名稱或SMTP地址,則解析名稱可以很好地工作。您還會詢問如何找到特定的聯繫人。您提到要搜索「聯繫人」文件夾,但您擔心的是員工數量。所有員工都有目標郵箱中的聯繫人項目嗎?要搜索特定的聯繫人,請了解EWS search