atti58
Goto Top

E-Mail-Attachment automatisiert speichern

Folgende Situation: Wir bekommen jeden Tag nach 19:30 Uhr (so lange will natürlich niemand bleiben face-wink ) per E-Mail eine Datei als Anhang zugeschickt, die per Gruppenrichtlinie gesteuert, am nächsten Morgen unseren Usern automatisch angezeigt werden muss - solange der Admin die Datei rechtzeitig in's entsprechende Verzeichnis kopieren konnte, ist alles gut face-sad ...

Jetzt suche ich nach einer Möglichkeit, diesen Vorgang zu automatisieren, kennt jemand ein Tool, mit dem man E-Mailanlagen automatisch speichern kann?

Danke,

Atti.

Content-Key: 6604

Url: https://administrator.de/contentid/6604

Printed on: April 19, 2024 at 22:04 o'clock

Member: linkit
linkit Feb 07, 2005 at 17:55:18 (UTC)
Goto Top
@Atti:


Hallo mein Freund face-smile .... mh... du hast jetzt nicht geschrieben, wie die Datei abgefangen werden soll, bereits im Mailserver oder in Outlook oder einem anderen E-Mail-Programm.


Ich gehe jetzt mal davon aus, daß du Outlook benutzt. Ich hab dir für Outlook zwei Möglichkeiten - eine kostenlose und eine payment.


1. Kostenlos:

Du hast ein Skript hinterlegt in Outlook, das ankommende E-Mails mit Anhang ablegt, wie sowas aussehen könnte findest du hier: http://www.digital-inn.de/showthread.php?t=28483


2. Payment:

Mit dem Tool http://www.rsbr.de/Software/OASniffer/index_deu.htm kannst du E-Mails automatisch abfangen und in einem bestimmten Verzeichnis ablegen. Das sieht man dann auf dieser Seite: http://www.rsbr.de/Software/OASniffer/details/de/auto.htm


Bei beiden Methoden kannst du es ja gleich ins richtige Verzeichnis ablegen lassen, damit die Gruppenrichtlinie es dann ansteuern kann.
Member: Atti58
Atti58 Feb 07, 2005 at 19:15:52 (UTC)
Goto Top
@linkit

... ich fühle mich geehrt face-wink face-smile ... und danke Dir für Deine Antwort, das Tool habe ich mir schon mal angesehen, das macht einen recht guten Eindruck, ich muss nur mal testen, wie das arbeitet und ob Outlook dazu geöffnet sein muss. Mit VB habe ich leider nicht so viel am Hut, na, mal sehen, vielleicht kann mein Chef ja damit was anfangen ... hast Du eine Ahnung, was "bst" mit "... muß der Code HINTER DieseOutlookSitzung stehen ..." meinte?

Danke

Atti
Member: gemini
gemini Feb 07, 2005 at 19:22:56 (UTC)
Goto Top
Wenn du in Outlook mit Alt+F11 den VBA-Editor aufmachst findest du DieseOutlookSitzung im Verzeichnisbaum.

Hier muss der Code rein.
Allerdings wird das nicht funktionieren, wenn Outlook geschlossen ist.

Dann besteht nämlich das Problem mit dem Zugriffsschutz auf die PST.
D.h. wenn ein 3rd-Party-Programm zugreifen will, kommt eine Abfrage ob und wie lange Zugriff gewährt werden soll.
Member: Atti58
Atti58 Feb 07, 2005 at 19:37:54 (UTC)
Goto Top
... ah, danke, hab's gefunden. Wie ich das realisieren könnte, weiß ich noch nicht, Outlook kann schon geöffnet bleiben, wenn ich die Arbeitsstation sperre ... na, morgen schau ich mir das mal an face-wink ...

Gruß

Atti.
Member: Atti58
Atti58 Feb 24, 2005 at 10:45:59 (UTC)
Goto Top
Ich habe jetzt folgenden Code im Outlook:


Option Explicit

Const strFolder = "C:\Temp"
Const strArchFolder = "C:\Temp\Arch"

'
' newmail-Ereignis
' Tritt ein, wenn mindestens eine neue Nachricht im Posteingang eingegangen ist.
'

Private Sub Application_NewMail()
Dim myNameSpace As NameSpace ' ein NameSpace Objekt halt
Dim objPosteingang As MAPIFolder ' der Posteingang im Outlook
Dim myDstFolder As MAPIFolder ' der ZielOrdner im Outlook
Dim objNewMail As MailItem ' ein Objekt (Mail) im Posteingang
Dim i As Integer ' Zähler durch die Anhänge


