1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
// 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;
}
|