Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Dateinamen von Anhängen aus einer mail lesen

Dateinamen von Anhängen aus einer mail lesen
05.07.2024 15:50:14
yummi
Hallo zusammen,
ich hoffe mir kann jemand einen Hinweis geben. Ich möchte ein bestimmtes Postfach durchsuchen. Wenn ich dort mail finde, die einen bestimmten Begriff in der Subject Zeile haben sind diese für mich relevant. Soweit funktioniert auch alles.
Was ich aber noch nicht hinbekomme ist der Zugriff auf die Namen der angehängten Dateien.


Option Explicit
Dim olapp As Outlook.Application
Dim olName As Outlook.Namespace

Public Sub ReadMailItems()
Dim strAttCount As String
Dim olItemsCount As Long
Dim lngAttCount As Long
Dim letzteZeile As Long
'Dim olAcCount As Object
Dim olAcCount As Variant

On Error Resume Next
Set olapp = CreateObject("Outlook.Application")
Set olName = olapp.GetNamespace("MAPI")

For Each olAcCount In olapp.Session.Folders("Postfachname").Folders
Call LeseOrdner("Postfachname", "Inbox")
Next

For Each olAcCount In olapp.Session.Folders("Postfachname").Folders("Inbox").Folders
Call LeseOrdner("Postfachname", "Inbox", olAcCount.Name)
Next

For Each olAcCount In olapp.Session.Folders("Postfachname").Folders("Inbox").Folders("Abgleiche").Folders
Call LeseOrdner("Postfachname", "Inbox", "Abgleiche", olAcCount.Name)

Next
End Sub

Function LeseOrdner(ByVal strPostfach As String, ByVal strOrdner As String, Optional ByRef strUnterOrdner As String = "", Optional ByRef strUnterUnterOrdner As String = "")
Dim olFolder As Object
Dim olItemsCount As Long

If strUnterOrdner = "" Then
Set olFolder = olName.Session.Folders(strPostfach).Folders(strOrdner)
ElseIf strUnterUnterOrdner = "" Then
Set olFolder = olName.Session.Folders(strPostfach).Folders(strOrdner).Folders(strUnterOrdner)
Else
Set olFolder = olName.Session.Folders(strPostfach).Folders(strOrdner).Folders(strUnterOrdner).Folders(strUnterUnterOrdner)
End If
For olItemsCount = 1 To olFolder.Items.Count
If InStr(1, olFolder.Items.Item(olItemsCount).Subject, "Abgleiche", vbTextCompare) > 0 Then
'Hier möchte ich die Namen der angehängten Datei lesen was noch nicht geht
Debug.Print olFolder.Items.Item(olItemsCount).SenderName
Debug.Print olFolder.Items.Item(olItemsCount).SenderEmailAddress
Debug.Print olFolder.Items.Item(olItemsCount).ReceivedTime
Debug.Print olFolder.Items.Item(olItemsCount).Subject
End If
End With
Next olItemsCount
End Function


Ich hoffe jemand eine Idee wie das geht oder kennt einen link zum nachlesen. Ich habe schon viel recherchiert, komme aber momentan nicht weiter
Vielen Dank für Eure Hilfe
yummi
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateinamen von Anhängen aus einer mail lesen
05.07.2024 16:16:46
Firmus
Hi Yummi,

BTW - das ganze als XLSM-Datei hochgeladen würde eine Menge unnötige Unterstützungsarbeit sparen.

Hier ein Auszug aus meinem Makro



If (olMail.Attachments.Count > 0) Then
attachindex = attachindex + 1

For x = 1 To olMail.Attachments.Count
Set DasAttach = olMail.Attachments.Item(x)
tmpC01 = ""
tmpC01 = tmpC01 & "C:\TEMP\"
tmpC01 = tmpC01 & "Rec_" & Format(olMail.ReceivedTime, "YYYY-MM-DD_hhmmss")

tmpC02 = Right("00000" & zeile, 6)
tmpC01 = tmpC01 & "_Zei" & tmpC02 & "_"

tmpC02 = Right("00000" & attachindex, 5)
tmpC01 = tmpC01 & "_ATT_" & tmpC02 & "_Typ" & DasAttach.Type & "_IDX_" & DasAttach.Index & "_"

tmpC01 = tmpC01 & olMail.Attachments(x).Filename
olMail.Attachments.Item(x).SaveAsFile tmpC01
Next x
End If


Das Ergebnis könnte dann SO aussehen:
Rec_2021-01-13_232219_Zei000034__ATT_00021_Typ1_IDX_1_IMG_6662.JPG

IMG_6662.JPG ist der Dateiname des Attachments.

Gruß,
Firmus
Anzeige
AW: Dateinamen von Anhängen aus einer mail lesen
05.07.2024 16:53:57
yummi
Hallo Firmus,
vielen Dank für deine Antwort.
Du hast Recht mit dem hochladen der Datei und ich werde mich zukünftig daran halten und gelobe Besserung.

Aber eine Frage habe ich noch: ich nehme an dein olmail ist mit meinem olItemsCount gleichzusetzen. Welchen Datentyp hast du für DasAttach verwendet?

Vielen Dank für deine Hilfe
yummi
Anzeige
AW: Dateinamen von Anhängen aus einer mail lesen
05.07.2024 17:03:13
schauan
Hallöchen,

der Dateityp ist irrelevant, der kommt aus dem Dateinamen des Anhangs. Yummi hat das in seinem Beitrag extra fett markiert :-)

Verantwortlich dafür ist diese Codezeile:
tmpC01 = tmpC01 & olMail.Attachments(x).Filename
AW: Dateinamen von Anhängen aus einer mail lesen
06.07.2024 09:53:23
Firmus
Hi Yummi,

hier die Definition: Dim DasAttach As Attachment

For x = 1 To olMail.Attachments.Count
Set DasAttach = olMail.Attachments.Item(x)


aus diesen beiden Zeilen kann auf den Variablentyp geschlossen werden.

Allgemein
1. Damit Outlookvariablen gut angesprochen werden können,
ist das Outlook-Objektmodel via EXTRAs - Verweise - Häkchen setzen, ein zubinden.
2. Über den Objektkatalog (F2-Taste) kann man dann sehen welche Klassen bzgl. Attachment(s) existieren.
3. Daraus ergibt sich die Definition As (Klasse) Attachment
Achtung: Es gibt auch noch Attachments, diese Klasse hat aber andere Elemente

Gruß,
Firmus
Anzeige
AW: Dateinamen von Anhängen aus einer mail lesen
05.07.2024 18:01:59
yummi
Ich meinte den Datentyp der benutzten variable nicht der angehängten Datei

Gruß
Yummi
AW: Dateinamen von Anhängen aus einer mail lesen
05.07.2024 19:43:02
schauan
ok. da fehlt etwas vom Anfang, um das korrekt beantworten zu können.
Da nur eins angesprochen wird, dürfte es im Prinzip z.B. Outlook.Attachment sein.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige