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

Buchcover PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch (5. Auflage Oktober 2022 (9. Auflage Gesamtreihe)) PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
Autoren: Dr. Holger Schwichtenberg
erschienen 10/2022, 1426 Seiten
ISBN: 3446472967

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)
 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
 .NET 3.5-Update - Die Neuerungen in .NET Framework 3.5 und Visual Studio 2008 im Überblick
 Microsoft Access - Entwicklung von Datenbanklösungen inklusive VBA
 Anfrage für eine individuelle Schulung zum Thema Visual Basic  Gesamter Schulungsthemenkatalog