' Namespace und Folder bestimmen
Set myNameSpace = Application.GetNamespace("MAPI")
Set objPosteingang = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myDstFolder = objPosteingang.Folders("BackOffice")
Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)


' Schleife über alle im Posteingang liegenden Elemente
For Each objNewMail In objPosteingang.Items
With objNewMail ' Mit einem dieser Teile
If (.SenderName = "BackOffice") Then
' Dessen Anhänge - falls vorhanden - abspeichern
For i = 1 To .Attachments.Count
.Attachments.Item(i).SaveAsFile strFolder & "\" & .Attachments.Item(i).FileName
.Attachments.Item(i).SaveAsFile strArchFolder & "\" & "Dateiname_" & Format(Date, "yy_mm_dd") & ".rtf"
'End If
Next i
' Die Mail in den Zielordner verschieben
objNewMail.Move myDstFolder
End If
End With
Next objNewMail
End Sub


Das Programm läuft auch soweit ganz gut, nur, wenn eine standardmäßige Lesebescheinigung im Postfach landet, erscheint:


Hat jemand eine Idee, was der Unterschied zwischen "normalem" Mailobjekt und Lesebestätigung ist?

Danke,

Atti.
Member: gemini
gemini Mar 02, 2005 at 17:54:27 (UTC)
Goto Top
Hallo Atti,
hast du das Attachment-Problem schon gelöst?
Wo tritt der Mismatch denn auf? Was spricht der Debuger?
~~~~~~~~~~~~~~~~~~~~~~
Evtl. könnte das auch was passendes sein.
Hätte den Vorteil schon fertig ausprogrammiert zu sein face-wink
http://www.add-in-world.com/katalog/ol-autosave/
Member: Atti58
Atti58 Mar 02, 2005 at 20:21:50 (UTC)
Goto Top
... nein, leider nicht face-sad ... was soll ich zum Debuger sagen? Viel mehr als die Fehlermeldung habe ich nicht, wenn ich auf "End" klicke, ist alles OK - bis zur nächsten Empfangsbestätigung face-wink ...

Regeln kann ich seit dem Einfügen des Codes übrigens auch nur noch "definieren" - ausgeführt werden sie nicht mehr face-sad ...

Das Tool sehe ich mir morgen mal an face-wink, vielen Dank,

Gruß

Atti.
Member: gemini
gemini Mar 03, 2005 at 19:54:31 (UTC)
Goto Top
Wenn du auf Debug klickst siehst du wo der Fehler entsteht.
Mit F8 kannst du im VBA-Editor die Routinen im Einzelschritt durchgehen.
Member: Atti58
Atti58 Mar 03, 2005 at 20:04:36 (UTC)
Goto Top
Hi Gemini,

klar hab' ich mir den Debugger mal angesehen face-wink - der Zeiger steht in einer dieser beiden Zeilen:

For Each objNewMail In objPosteingang.Items
With objNewMail ' Mit einem dieser Teile


(wenn ich nicht irre, hab das gerade nicht da), habe das Tool heute auf dem Rechner von meinem Chef getestet - mit dem gleichen Ergebnis. Merkwürdigerweise hat sich am "Outlookverhalten" ein bisschen was geändert - manche Mails werden inwischen wieder von den Regeln verschoben und dann kommt auch keine Fehlermeldung bei den Bestätigungen.

Morgen werd' ich das Problem wohl erst einmal nicht mehr lösen und dann bin ich bis Ostern im URLAUB ...

Gruß

Atti
Member: rike1979
rike1979 Apr 08, 2005 at 05:26:27 (UTC)
Goto Top
Hallo Paps,

ich weiß ja nicht, ob Dein Problem noch besteht, aber ich hab da was bei Heise gefunden, was Dir weiterhelfen könnte.

Schaum mal unter http://www.heise.de/kiosk/archiv/ct/01/20/008/@00000@/art.htm bei "Outlook schweigt" nach.


Liebe Grüße

Rike

PS.: In dem Artikel "Outlook schweigt" gibt es einen Link, der ist aber nicht mehr aktuell. Hab mal gesucht und den gefunden http://www.heise.de/ct/01/22/222/default.shtml.

Viel Glück
Member: Atti58
Atti58 Apr 08, 2005 at 09:16:57 (UTC)
Goto Top
Hi Rike,

danke für den Link,wie es aussieht, klappt das mit der Programmänderung - zumindest mit "normalen" Mails (mir schickt gerade niemend 'ne Lesebestätigung face-wink face-smile ) ...

Folgende Änderung habe ich vorgenommen:

In "Dim objNewMail As MailItem"

habe ich "MailItem" durch "Oject" ersetzt, also

neu: "Dim objNewMail As Object".

Ursache ist wohl folgende (Zitatface-smile "Lesebestätigungen werden von Outlook makrotechnisch als `ReportItem´-Objekte behandelt, während Nachrichten `MailItem´-Objekte darstellen"

Gruß

Atti
Member: Atti58
Atti58 Apr 08, 2005 at 13:28:29 (UTC)
Goto Top
... man liest meine Mails wieder - und leider habe ich auch den "Debug"- Aufruf auf dem Monitor face-sad ...

Gruß

Atti
Member: rike1979
rike1979 Apr 11, 2005 at 06:50:12 (UTC)
Goto Top
Hallo Papa,

eine Möglichkeit wäre meines Wissens die nette Zeile "On Error Resume Next" nach der Deklaration der Variablen einzufügen, also sollte der Code dann so aussehen.

Option Explicit

Const strFolder = "C:\Temp"
Const strArchFolder = "C:\Temp\Arch"

'
' newmail-Ereignis
' Tritt ein, wenn mindestens eine neue Nachricht im Posteingang eingegangen ist.
'

Private Sub Application_NewMail()
Dim myNameSpace As NameSpace ' ein NameSpace Objekt halt
Dim objPosteingang As MAPIFolder ' der Posteingang im Outlook
Dim myDstFolder As MAPIFolder ' der ZielOrdner im Outlook
Dim objNewMail As MailItem ' ein Objekt (Mail) im Posteingang
Dim i As Integer ' Zähler durch die Anhänge


' Namespace und Folder bestimmen
Set myNameSpace = Application.GetNamespace("MAPI")
Set objPosteingang = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myDstFolder = objPosteingang.Folders("BackOffice")
Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

On Error Resume Next

' Schleife über alle im Posteingang liegenden Elemente
For Each objNewMail In objPosteingang.Items
With objNewMail ' Mit einem dieser Teile
If (.SenderName = "BackOffice") Then
' Dessen Anhänge - falls vorhanden - abspeichern
For i = 1 To .Attachments.Count
.Attachments.Item(i).SaveAsFile strFolder & "\" & .Attachments.Item(i).FileName
.Attachments.Item(i).SaveAsFile strArchFolder & "\" & "Dateiname_" & Format(Date, "yy_mm_dd") & ".rtf"
'End If
Next i
' Die Mail in den Zielordner verschieben
objNewMail.Move myDstFolder
End If
End With
Next objNewMail
End Sub

Da ich heute einen Tag Urlaub habe, werde ich mal schaun, ob ich das zum Laufen bekomme. Aber vielleicht geht es ja auch schon so, also versuch es mal und sag Bescheid.

Liebe Grüße

Rike

PS.: Hab gestern mit Dietmar gescrabbelt *grins* und natürlich verloren face-sad
Member: Atti58
Atti58 Apr 11, 2005 at 07:20:34 (UTC)
Goto Top
Hi Rike,

danke, ich werde es mal probieren mit dem "Resume Next" ... gebe Dir dann 'ne Info.

Gruß

Vati

PS: Mit uns scrabbelt er nicht mehr, seit er vor zwei Wochen vor "Wut" die Verbindung gekappt hat face-wink face-smile ... er hat "ET" gelegt und wollte "ON" partut nicht zulassen face-smile face-smile ...
Member: Atti58
Atti58 Apr 11, 2005 at 07:40:41 (UTC)
Goto Top
... ich habe gerade festgestellt (nachdem mein Chef mir über zwanzig Lesebestätigungen geschickt hat), dass die Meldung weg ist - auch ohne "On Error Resume Next ... Man musste wohl die Maschine einfach nur mal Neu booten face-sad ...

Gruß
Member: rike1979
rike1979 Apr 11, 2005 at 08:01:25 (UTC)
Goto Top
Also hat das mit dem Ersetzen von MailItem durch Object ausgereicht?

Ich hab es bei mir noch gar nicht zum Laufen bekommen, naja wird schon noch werden.

Von Eurem Scrabble - Ärger wurde mir schon berichtet, naja er hat bei mir gestern auch nicht "tu" akzepiert, da hab ich nur geschrieben "Tu doch nicht so!!!" - aber was solls face-smile


Liebe Grüße Rike
Member: Atti58
Atti58 Apr 11, 2005 at 09:27:14 (UTC)
Goto Top
... ja, seit "Object" und Reboot läuft das Tool ohne Fehlermldung, man muss nur dafür sorgen, dass Outlook offen ist ,-) ...

Ich habe gestern mit Dietmar telefoniert - das Thema "Scrabble" habe ich aber tunlichst vermieden face-smile ...

liebe Grüße,

Vati