Ich versuche den Absender einer E-Mail in Outlook 2007 und höher zu ermitteln. In Outlook 2010 haben Sie eine Sender
Eigentum auf dem MailItem
Objekt, während Sie in Outlook 2007 müssen Sie es anders als in erwähnt tun diese Frage.
Jetzt muss ich wissen, ob die aktuelle Version von Outlook das unterstützt Sender
Eigenschaft, und wenn dies nicht der Fall ist, verwenden Sie die andere Methode. Der Grund dafür ist, würde ich bevorzugen, das zu verwenden Sender
Eigenschaft für die Kompatibilität mit zukünftigen Versionen von Outlook statt Bedingung für die Version von Outlook.
Die Frage ist also, wie kann ich feststellen, ob eine Eigenschaft in Outlook Interop existiert? Da es sich um ein COM-Objekt handelt, kann ich hier keine Reflexion verwenden.
Antworten:
1 für die Antwort № 1Ich habe die MailItem.ItemProperties-Auflistung verwendet, um nach der Eigenschaft "Sender" zu suchen. Unten ist der Code
Microsoft.Office.Interop.Outlook.MailItem myMail;
//Code to get the mail
....
Microsoft.Office.Interop.Outlook.ItemProperties mailProps = myMail.ItemProperties;
Microsoft.Office.Interop.Outlook.ItemProperty mailProp = mailProps.Item ("Sender"); //the parameter is case-sensitive
if(mailProp != null)
{
//get email address using Sender object
Microsoft.Office.Interop.Outlook.AddressEntry theSender = myMail.Sender;
}
else
{
//use alternate method for Outlook 2007
}
0 für die Antwort № 2
Sie können verwenden IDispatch :: GetIDsOfNames um zu sehen, ob die Eigenschaft existiert