我目前正在开发一个程序,用于通过公司的EWS发送电子邮件。发送邮件的代码完美无缺,但我还需要获取有关电子邮件发件人的一些数据。这意味着,当用户向我发送电子邮件时,我需要查看他的位置和地址。 我挣扎了一个多星期才找到一种方法来定义代码中的发件人及其联系方式。到目前为止还没有找到任何结果 将你的精神充足。
到目前为止我的代码:
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 :(得分:0)
使用ResolveNames操作,您在正确的路径上。使用发件人SMTP地址,使用ResolveNames返回发件人的潜在匹配列表。示例中的foreach只是为了让您可以看到每个结果。由于您传递的是SMTP地址,因此您的结果集很可能只是几个联系人。
听起来您的假设之一是发件人总是在用户的“联系人”文件夹中有一个条目。这总是如此吗?发件人不能作为收件人联系人文件夹中的条目存在但在Active Directory中有条目吗?通过使用ResolveNameSearchLocation.ContactsThenDirectory选项,您正在做正确的事情来涵盖这两种可能性。
如果您有显示名称或SMTP地址,则解析名称可以正常工作。您还询问如何查找特定联系人。您提到要搜索“联系人”文件夹,但您担心的是员工数量。所有员工都有目标邮箱中的联系人项目吗?要搜索特定联系人,请了解EWS search。