Code-Beispiel

E-Mails von einem Microsoft Exchange Server abholen und Dateianhänge auspacken (im Dateisystem speichern)

Autor: Dr. Holger Schwichtenberg

Beschreibung


Der Code verwendet CDO (Collaboration Data Object), eine COM-Komponente. Die CDO-Komponente ist in Form eines Wrappers (Namensraum Interop.Mapi) einzubinden.

Programmcodebeispiele Visual Basic .NET (VB.NET)

' E-Mails von einem Microsoft Exchange Server abholen und Dateianhänge auspacken (im Dateisystem speichern)
' (C) Dr. Holger Schwichtenberg 2007

Imports Interop
Imports System

Module MainModule
Dim Ergebnis As String = ""
Dim Anzahl As Long = 0
Const PROFILNAME As String = "Agent"
Const ORDNERNAME As String = "Datenordner"
Const DATEISYSTEM As String = "d:\daten"

Sub Main()
AttachmentsAuswerten()
Console.ReadLine()
End Sub

Sub OutDebug(ByVal s As String)
Dim sw As New System.IO.StreamWriter("C:\log.txt", True)
sw.WriteLine(DateTime.Now + ": " + s)
sw.Close()
Console.WriteLine(s)
End Sub

Sub AttachmentsAuswerten()
OutDebug("Starte Abholvorgang...")
'Try
Dim objSession As mapi.Session
Dim objF1 As mapi.Folder
Dim objF2 As mapi.Folder
' --- Instanziierung mit new !
objSession = New mapi.Session()
' --- Anmelden
OutDebug("Login")
' Statisches Profil
objSession.Logon(PROFILNAME)
' Dynamicshes Profil
Dim strProfileInfo As String = "192.168.1.191" & vbLf & "HS"
'objSession.Logon("", "", False, True, 0, False, strProfileInfo)

' --- Zugriff auf Ordner
objF1 = CType(objSession.Inbox, mapi.Folder)
objF2 = recsearch_Folder(objF1, ORDNERNAME)
' --- Nachrichten auswerten
For Each m As mapi.Message In objF2.Messages
If m.Unread Then
For Each a As mapi.Attachment In m.Attachments
Ergebnis &= a.Name & ";"
Anzahl += 1
a.WriteToFile(DATEISYSTEM & a.Name)
OutDebug("Anhang: " & a.Name)
Next
End If
Next
OutDebug("Fertig: Anzahl der Anhänge: " & Anzahl)
OutDebug("Abholvorgang beendet!")
'Catch ex As Exception
' OutDebug("Fehler: " & ex.GetType().FullName & ":" + ex.Message)
' 'End Try
End Sub


Public Function recsearch_Folder(ByVal objStartFO, ByVal OrdnerName)
Dim objF As mapi.Folder
If Not objStartFO Is Nothing Then
' --- Vergleich ausführen
If objStartFO.Name = OrdnerName Then
Return objStartFO
Else
' --- Rekursion über alle Unterordner
For Each objF In objStartFO.Folders
Dim objF2 As mapi.Folder = recsearch_Folder(objF, OrdnerName)
' --- Abbruchbedigung der Rekursion
If objF2 IsNot Nothing Then Return objF2
Next
Return Nothing
End If
End If
Return Nothing
End Function
End Module

 

Querverweise

 Liste aller Codebeispiele  Definition '.NET Framework Class Library'  .NET & Visual Studio Community Portal

Buchtipp

Beratung & Support:

