2010-02-11 33 views
6

Tôi đang cố gắng lấy địa chỉ email của người gửi từ email được gửi bằng địa chỉ email khác. Người gửi như hiển thị trong triển vọng là [email protected] thay mặt cho Tên người dùng [[email protected]]. Đối tượng MAPI có phương thức SentOnBehalfOfName trả về "Tên người dùng" nhưng không trả về địa chỉ email. Có ai biết cách nhận trường [email protected] không?C# Cách gửi địa chỉ email thay thế trong giao diện bổ sung

Trả lời

6
using System; 
using System.Runtime.InteropServices; 
using System.Diagnostics; 
using System.Reflection; 

namespace Helpers 
{ 
    internal class EmailHelper 
    { 
     public static string GetSenderEmailAddress(Microsoft.Office.Interop.Outlook.MailItem mapiObject) 
     { 
      Microsoft.Office.Interop.Outlook.PropertyAccessor oPA; 
      string propName = "http://schemas.microsoft.com/mapi/proptag/0x0065001F"; 
      oPA = mapiObject.PropertyAccessor; 
      string email = oPA.GetProperty(propName).ToString(); 
      return email; 
     } 
    } 
} 
1

Bạn có http://www.dimastr.com/outspy/ không? Nó là một công cụ hữu ích để khoan sâu vào các đối tượng MAPI trong triển vọng.

Ngoài ra, nếu bạn sử dụng http://www.dimastr.com/redemption/ bạn có thể nhận tại một thuộc tính SentOnBehalfOfEmailAddress trên đối tượng IRDOMail.

1

Nếu bạn đang sử dụng triển vọng 2007, bạn có MailItem.PropertyAccessor và bạn có thể nhận được thuộc tính bản đồ PR_SENDER_EMAIL_ADDRESS.

Marcus

Các vấn đề liên quan