OLEDB-Datenzugriff ist ein effizienter Weg, um Daten aus Outlook abzurufen. Dieses Snippet ermöglicht sofortigen Zugriff auf das gesamte Outlook-Postfach.
// using System.Data.OleDb; // Nicht vergessen!
/// <summary>
/// Gibt den Inhalt eines bestimmten Outlook-Ordners als Tabelle zurück.
/// (Wurde nur mit einer deutschen Outlook-version getastet!)
/// </summary>
/// <param name="mapiProfile">Name des MAPI-Profils (z.B. "MS Exchange-Einstellungen"), einzusehen in Systemsteuerung -> Mail</param>
/// <param name="displayUserName">Anzeigename des Benutzers (z.B. "Max Mustermann")</param>
/// <param name="folderName">Name des Ordners (z.B. "Posteingang")</param>
/// <returns>Inhalt des Outlook-Ordners</returns>
private DataTable GetOutlookFolderData(string mapiProfile, string displayUserName, string folderName)
{
// Verbindungszeichenfolge erzeugen
string connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Exchange 4.0;MAPILEVEL=Postfach - {0}|;PROFILE={1};TABLETYPE=0;DATABASE={2};",displayUserName,mapiProfile,Environment.GetEnvironmentVariable("TEMP"));
// SQL-Abfrage erzeugen
string sql = string.Format("SELECT * FROM {0}", folderName);
// Neue Tabelle erzeugen
DataTable result = new DataTable(folderName);
// Verbindung zu Outlook herstellen
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
// Datenadapter bauen
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, connection);
// Inhalt des Outlook-Ordners abrufen
adapter.Fill(result);
}
// Tabelle mit Ordnerinhalt zurückgeben
return result;
}
Kommentare zum Snippet