Schulungen zu diesem Thema

 Visual Basic .NET - Aufbauwissen
 Grundlagen der objektorientierten Programmierung anhand von C# oder Visual Basic .NET
 Unit Testing / Testgetriebene Entwicklung / Test Driven Development (TDD) von .NET-Anwendungen (C# oder Visual Basic .NET)
 Visual Basic 6.0 (VB6.0)
 Objektorientierte Entwurfsmuster (Design-Pattern/Architektur-Pattern) mit .NET (C#, Visual Basic .NET, C++/CLI)
 Visual Basic .NET - Basiswissen
 Windows Modern Apps/Windows Universal Apps entwickeln mit der Windows Runtime (WinRT), XAML und .NET/C#/Visual Basic
 Visual Basic Script (VBScript/VBS) - Sprachsyntax und Praxiseinsatz
 Word-Programmierung mit Visual Basic for Applications (VBA)
 Visual Studio Tools for Microsoft Office (VSTO) - Microsoft Office-Programmierung mit .NET und C# oder Visual Basic in Visual Studio
 Multi-Threading in .NET mit C#/Visual Basic .NET und/oder C++ und C++/CLI
 C# für Umsteiger von Visual Basic .NET
 Objektorientierte Programmierung (OOP) mit C#, Java, C++, Visual Basic.NET o.ä.
 Excel-Programmierung mit Visual Basic for Applications (VBA)
 Visual Basic .NET für Umsteiger von VBA/VB 4/5/6
 Visual Basic 2005 (Visual Basic 8.0)
 .NET und C# für Umsteiger von klassischem Visual Basic/COM
 Outlook-Programmierung mit Visual Basic for Applications (VBA)
 Das Component Object Model - für Script- und Visual Basic-Entwickler
 .NET-Programmierung im SQL Server (SQLCLR) - Common Language Runtime (CLR)-Integration in SQL Server
 Language Integrated Query (LINQ)
 .NET-Überblick für .NET-Einsteiger und .NET-Entscheider (wahlweise für .NET Framework 4.x und/oder .NET 6.0)
 Windows Scripting
 .NET und COM nutzen in der Windows PowerShell
 Windows PowerShell 5.1/PowerShell 7.0 für System- und Netzwerkadministratoren
 Von ASP.NET 1.1 nach ASP.NET 2.0: Neuerungen in ASP.NET 2.0
 Task Parallel Library (TPL) - Parallelprogrammierung/Multi-Threading in .NET/C#
 .NET im Überblick für Softwareentwickler
 Windows PowerShell 5.1/PowerShell 7.0 für System- und Netzwerkadministratoren (4-Tages-Agenda des öffentlichen Seminars)
 Universal Windows Platform (UWP) Apps entwickeln (Windows 10/Windows 11 Apps erstellen)
 Anfrage für eine individuelle Schulung zum Thema Visual Basic  Gesamter Schulungsthemenkatalog

Bücher zu diesem Thema

 C# 9.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET 5.0, .NET Core und Xamarin (Kindle-E-Book)
 .NET 3.5
 Microsoft ASP.NET 3.5 mit Visual C# 2008 - Das Entwicklerbuch
 C# 9.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET 5.0, .NET Core und Xamarin (PDF-E-Book)
 Windows Scripting (5. Auflage)
 C# 7.2 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin (PDF-E-Book)
 ASP.NET 4.0 mit Visual C# 2010
 Microsoft .NET 2.0 Crashkurs - Final Edition
 Essential PowerShell
 C# 10.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core, .NET 5.0/6.0 und 7.0 (gedruckte Ausgabe)
 C# 11.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core, .NET 5.0/6.0 und 7.0 (Kindle-E-Book)
 C# 11.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core, .NET 5.0/6.0 und 7.0 (PDF-E-Book)
 C# 10.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core, .NET 5.0 und .NET 6.0 (gedruckte Ausgabe)
 C# 7.3 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin (PDF-E-Book)
 C# 11.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core, .NET 5.0/6.0 und 7.0 (gedruckte Ausgabe)
 Office 2010 Programmierung mit VSTO und .NET 4.0: Word, Excel und Outlook erweitern und anpassen
 Microsoft ASP.NET 2.0 mit Visual Basic 2005 - Das Entwicklerbuch
 .NET 3.5 Crashkurs
 Windows Scripting Lernen, 6. Auflage
 Microsoft .NET 4.5 Update - Crashkurs (E-Book - PDF)
 Visual Basic 2010: Grundlagen, ADO.NET, Windows Presentation Foundation
 C# 8.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin (gedruckte Ausgabe)
 Windows Scripting Lernen 5. Auflage
 C# 10.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core, .NET 5.0 und .NET 6.0 (Kindle-E-Book)
 .NET 4.0 Crashkurs
 C# 8.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin (Kindle-E-Book)
 C# 7.3 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin (Kindle-E-Book)
 C# 9.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET 5.0, .NET Core und Xamarin (gedruckte Ausgabe)
 C# 7.3 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin (gedruckte Ausgabe)
 Visual Basic 2010
 Webanwendungen mit ASP.NET 3.5 und AJAX Crashkurs
 Microsoft ASP.NET 3.5 mit Visual Basic 2008 - Das Entwicklerbuch
 C# 8.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin (PDF-E-Book)
 Microsoft .NET 4.5 Update - Crashkurs
 Microsoft ASP.NET 2.0 mit C# 2005 - Das Entwicklerbuch
 Windows Scripting Lernen, 2. Auflage
 Alle unsere aktuellen Fachbücher  E-Book-Abo für nur 99 Euro im Jahr