über mich
mein motto

Visual C# 2008 - Das Videotraining von Lars Keller

followme

Get your 'feeds' on Follow me on Twitter Currently no podcasts available

recentcomments

Comment RSS

community

Community Leader / Insider Program VSTO Taskforce Just Community .NET Developer Group Braunschweig

NewMail-Event vs. NewMailEx-Event

9. März 2009 | Geändert: 20. Januar 2010 | MVP | VSTO 0

Vielleicht hat sich der eine oder andere auch schon einmal gefragt, wo genau der Unterschied zwischen den beiden Outlook-Events NewMail und NewMailEx liegt.

Das NewMail-Event steht ab Outlook 2000 zur Verfügung. Es wird gefeuert, wenn eine oder mehrere E-Mails im Posteingang ankommen. Das NewMail-Event teilt uns aber nicht mit, welche E-Mails neu angekommen sind. Zudem verschluckt sich das Event auch mal gern, wenn mehr als 16 E-Mails gleichzeitig ankommen. Die weiteren E-Mails werden danach nicht mehr beachtet.

Das NewMailEx-Event wurde mit Outlook 2003 neu eingeführt. Es bietet uns einen durch Komma getrennten String an, welcher die EntryIDs der angekommen E-Mails enthält.

 

NameSpace.GetItemFromID(EntryID)

 

Mit den folgenden Zeilen können wir uns ganz einfach die neue E-Mail(s) als MailItem aus dem Posteingang holen:

 

Application.NewMailEx += new ApplicationEvents_11_NewMailExEventHandler(Application_NewMailEx);

private void Application_NewMailEx(string EntryIDCollection)
{
	string[] entryIDs = EntryIDCollection.Split(',');

	MailItem mail;
	NameSpace olNS = _app.GetNamespace("MAPI");
	MAPIFolder inbox = olNS.GetDefaultFolder(OlDefaultFolders.olFolderInbox);

	for (int i = 0, i <= entryIDs.Count; i++)
	{
		if (!String.IsNullOrEmtpy(entryIDs[i]))
			mail = olNS.GetItemFromID(EntryIDCollection, inbox.StoreID) as MailItem;
			//do something
	}
}

 

Des Weiteren wurde auch das Problem mit den 16 gleichzeitig eintreffenden E-Mails behoben. Jedenfalls fast :) Treffen 1000 E-Mails gleichzeitig ein, kann es auch beim  NewMailEx-Event passieren, dass sich das Event verschluckt und die nachfolgenden E-Mails missachtet werden. Aber dieser Fall sollte (hoffentlich) nur bei einem PST Merge oder einer Exchange Foldersynchronisation auftreten.

kick it on dotnet-kicks.de

Kommentar schreiben


(Zeigt dein Gravatar icon)

biuquote
  • Kommentar
  • Live Vorschau
Loading