| |
VB.NET - Ein- und UmsteigerDateianhänge aus Outlook-Unterordner extrahieren | | | Autor: Tommi467 | Datum: 16.01.17 14:25 |
| Hallo zusammen,
Aufgabe ist es, mit einem vb.net Programm die Dateianhänge von Mails in einem´
Unterordner zu extrahieren. Bevor jetzt einer mit VBA anfängt, jaaa... das geht,
aber aus Sicherheitsgründen (Makro-Sicherheitsrichtlinien) fällt dieser Weg aus.
Ich hab schon ein wenig im Netzt gestöbert und auch schon zwei Sources gefunden.
Der eine macht genau was er soll, Dateianhänge extrahieren. Aber nur aus dem Ordner
Posteingang. Die Mails liegen aber in einem anderen Ordner, nennen wir es mal
originell "TEST".
Mit dem zweiten Tool kann ich zwar alle Ordner listen, aber irgendwie bekomme ich
es nicht hin, das die Extraktion mit dem Ordner "Test" arbeitet.
Habe gelesen, das es mit GetDefaultFolder(OlDefaultFolders.olPublicFoldersAllPublicFolders
gehen soll, aber es will ums verrecken nicht laufen. Bekomme immer OlDefaultFolder sei
nicht deklariert...
Kann jemand helfen.
Dim oOutlook As Object ' Outlook Object
Dim oNamespace As Object ' Namespace Object
Dim oFolder As Object ' MapiFolder Object
Dim oMail As Object ' Mail Object
Dim oAnhang As Object ' Attachment Object
Dim i As Integer
Dim j As Integer
Const olFolderInbox = 6
Const olTXT = 0
On Error Resume Next
' Outlook-Objekt erstellen
oOutlook = CreateObject("Outlook.Application")
' Namespace: MAPI
oNamespace = oOutlook.GetNamespace("MAPI")
oFolder = oNamespace.GetDefaultFolder(olFolderInbox)
' Alle Mails durchlaufen
i = 1
j = oFolder.Items.Count
Do While j > 0
oMail = oFolder.Items(j)
' Auf Anhang prüfen und evtl. speichern
With oMail.Attachments
i = .Count
Do While (i > 0)
oAnhang = .Item(i)
oAnhang.SaveAsFile(sPath & CStr(i) & "_" & _
oAnhang.DisplayName)
i = i - 1
Loop
End With
' Nachricht speichern
'oMail.SaveAs(sPath & CStr(i) & "_" & oMail.Subject & ".txt", olTXT)
j = j - 1
Loop
' Fertig
MsgBox("Done") | |
Re: Dateianhänge aus Outlook-Unterordner extrahieren | | | Autor: Tommi467 | Datum: 24.01.17 15:53 |
| Sooo... hab es inzwischen selbst hin bekommen.
Für alle nachfolgenden die vielleicht auch irgendwann mal danach suchen hier der Source:
Unter Verweise müssen hinzugefügt werden:
Microsoft.office.interop.outlook
Microsoft.Office.Tools.Outlook.v9.0
Imports System.Text
Imports System.Runtime.InteropServices
Imports Microsoft.Office.Interop
Public Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
Handles Button1.Click
Dim oOutlook As Object ' Outlook Object
Dim oNamespace As Object ' Namespace Object
Dim oFolder As Object ' MapiFolder Object
Dim subFolder As Microsoft.Office.Interop.Outlook.MAPIFolder = Nothing
Const olFolderInbox = 6
Const olTXT = 0
On Error Resume Next
' Outlook-Objekt erstellen
oOutlook = CreateObject("Outlook.Application")
' Namespace: MAPI
oNamespace = oOutlook.GetNamespace("MAPI")
oFolder = oNamespace.GetDefaultFolder(olFolderInbox)
subFolder = oFolder.Folders("UNTERORDNER") 'folder.Folders[1]; also
' works
Dim oItems As Outlook.Items
For Each collectionItem As Object In subFolder.Items
Dim newEmail As Outlook.MailItem = TryCast(collectionItem, _
Outlook.MailItem)
If newEmail.UnRead = True Then
If newEmail.Attachments.Count > 0 Then
For i As Integer = 1 To newEmail.Attachments.Count
'Dim filePath As String = Path.Combine(
' destinationDirectory, newEmail.Attachments(
' i).FileName)
Print(1, "-> " & newEmail.Attachments.Item( _
i).FileName & vbCrLf)
newEmail.Attachments(i).SaveAsFile( _
Application.StartupPath & "\" & _
newEmail.Attachments.Item(i).FileName)
Next i
End If
End If
Next collectionItem
FileClose(1)
End Sub
End Class | |
Re: Dateianhänge aus Outlook-Unterordner extrahieren | | | Autor: Franki | Datum: 25.01.17 05:46 |
| Hallo,
gut dass die Aufgabe gelöst ist, aber:
Zitat: | |
Aufgabe ist es, mit einem vb.net Programm die Dateianhänge
von Mails in einem Unterordner zu extrahieren. Bevor jetzt einer mit VBA
anfängt, jaaa... das geht, aber aus Sicherheitsgründen (Makro-Sicherheitsrichtlinien) fällt dieser Weg aus.
| |
Was ist das denn für eine Sicherheitsrichtlinie?
Es geht ja um die Dateianhänge aus den E-Mails, und genau diese könnten evtl. unsicher sein. Ob die jetzt per VBA, .NET oder was auch immer bearbeitet werden spielt in Sachen Sicherheit ja überhaupt keine Rolle. Wenn ein Dateianhang unsicher ist, er z.B. einen Trojaner, Virus, irgendwelche Malware enthält oder sonst wie gegen die Sicherheitsrichtlinien verstößt hat rein gar nichts damit zu tun, ob du diesen per VBA oder .NET bearbeitest.
Da solltest du bei deinem Auftraggeber mal nachfragen was so eine Sicherheitsrichtline für eine Sinn hat.
Makrosicherheit ist ein Thema, aber wenn du die Makros selbst schreibts können sie auch sicher oder unsicher sein, genau wie dein .Net Programm auch. Da müsste ja beides verboten werden. (Oder halt geprüft werden vor der Freigabe im Unternehmen)
Gruß
Frank | |
Re: Dateianhänge aus Outlook-Unterordner extrahieren | | | Autor: Tommi467 | Datum: 25.01.17 08:10 |
| Hallo Franki,
grundsätzlich hast du ja Recht. Das ist ja auch der Grund warum ich
die Einstellungen nicht verändern will. Aber...
Du hast nicht ganz zu ende gedacht.
Es ging um einen "Unterordner". In diesen Unterordner gelangen nur
Mails, die einer Regel entsprechend dort hin verschoben wurden und
dadurch als sicher eingestuft wurden. Weil
1. Sie an eine bestimmt Adresse (nur für diese Anwendung) geschickt wurden
2. Sie von einem legitimierten Absender (Absenderadresse) kommen
3. Sie eine spezielle Kennung im Betreff haben.
Ich glaube, das sind ausreichend Gründe diesen Mails zu vertrauen.
Mal ganz abgesehen davon, das nur übermittelte XML-Dateien weiterverarbeitet
werden und alles andere eh gelöscht wird. Es würde auch niemand in die
Verlegenheit kommen, irgendwelche Schadsoftware zu starten, weil niemand
an diesen Ordner kommt, außer die Routine.
Von daher glaube ich, das es sich bei dieser Vorgehensweise um eine
sicher Art und Weise handelt. | |
Re: Dateianhänge aus Outlook-Unterordner extrahieren | | | Autor: Franki | Datum: 26.01.17 01:34 |
| Hallo,
na klar habe ich das nicht zuende denken können weil ich ja deine speziellen Gegebenheiten nicht kannte. Aber so wie du das beschreibst hört sich das schon besser an mit der Sicherheit.
Gruß
Frank | |
Re: Dateianhänge aus Outlook-Unterordner extrahieren | | | Autor: Tommi467 | Datum: 26.01.17 10:38 |
| Danke Effeff,
aber ich hatte die Lösung ja schon selbst gefunden und
im 2 Thread veröffentlich nachdem niemand geantwortet hatte.
Dachte, vielleicht braucht es jemand anderes vielleicht noch mal. | |
| 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 |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevOutBar 4.0
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere Infos
|