So funktioniert JustAnswer:
  • Fragen Sie einen Experten
    Tausende Experten in über 200 Kategorien.
  • Erhalten Sie eine professionelle Antwort
    Per E-Mail oder sofortiger Benachrichtigung, während Sie auf unserer Website warten. Stellen Sie ggf. weitere Anschlussfragen.
  • 100%ige Zufriedenheit garantiert
    Bewerten Sie die erhaltene Antwort.
Stellen Sie Ihre Frage an IT-Fachinformat...
IT-Fachinformatiker
IT-Fachinformatiker, Systemadministrator
Kategorie: Programmierung
Zufriedene Kunden: 6974
Erfahrung:  Software Entwicklung, Projekt Erfahrung, Windows-Netzwerke, Linux-Netzwerke, Windows/Linux-Server
32504664
Geben Sie Ihre Frage in der Kategorie Programmierung hier ein
IT-Fachinformatiker ist jetzt online.

Wie kann ich auf den Anhang der markierten eMail zugreifen

Kundenfrage

Wie kann ich auf den Anhang der markierten eMail zugreifen um sie zu speichern?

Am liebsten würde ich zur Lösung dieses Problems VB6 und das Outlook View Control in einer Windows Applikation einsetzen.

Ich verwende Outlook 2003

Sub oTest()

Dim objOutlook As Application
Dim objNs As NameSpace
Dim objMailordner As MAPIFolder
Dim objEmail As MailItem
Dim objSelect As Outlook.Selection
Dim oItem As Object
Dim i As Integer
Dim j As Integer
Dim sPath As String

Set objOutlook = New Application
Set objNs = objOutlook.GetNamespace("MAPI")
Set objMailordner = objNs.GetDefaultFolder(olFolderInbox)

Set objSelect = objOutlook.ActiveExplorer.Selection '(1)
Set objItem = objSelect.item(1)

Const olTXT = 0

sPath = "c:\test"
'********************************************************************************************
'save all attachements to C:\test
i = 1
j = objMailordner.Items.Count
Do While j > 0

Set objMail = objMailordner.Items.item(j)

' Auf Anhang prüfen und evtl. speichern
With objMail.Attachments
i = .Count
Do While (i > 0)
Set oAnhang = .item(i)

' Anhang unter entsprechendem Namen speichern.
If Right(oAnhang, 3) = "xml" Then
oAnhang.SaveAsFile sPath & "\" & oAnhang.DisplayName
End If
i = i - 1

Loop
End With
' Nachricht speichern
objMail.SaveAs sPath & CStr(i) & "_" & _
objMail.Subject & ".txt", olTXT
j = j - 1
Loop

'all attachements saved

'**********************************************************************************************
Here 's the question - How can I store the attachements of this eMail on the harddisk?

'**********************************************************************************************
'**********************************************************************************************
'save the attachements of the selected eMail
If objSelect.Count > 0 Then
For Each objItem In objSelect

MsgBox objItem.Subject 'Subject of the selected eMail
'How can I store the attachements of this eMail on the harddisk?

Next
End If
Gepostet: vor 7 Jahren.
Kategorie: Programmierung
Experte:  IT-Fachinformatiker hat geantwortet vor 7 Jahren.
Hallo,

unter welcher Windows Version arbeiten Sie denn genau? Das grundsätzliche Problem ist, das Sie gerade auf markierte Mails im Zweifel nicht zugreifen können das heisst nicht das es nicht irgendwie gehen würde aber ich denke mit dem veralteten VB 6 kommen Sie hier nur schwer ans Ziel. Sie sollten eher eine Lösung in Richtung Outlook 2003 VBA finden. Ein Ansatz dazu findet sich hier:

http://www.benutzer.de/Outlook_2003_-_Anh%C3%A4nge_neuer_Mails_per_VBA_automatisch_speichern.html

Ich denke dieser Ansatz könnte Ihnen weiterhelfen und hier noch etwas, wie Sie auf markierte Mails zu greifen können:

http://www.wer-weiss-was.de/theme161/article4543883.html

Der Einsatz von VB6 ist weder zu empfehlen noch ist es sinnvoll, da VB6 völlig veraltet ist insofern sollten Sie es in VBA oder in VB.NET lösen nicht in VB6. Schauen Sie sich die Lösungen einmal an falls Sie es dennoch in VB6 lösen wollen, müssen Sie Outlook als Objekt in VB6 deklarieren dabei ist es wichtig das Sie unter Extras > Verweise den Haken bei Outlook/Office Object Library gesetzt haben.

Gruss Günter