Получение из, SentOnBehalfOfName и имя учетной записи из объекта MailItem (общие надстройки Outlook)
Я использую Vs2010 -> Extensibility->Shared Add-in. Я добавил обработчик событий в мой ItemSend
applicationObject.ItemSend += new Outlook.ApplicationEvents_11_ItemSendEventHandler(applicationObject_ItemSend);
void applicationObject_ItemSend(object Item, ref bool Cancel)
{
if(Item is Outlook.MailItem)
{
Outlook.MailItem mailItem = Item as Outlook.MailItem;
if (mailItem != null)
{
MessageBox.Show("Sender's Email Address "+mailItem.SenderEmailAddress);
MessageBox.Show("Sender's Email Address "+mailItem.SentOnBehalfOfName);
MessageBox.Show("Sender's Email Address "+mailItem.SendUsingAccount);
}
}
}
mailItem.SenderEmailAddress,mailItem.SentOnBehalfOfName
а также mailItem.SendUsingAccount
Я получаю все это свойство null
Пожалуйста, вы можете помочь мне, я хочу получить от, SentOnBehalfOfName
и имя учетной записи от с электронной почтой было отправлено.
2 ответа
Решение
Свойства, относящиеся к отправителю, устанавливаются только после того, как сообщение действительно отправлено и перемещено в папку "Отправленные". Возможно, вы захотите использовать событие Items.ItemAdd в папке "Отправленные".
Это код, который я использовал
public Outlook.MAPIFolder sentFolder = null;
public Outlook.Items itmsSentFolder = null;
sentFolder = applicationObject.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail);
itmsSentFolder = sentFolder.Items;
itmsSentFolder.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(itmsSentFolder_ItemAdd);
void itmsSentFolder_ItemAdd(object Item)
{
if (Item is Outlook.MailItem)
{
Outlook.MailItem mailItem = Item as Outlook.MailItem;
if (mailItem != null)
{
MessageBox.Show("Sender's Email Address " + mailItem.SenderEmailAddress);
MessageBox.Show("Sent On Behalf Of Name " + mailItem.SentOnBehalfOfName);
Outlook.Account ac = (Outlook.Account)mailItem.SendUsingAccount;
if(ac != null)
{
MessageBox.Show("Sender's Account Name " + ac.SmtpAddress);
}
}
}
}
Спасибо за идею Дмитрий Стребченко