Я видел несколько постов, где люди просят найти адрес электронной почты получателя и ссылаются на свойство MAPI: http://schemas.microsoft.com/mapi/proptag/0x39FE001E".Однако, как отмечают некоторые пользователи, не все свойства MAPI гарантированно присутствуют.Поэтому я ищу, чтобы разработать функцию, которая находит правильный способ получить этот адрес электронной почты.Для адреса электронной почты отправителей я могу сказать, если это обменный пользователь и вернуть адрес электронной почты SMTP.Есть ли здесь метод для возврата этого значения независимо от того, отсутствует ли MAPI?
Вот что у меня есть
Public Function RecipientSMTPEmailAddress(outRecip As Outlook.Recipient) As String
On Error GoTo MissingMAPIError
RecipientSMTPEmailAddress = outRecip.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x39FE001E")
Exit Function
MissingMAPIError:
RecipientSMTPEmailAddress = outRecip.Address
End Function
Я ищу метод, аналогичный этому, использованный дляинформация об отправителе:
If OutMail.SenderEmailType = "EX" Then
SenderInfo = OutMail.Sender.GetExchangeUser.PrimarySmtpAddress
Else
SenderInfo = OutMail.SenderEmailAddress
End If
Если есть лучший способ убедиться, что я получаю SMTP-адрес электронной почты, у меня все на слух!
* Отредактировано 23.09.2009 - Новый и улучшенный код дляперехватить все ошибки получателя
Public Function RecipientSMTPEmailAddress(outRecip As Outlook.Recipient) As String
On Error GoTo MissingMAPIError
RecipientSMTPEmailAddress = outRecip.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x39FE001E")
Exit Function
MissingMAPIError:
RecipientSMTPEmailAddress = RecipientSMTPEmailAddressExchange(outRecip)
End Function
Public Function RecipientSMTPEmailAddressExchange(outRecip As Outlook.Recipient) As String
On Error GoTo MissingExchangeError
RecipientSMTPEmailAddressExchange = outRecip.AddressEntry.GetExchangeUser.PrimarySmtpAddress
Exit Function
MissingExchangeError:
RecipientSMTPEmailAddressExchange = ""
End Function