2014-02-21 55 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