PDA

Vollständige Version anzeigen : Email-Attachments in von Outlook auslesen


Schlumpf_der_Erste
22.06.2001, 19:58
Hi Leute,

folgendes Problem: ich will von Access aus den Posteingangsordner von Outlook durchgehen und von jeder Mail die Attachments in ein seperates Verzeichnis kopieren. Geht das überhaupt???

Günni
22.06.2001, 20:01
Hi Schlumpf,

natürlich geht das ... ist nur etwas schwer zu erklären. Deshalb bastle ich Dir mal schnell ne Demo-DB, die das kann. Wenn Du mir noch Deine Email verrätst, kann ich Dir das Ding dann sogar zuschicken :-)

Günni
22.06.2001, 20:43
So, Beispieldatenbank ist fertig ... wen´s interessiert, der findet den Beispielcode unter www.mgcss.de (http://www.mgcss.de) dort Entwicklung-->Codebeispiele-->Beispiel 2

ceki
21.01.2002, 15:37
Hi Günni,

gibts diese Demo-DB noch?
Habs über den Link probiert, nur komm ich nicht hin.
Würde mich nämlich auch interessieren, weil ich schon ziemlich lange einen Weg suche, Attachments aus Mails auszulesen und lokal zu speichern.

Und die Variante mit Hilfe von Access klingt toll.

Danke
Karl

ceki
22.01.2002, 17:09
on top.
vielleicht kann ja auch jemand anderer weiterhelfen.

danke
karl

Alexander Jan Peters
22.01.2002, 17:57
<font face="Tahoma">Hallo Karl,

heute ist wohl großer Outlook-Tag, was? Die Antwort auf Deine Frage wollte ich vor langer Zeit <a href="http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=43809">DAU und wie ich eine Datei speichere...</a> schon mal in einer Demo-DB einbauen, aber, aus den Augen aus dem Sinn.
Hier also wenigstens der Code:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Function</span> fSaveOutlookAttachments(strOutputFld <span class="TOKEN">As</span> <span class="TOKEN">String</span>) <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
<span class="REM">'//Durchsuchen der Outlook-Inbox und speichern der Anlagen aller Mailelemente</span>
<span class="REM">'//Parameter: Pfad des Verzeichnisses in das die Anlagen gespeichert werden sollen</span>
<span class="TOKEN">Dim</span> olookApp <span class="TOKEN">As</span> <span class="TOKEN">New</span> Outlook.Application
<span class="TOKEN">Dim</span> olookSpace <span class="TOKEN">As</span> Outlook.NameSpace
<span class="TOKEN">Dim</span> olookFolder <span class="TOKEN">As</span> Outlook.MAPIFolder
<span class="TOKEN">Dim</span> olookMailItem <span class="TOKEN">As</span> Outlook.MailItem
<span class="TOKEN">Dim</span> strPathFile <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> lngCounter <span class="TOKEN">As</span> <span class="TOKEN">Long</span> <span class="REM">'//Zaehler</span>

lngCounter = 0
<span class="TOKEN">Set</span> olookApp = <span class="TOKEN">New</span> Outlook.Application
<span class="TOKEN">Set</span> olookNameSpace = olookApp.GetNamespace("MAPI" )
<span class="TOKEN">Set</span> olookFolder = olookSpace.GetDefaultFolder(olFolderInbox)

<span class="TOKEN">For</span> <span class="TOKEN">Each</span> olookMailItem <span class="TOKEN">In</span> olookFolder.Items
<span class="TOKEN">With</span> olookMailItem
<span class="REM"> '//Pruefung, ob die Mail eine Anlage hat</span>
<span class="TOKEN">If</span> olookMailItem.Attachments.Count > 0 <span class="TOKEN">Then</span>
<span class="REM"> '//Ja, also im uebergebenen Verzeichnis speichern</span>
strPathFile = strOutputFld & oMailItem.Attachments.Item(1).FileName
olookMailItem.Attachments.Item(1).SaveAsFile (strPathFile)
lngCounter = lngCounter + 1
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
<span class="TOKEN">Next</span> olookMailItem

<span class="TOKEN">Set</span> olookMailItem = <span class="TOKEN">Nothing</span>
<span class="TOKEN">Set</span> olookFolder = <span class="TOKEN">Nothing</span>
<span class="TOKEN">Set</span> olookSpace = <span class="TOKEN">Nothing</span>
<span class="TOKEN">Set</span> olookApp = <span class="TOKEN">Nothing</span>

fSaveOutlookAttachments = lngCounter

<span class="TOKEN">End</span> <span class="TOKEN">Function</span></pre></div>
<font face="Tahoma">

Gruß

A.J. Peters</a>

ceki
27.02.2002, 09:51
Danke für den Code, aber ich krieg ihn einfach nicht zum Laufen.
Hab schon bis zum Umfallen herumgetüfftelt, aber ich bin und bleib ein DAU.

Habt ihr noch ein paar Tips zur verwendung dieses Codes? (wohin kopieren, wie aufrufen, etc...)

Gruß
Karl

cf_m3p
31.07.2002, 13:01
Hier der korrigierte Code:

Function fSaveOutlookAttachments(strOutputFld As String) As Long
'//Durchsuchen der Outlook-Inbox und speichern der Anlagen aller Mailelemente
'//Parameter: Pfad des Verzeichnisses in das die Anlagen gespeichert werden sollen
Dim olookApp As New Outlook.Application
Dim olookSpace As Outlook.NameSpace
Dim olookFolder As Outlook.MAPIFolder
Dim olookMailItem As Outlook.MailItem
Dim strPathFile As String
Dim lngCounter As Long '//Zaehler

lngCounter = 0
Set olookApp = New Outlook.Application
Set olookSpace = olookApp.GetNamespace("MAPI")
Set olookFolder = olookSpace.GetDefaultFolder(olFolderInbox)

For Each olookMailItem In olookFolder.Items
With olookMailItem
'//Pruefung, ob die Mail eine Anlage hat
If olookMailItem.Attachments.Count > 0 Then
'//Ja, also im uebergebenen Verzeichnis speichern
strPathFile = strOutputFld & olookMailItem.Attachments.Item(1).FileName
olookMailItem.Attachments.Item(1).SaveAsFile (strPathFile)
lngCounter = lngCounter + 1
End If
End With
Next olookMailItem

Set olookMailItem = Nothing
Set olookFolder = Nothing
Set olookSpace = Nothing
Set olookApp = Nothing

fSaveOutlookAttachments = lngCounter

End Function

Lg Clemens