vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Outlook Mailitem schließen funktioniert nicht 
Autor: Volker Bunge
Datum: 05.12.18 07:56

Hallo zusammen,

ich will aus hunderten abgelegten Outlook 2007 Mails (MSG Dateien das Datum/Zeit und den Absender ermitteln (funktioniert soweit auch).

Anschließend soll die Datei das Erstellungsdatum der Mail bekommen und nicht wie jetzt das aktuelle Datum von gestern (da habe ich die Mails in Ordner abgelegt.

Hier mal mein bisheriger Code
Imports Microsoft.Office.Interop
 
Public Class Form1
 
    Const Dateipfad As String = "C:\tmp\Zur Info - Satzung.msg"
    Sub ändern(Dateipfad As String, neuesDatum As Date)
        Dim sFile As String = Dateipfad
 
        ' FileInfo-Objekt erstellen
        With New System.IO.FileInfo(sFile)
            ' Datums- und Zeitangaben auslesen 
            Debug.Print("Erstellungsdatum: " & .CreationTime)
            Debug.Print("Letzter Zugriff: " & .LastAccessTime)
            Debug.Print("Letzte Änderung: " & .LastWriteTime)
 
            ' Erstellungsdatum ändern
            Dim DatumTag As Integer
 
            'DatumTag = DateTime.Parse(neuesDatum.Day).DayOfWeek
            .CreationTime = New Date(neuesDatum.Year, neuesDatum.Month, _
              neuesDatum.Day, neuesDatum.Hour, neuesDatum.Minute, _
              neuesDatum.Second)
 
            ' Datumsangabe "Letzter Zugriff" ändern
            .LastAccessTime = neuesDatum ' New Date(2009, 5, 16, 13, 12, 11)
 
            ' Datum "Letzte Änderung" ändern
            .LastWriteTime = neuesDatum ' New Date(2009, 5, 17, 13, 12, 11)
        End With
    End Sub
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
      Handles Button1.Click
 
        Dim objOutlook As Outlook.Application
        Dim objOutlookItem As Outlook.MailItem
 
        Dim strPath As String
        Dim strFile As String
 
        Dim NeuesDatum As Date
 
        ' War auch mal ein Text, klappt unten aber auch nicht
        Dim ExterneAnwendung As New System.Diagnostics.Process()
        ExterneAnwendung.StartInfo.FileName = "OUTLOOK.EXE"
        '  ExterneAnwendung.Start() ' deaktiviert, da hier Outlook selbst _
          starten würde
        ' Erzeugen...
 
        objOutlook = New Outlook.Application
 
        ' Check...
 
        If Not objOutlook Is Nothing Then
 
            '   Ab hier könntest Du eine Schleife draus machen,
            '   um die Dateien alle einzulesen
            '
            '   Pfad und Datei...
 
            strPath = "E:\Temp"
            strFile = "TEST.msg"
 
            '   Mail öffnen...
            objOutlookItem = CType(objOutlook.Session.OpenSharedItem( _
              Dateipfad), Outlook.MailItem) 'strPath & "\" & strFile)
 
            '   Check...
            If Not objOutlookItem Is Nothing Then
 
                '     Auslesen...
                'MsgBox "Body: " & objOutlookItem.Body
                'MsgBox "CreationTime: " & objOutlookItem.CreationTime
                'MsgBox "DeferredDeliveryTime: " & 
                ' objOutlookItem.DeferredDeliveryTime
                MsgBox("ReceivedTime: " & objOutlookItem.ReceivedTime)
                'MsgBox "ReminderTime: " & objOutlookItem.ReminderTime
                MsgBox("SenderName: " & objOutlookItem.SenderName)
                MsgBox("SenderEmailAddress: " & _
                  objOutlookItem.SenderEmailAddress)
                MsgBox("Subject: " & objOutlookItem.Subject)
                NeuesDatum = objOutlookItem.ReceivedTime
 
                '     Schließen...
                ' Hie scheint es dran zu liegen
                objOutlookItem.Close(Outlook.OlInspectorClose.olDiscard) ' 
                ' Close(olDiscard) ' 1 = Discard = Verwerfen
                'Outlook.Application.close()
 
            End If
 
            '   Zurücksetzen...
            objOutlookItem = Nothing
 
            '
            '   Hier wäre das Ende der Schleife
            '
 
            '   Abschließen schließen...
            objOutlook.Quit()
 
        End If
 
        ' Aufräumen...
        objOutlook = Nothing
 
        ' ExterneAnwendung.kill() ' Findet hier keinen passenden Prozess. Liegt _
          wohl an der oben deaktivierten .Start() Anweisung
 
        Call ändern(Dateipfad, NeuesDatum)
    End Sub
End Class
Ich glaube, dass es an der Zeile

objOutlookItem.Close(Outlook.OlInspectorClose.olDiscard) ' Close(olDiscard) ' 1 = Discard = Verwerfen

liegt, denn Outlook ist als Task noch zu sehen. Beende ich Outlook manuell, dann funktioniert alles super.

(Die Massenabfertigung muss ich natürlich noch einbauen, und aufräumen sowieso).

Wäre echt super, wenn mir einer von Euch helfen könnte. Im Internet habe ich auch schon ein paar Stunden gestern gesucht aber immer nur das gleiche gefunden.

Vielen Dank

Volker
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Outlook Mailitem schließen funktioniert nicht1.524Volker Bunge05.12.18 07:56
Re: Outlook Mailitem schließen funktioniert nicht679Manfred X05.12.18 09:50
Re: Outlook Mailitem schließen funktioniert nicht619Volker Bunge05.12.18 11:09
Re: Outlook Mailitem schließen funktioniert nicht611Manfred X05.12.18 20:41
Re: Outlook Mailitem schließen funktioniert nicht566Volker Bunge11.12.18 09:41
Re: Outlook Mailitem schließen funktioniert nicht566Manfred X12.12.18 10:22
Re: Outlook Mailitem schließen funktioniert nicht648Volker Bunge11.12.18 09:41
Re: Outlook Mailitem schließen funktioniert nicht572Volker Bunge22.12.18 10:49

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel