Domino 9 und frühere Versionen > ND6: Entwicklung
Agent: Automatisches Verschicken von Mails mit Anhang
margli:
--- Zitat von: cubetoon am 17.03.05 - 21:48:25 ---
--- Code: ---Sub Click(Source As Button)
Set fso = Createobject ("scripting.filesystemobject")
--- Ende Code ---
--- Ende Zitat ---
Was ist bei Dir fso?
cubetoon:
ein ganz normaler Variablenname. Kannst Du auch MEINFILESYSTEMOBJECT nennen, dann allerdings überall im Quellcode.
in dem Falle wird fso das Objekt Scripting.Filesystemobject zugewiesen
ein Guru verbessere mich, wenn er es besser ausdrücken kann
@margli schau Dir aber tatsächlich zuvor mal die von koehlerbv genannte Lotus-Script Funktion "Dir" an. damit kommst Du genau so weit und musst keine externen Objekte angreifen.
margli:
Guten Morgen,
bin schon ein Stück voran gekommen, dank der DIR Funktion. Leider kann er die Dateien nicht Anhängen, da er die Dateien selber nicht findet. Liegt wohl daran, dass ich ihm kein Pfad zugewiesen haben, wo er suchen soll? Wenn ich den Pfad fest eingebe also " Set object = rtitem.EmbedObject
( EMBED_ATTACHMENT, "", "c:\test.txt"), dann klappt es. Wie kann ich den Pfad festlegen? Wobei ja gegeben sein muß, dass der Pfad sich ja immer ändert, da er ja die Ordner ändert.
--- Code: ---Sub Test
Dim session As New NotesSession
Dim db As NotesDatabase
Dim rtitem As NotesRichTextItem
Dim object As NotesEmbeddedObject
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set doc = New NotesDocument( db )
Eingabe = Inputbox$("Bitte Betreff eingeben (z.B. RPI 03/05)","Eingabe des Betreffs RPI-Mail")
If Eingabe = "" Then
Msgbox "Achtung!" & Chr(13) & "Sie haben nichts eingegeben."
Exit Sub
End If
fileNum% = Freefile()
Open "c:\dir.txt" For Output As fileNum%
pathName$ = "c:\test\*.*"
fileName$ = Dir$(pathName$, 0)
Do While fileName$ <> ""
Print fileName$
fileName$ = Dir$()
Print #fileNum%, fileName$
Set rtItem = New NotesRichTextItem(doc,"Body")
Set object = rtitem.EmbedObject _
( EMBED_ATTACHMENT, "", (fileName$))
doc.Form = "Memo"
doc.Subject = Eingabe
doc.SendTo = "1@2.de"
Loop
Close fileNum%
Call doc.Send(False)
End Sub
--- Ende Code ---
Im Debugger zeigt er mir komischerweise unter Globals an, dass er im Verzeichnis c:\test ist, sagt aber trotzdem "test.bmp not found"
cubetoon:
Hallo margli,
zwei Dinge fallen mir auf.
Zum einen verlangt ( EMBED_ATTACHMENT, "", (fileName$)) den gesamten Pfadname und nicht nur den Dateiname. Nutze also hier ( EMBED_ATTACHMENT, "", (pathName$ + fileName$))
Und dann solltest Du den Befehl fileName$ = Dir$() erst ans Ende (vor den Loop) stellen. Schließlich ist die Variable zu dem Zeitpunkt bereits mit dem Namen der ersten Datei gefüllt und soll nicht schon die zweite erhalten ... das macht sonst nämlich Probleme bei dem Do-Statement.
[EDIT ein] ach ja und noch eins. definiere pathName$ = "c:\test\" also ohne "*.*"[/EDIT off]
Viele Grüße,
cubetoon
margli:
Cool. Vielen Dank @cubetoon. Du hast mir echt weitergeholfen.
Kann ich jetzt auch gleich schon, wenn ich die Dateien anhänge, einen HotSpot oder sonstiges hinterlegen á la
@Command([Execute];"c:\\pfad\\programm";"c:\pfad\\DATEN\" + (filename$))
Ist jetzt zwar Formelsprache, aber die Datei soll beim Anklicken halt gleich mit dem entsprechenden Programm gestartet werden und in einem entsprechenden Ordner abgelegt werden, damit die User auch nichts falsch machen können. :)
Mir würde jetzt nur ein 2. Agent einfallen, der die Dateien dann löst, bzw. wie hier schon beschrieben. Schöner wär es aber, wenn das gleich alles in einem "Wasch" erledigt werden könnte.
Desweiteren Frage ich mich, warum er die Anhänge so komisch verteilt und nicht so gleichmäßig. :(
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln