Mittels VBA Zugriff auf MailAnhang Lotus

Hallo,

ich bekomme auf Lotus Mails mit Excel-Dateien als Anhang.
Nun muss ich diese Mails öffnen, die Excel Datei speichern und habe (bereits) ein Markro, dass mir alle Dateinamen aus diesem Ordner in ein Listenfeld schreibt.
Nun will ich vermeiden, dass ich die Mail jedes Mal öffnen muss und den Anhang im Ordner xy speichern muss. Das soll automatisiert bzw. auf Buttonklick in Excel funktionieren.
Geht das?
Der Absender der Mail ist immer der gleiche, Betreff auch.

Vielen Dank

Hallo Richman,

ich bekomme auf Lotus Mails mit Excel-Dateien als Anhang.
Nun muss ich diese Mails öffnen, die Excel Datei speichern und
habe (bereits) ein Markro, dass mir alle Dateinamen aus diesem
Ordner in ein Listenfeld schreibt.

das Makro liest nur einen Ordner aus und schreibt die dateinamen in ein Listenfeld, sonst nix? Macht also in Lotus nichts?

Nun will ich vermeiden, dass ich die Mail jedes Mal öffnen
muss und den Anhang im Ordner xy speichern muss. Das soll
automatisiert bzw. auf Buttonklick in Excel funktionieren.
Geht das?

Das wird schon gehen *annehm*.
So einfach ist das mit dem Button nicht von der Ablauflogik her gesehen. Was genau soll denn dann geschehen?
Sollen nur die Mails ausgelesen werden die du noch nicht gelesen hast, oder alle, oder oder…

Bei Outlook gings leichter, da gibts Vba und man kann Ereigniscode programmieren, der bei jeder neu erhaltenden Mail automatisch losläuft und z.b. Absender prüft und ggfs. den Anhang in einen Ordner speichert.

Ich habe kein Lotus und weiß nicht was es da so gibt. Vielleicht kann man da was über Nachrichtenregeln machen.

Im Internet stieß ich auf viel Code um Mails aus Excel mit Vba via Lotus Notes zu versenden.
Quasi den umgekehrten Weg findet man viel seltener.

Schau mal hier:

http://www.dbwiki.de/wiki.php?title=VBA_Tipp:_E-Mail…

Ich wüßte jetzt nicht was man da als Server,Mailfile eintragen muß:
Set LNdb = objNotes.GETDATABASE(, )

Tipp, google mal nach den beiden Begriffen:
Object(„Notes.NotesSession“) GETDATABASE

Im Anhang ist nochmal Code der den Anhang einer Lotus Notes Mail in einen Ordner schreibt.
Dies geschieht in der Zeile:
sUdf.ExtractFile sUdp & „“ & sUdfNam
Vorher wird mit If geprüft obs die Datei schon gibt, diese wird dann gelöscht!!
Und auch bei dem Code weiß ich nicht was mit Doc-UnID und bekanntem Feld gemeint ist.

Wie gesagt, habe kein Lotus zum Testen, kann dir also kaum bis gar nicht helfen dabei.

Gruß
Reinhard

Code ist von einem PeterB:

funktioniert nur bein EINEM Anhang, bekannter Doc-UnID und bekanntem Feld des Anhangs:

Function P\_350f\_ExtrAttmFromSpecItem(sNotSrv As String, \_
 sNsfFnm As String, \_
 sNsfDocUid As String, \_
 sNsfItmNam As String, \_
 sUdp As String) As String '070102
'Löst/kopiert angehängte Datei aus benanntem Feld eines Notes-Dokumentes in angegebenes Verzeichnis
'und liefert dessen Dateinamen zurück. Löscht ggf. Datei gleichen Namens.
'Bei Fehler wird "" zurückgegeben.
Dim sNotSes As Object 'NotesSession
Dim sNsf As Object 'NotesFile
Dim sNsfDoc As Object 'NotesDokument
Dim sRTI As Object 'RichTextFeld
Dim sUdf As Object 'UserDataFile
Dim sUdfNam As String 'UserDataFileName
' sNotSrv Notes Server
' sNsfFnm NotesFileFullName
' sNsfDocUid NotesDokumentUniversalId
' sNsfItmNam NotesDokumentFeldname
' sUdp UserDataPath
 P\_350f\_ExtrAttmFromSpecItem = ""
 Set sNotSes = CreateObject("Notes.NotesSession")
 Set sNsf = sNotSes.GetDatabase(sNotSrv, sNsfFnm)
 Set sNsfDoc = sNsf.GetDocumentByUNID(sNsfDocUid)
 sUdfNam = sNsfDoc.GetItemValue("$FILE")(0)
 Set sRTI = sNsfDoc.GetFirstItem(sNsfItmNam)
 Set sUdf = sRTI.GetEmbeddedObject(sUdfNam)
 If Dir(sUdp & "\" & sUdfNam) "" Then Kill sUdp & "\" & sUdfNam
 sUdf.ExtractFile sUdp & "\" & sUdfNam
 If Err = 0 Then P\_350f\_ExtrAttmFromSpecItem = sUdfNam
 On Error GoTo 0
 Set sUdf = Nothing
 Set sRTI = Nothing
 Set sNsfDoc = Nothing
 Set sNsf = Nothing
 Set sNotSes = Nothing
End Function

Gruß
Reinhard

Der Absender der Mail ist immer der gleiche, Betreff auch.

Vielen Dank

Hallo Richman,

ich bekomme auf Lotus Mails mit Excel-Dateien als Anhang.
Nun muss ich diese Mails öffnen, die Excel Datei speichern und
habe (bereits) ein Markro, dass mir alle Dateinamen aus diesem
Ordner in ein Listenfeld schreibt.

das Makro liest nur einen Ordner aus und schreibt die
dateinamen in ein Listenfeld, sonst nix? Macht also in Lotus
nichts?

Richtig. Bin allerdings angesichts meiner VBA Kenntnisse darauf schon ganz stolz *schäm

Nun will ich vermeiden, dass ich die Mail jedes Mal öffnen
muss und den Anhang im Ordner xy speichern muss. Das soll
automatisiert bzw. auf Buttonklick in Excel funktionieren.
Geht das?

Das wird schon gehen *annehm*.
So einfach ist das mit dem Button nicht von der Ablauflogik
her gesehen. Was genau soll denn dann geschehen?
Sollen nur die Mails ausgelesen werden die du noch nicht
gelesen hast, oder alle, oder oder…

Optimal wäre neu ankommende Mails eines Absenders zu öffnen und den Anhang zu speichern. Muss aber nicht an ein Ereignis gekoppelt sein. Man könnte auch sagen alle ungelesenen des Absenders XY oder einfach nur alle Mails des Absenders XY

Bei Outlook gings leichter, da gibts Vba und man kann
Ereigniscode programmieren, der bei jeder neu erhaltenden Mail
automatisch losläuft und z.b. Absender prüft und ggfs. den
Anhang in einen Ordner speichert.

Ich habe kein Lotus und weiß nicht was es da so gibt.
Vielleicht kann man da was über Nachrichtenregeln machen.

Im Internet stieß ich auf viel Code um Mails aus Excel mit Vba
via Lotus Notes zu versenden.
Quasi den umgekehrten Weg findet man viel seltener.

Ja das habe ich auch festgestellt…leider :frowning:

Schau mal hier:

Schaue ich mir alles morgen an und werde Bericht erstatten.
Vielen Dank für die Arbeit und die Hilfe!

http://www.dbwiki.de/wiki.php?title=VBA_Tipp:_E-Mail…

Ich wüßte jetzt nicht was man da als Server,Mailfile eintragen
muß:
Set LNdb = objNotes.GETDATABASE(, )

Tipp, google mal nach den beiden Begriffen:
Object(„Notes.NotesSession“) GETDATABASE

Im Anhang ist nochmal Code der den Anhang einer Lotus Notes
Mail in einen Ordner schreibt.
Dies geschieht in der Zeile:
sUdf.ExtractFile sUdp & „“ & sUdfNam
Vorher wird mit If geprüft obs die Datei schon gibt, diese
wird dann gelöscht!!
Und auch bei dem Code weiß ich nicht was mit Doc-UnID und
bekanntem Feld gemeint ist.

Wie gesagt, habe kein Lotus zum Testen, kann dir also kaum bis
gar nicht helfen dabei.

Gruß
Reinhard

Code ist von einem PeterB:

funktioniert nur bein EINEM Anhang, bekannter Doc-UnID
und bekanntem Feld des Anhangs:

Function P_350f_ExtrAttmFromSpecItem(sNotSrv As String, _
sNsfFnm As String, _
sNsfDocUid As String, _
sNsfItmNam As String, _
sUdp As String) As String
'070102
'Löst/kopiert angehängte Datei aus benanntem Feld eines
Notes-Dokumentes in angegebenes Verzeichnis
'und liefert dessen Dateinamen zurück. Löscht ggf. Datei
gleichen Namens.
'Bei Fehler wird „“ zurückgegeben.
Dim sNotSes As Object 'NotesSession
Dim sNsf As Object 'NotesFile
Dim sNsfDoc As Object 'NotesDokument
Dim sRTI As Object 'RichTextFeld
Dim sUdf As Object 'UserDataFile
Dim sUdfNam As String 'UserDataFileName
’ sNotSrv Notes Server
’ sNsfFnm NotesFileFullName
’ sNsfDocUid NotesDokumentUniversalId
’ sNsfItmNam NotesDokumentFeldname
’ sUdp UserDataPath
P_350f_ExtrAttmFromSpecItem = „“
Set sNotSes = CreateObject(„Notes.NotesSession“)
Set sNsf = sNotSes.GetDatabase(sNotSrv, sNsfFnm)
Set sNsfDoc = sNsf.GetDocumentByUNID(sNsfDocUid)
sUdfNam = sNsfDoc.GetItemValue("$FILE")(0)
Set sRTI = sNsfDoc.GetFirstItem(sNsfItmNam)
Set sUdf = sRTI.GetEmbeddedObject(sUdfNam)
If Dir(sUdp & „“ & sUdfNam) „“ Then Kill sUdp & „“ &
sUdfNam
sUdf.ExtractFile sUdp & „“ & sUdfNam
If Err = 0 Then P_350f_ExtrAttmFromSpecItem = sUdfNam
On Error GoTo 0
Set sUdf = Nothing
Set sRTI = Nothing
Set sNsfDoc = Nothing
Set sNsf = Nothing
Set sNotSes = Nothing
End Function

Gruß
Reinhard

Der Absender der Mail ist immer der gleiche, Betreff auch.

Vielen Dank

Okay…das ist mir deutlich zu hoch :smile:
Aber danke für die Hilfe

das Makro liest nur einen Ordner aus und schreibt die
dateinamen in ein Listenfeld, sonst nix? Macht also in Lotus
nichts?

Richtig. Bin allerdings angesichts meiner VBA Kenntnisse
darauf schon ganz stolz *schäm

Hallo Richman,

kwark, wieso schämst du dich? Sei doch einfach stolz darauf.

Und ich wollte ja nur wissen ob in deinem Code was enthalten ist was uns bei Lotus weiterhelfen könnte.

Und scheinbar hat auch Rainer kein Lotus sonst hätte er schon sicher versucht dir zu helfen.
Rainer ist der Mod.
Du könntest ihn anmailen (in der Brettbeschreibung auf das Briefsymbol neben seinem Namen klicken) und ihn bitten dich ins Lotus-Brett zu beamen.

Vielleicht können die was mit den Codes von mir was anfangen oder haben bessere Ideen.

Gruß
Reinhard