Domino 9 und frühere Versionen > ND9: Administration & Userprobleme

E-Mailversand aus Excel geht mit LN 9 nicht mehr

<< < (7/17) > >>

Peter Klett:
Am besten, Du legst das ganze Script zur Seite und fängst noch einmal von vorne an. Dabei begrenzt Du Dich auf die elementarsten Funktionen. Erst wenn die funktionieren, baust Du weiter. Dein Script ist so lang, dass Du da sicherlich den Überblick verloren hast. Vergiss dabei zuerst die ganzen Daten, die in Excel hinterlegt sind, die berücksichtigst Du erst, wenn Dein Kernproblem, der Versand der Mail, gelöst ist.

Folgende Schritte könnte ich mir dabei vorstellen, wobei jeder weitere Schritt natürlich auf den erfolgreich gelösten vorigen  Schritt aufbaut

Schritt 1

Erstellen einer Mail und Versenden an einen im Script hart definierten Empfänger

Schritt 2

Versenden der Mail über das Frontend, damit die Signatur eingebunden wird

Schritt 3

Ändern des Inhaltes der Mail

Schritt 4

Anhängen von Dateien



Bis zu diesem Schritt ist das Script noch sehr übersichtlich, also auch hier im Forum recht leicht zu lesen. Im übrigen solltest Du die Hinweise, die Du hier bekommst, auch berücksichtigen, denn es fördert nicht gerade die Hilfsbereitschaft, wenn ein abgegebener Tipp auch in dem danach geposteten Script nicht umgesetzt wurde, dann entsteht hier nämlich der Eindruck, als würde es Dich nicht interessieren.

Tode:
+1 für Peters ausführungen. Ausserdem: Bitte benutze die Code- Tags für das posten von Code... Das macht den Code wesentlich besser lesbar.

jBubbleBoy:
Verursacht "Call doc.Send(True)" den Notes-Client-Absturz? Wenn Ja, dann fallen mir zwei Möglichkeiten ein, eine Notes-Mail im Frontend zu versenden ohne im Excel ein uiDoc.send aufzurufen. Davon mal abgesehen kann man auch im Backend die Signatur hinzufügen ;) Was nach wie vor meine Lösung wäre, aber OK ...

Von den 2 Möglichkeiten gibt es einen der recht einfach umzusetzen ist:

--- Code: ---AppActivate "IBM Notes"
SendKeys "%1"

--- Ende Code ---
Ggf. musst du die Parameter noch anpassen oder fügst einen weiteren AppActivate-Aufruf zum Zurückspringen hinzu.

Und taste dich heran, wie es dir Peter empfohlen hat, das ist ein guter Tipp.

Benni1988:
entschuldigt bitte, wenn das so rüber kommt, als ob ich eure Ratschläge nicht verwende. Wie gesagt ich bin Anfänger, aber versuche immer alles umzusetzen.

Ich bin ja froh, dass ich Hilfe bekomme.

Ich habe jetzt auch versucht wieder von vorne anzufangen und das ohne Uidocument.


--- Code: ---Option Explicit
 
Sub lotus()

 Dim sText As String, sEmpfang As String, sBetrifft As String
 Dim session As Object, db As Object, doc As Object, rtobject As Object
 Dim rtitem As Object, sKopie As String
 Dim AttachMe As Object, DerAnhang As Object
 Dim user As String, server As String
 Dim mailfile As String, sBlindKopie As String
 Dim vAn As Variant, vCopy As Variant
 Dim vBlind As Variant, sAnhang As String
 
 
 On Error GoTo Fehler
 

 sEmpfang = "test@test.de" ' bei mehreren Email Adressen durch " ; " getrennen
 sBetrifft = "Test"                 ' die Betreffzeile
 sText = "funktioniert es? "                            ' Testtext
 sKopie = " "                       ' bei mehreren Email Adressen durch " ; " getrennen
 sBlindKopie = " "                  ' bei mehreren Email Adressen durch " ; " getrennen
 vAn = Split(sEmpfang, " ; ")       ' Empfänger Array
 
 sAnhang = ""                       ' richtiger Pfad Muss natürlich richtig gesetzt werden
 
 If Len(sKopie) > 0 Then vCopy = Split(sKopie, " ; ") 'cc Array
 If Len(sBlindKopie) > 0 Then vBlind = Split(sBlindKopie, " ; ")  'bcc Array
 
 
 Set session = CreateObject("notes.notessession") ' Notes muss gestartet sein
 user = session.UserName
 server = session.GetEnvironmentString("MailServer", True)
 mailfile = session.GetEnvironmentString("MailFile", True)
 
 Set db = session.getdatabase(server, mailfile)
 Set doc = db.createdocument()
 
 doc.Form = "Memo"
 doc.SendTo = vAn                                       ' an array
 If Len(sKopie) > 0 Then doc.copyto = vCopy             'cc Array
 If Len(sBlindKopie) > 0 Then doc.blindcopyto = vBlind  'bcc Array
 
 doc.Subject = sBetrifft ' die Betreffzeile
 Set rtitem = doc.CREATERICHTEXTITEM("body")
 Call rtitem.APPENDTEXT(sText)
 doc.SAVEMESSAGEONSEND = True
 doc.PostedDate = Now
 
 ' *******************************************
 If sAnhang <> "" Then
  Set AttachMe = doc.CREATERICHTEXTITEM("Attachment")
  Set DerAnhang = AttachMe.EMBEDOBJECT(1454, "", sAnhang, "Attachment")
 End If
 
 
 '*******************************
 
 Call doc.Send(False)
 
Aufraeumen:
 On Error Resume Next
 Set rtitem = Nothing
 Set AttachMe = Nothing
 Set DerAnhang = Nothing
 Set db = Nothing
 Set doc = Nothing
 Set session = Nothing
 Exit Sub
Fehler:
 Resume Aufraeumen
End Sub


--- Ende Code ---

so bekomme ich es halb hin, das heißt e-Mail geht, Anhang kann mit versendet werden, nur keine Signatur. Also habe ich folgendes probiert


--- Code: ---Option Explicit
 
Sub lotus()

 Dim sText As String, sEmpfang As String, sBetrifft As String
 Dim session As Object, db As Object, doc As Object, rtobject As Object
 Dim rtitem As Object, sKopie As String
 Dim AttachMe As Object, DerAnhang As Object
 Dim user As String, server As String
 Dim mailfile As String, sBlindKopie As String
 Dim vAn As Variant, vCopy As Variant
 Dim signature As Object
 Dim vBlind As Variant, sAnhang As String
 
 
 On Error GoTo Fehler
 

 sEmpfang = "test1@test.de" ' Einträge durch " ; " getrennt
 sBetrifft = "Test"                 ' die Betreffzeile
 sText = "funktioniert es? "                            ' Testtext
 sKopie = " "                       ' Einträge durch " ; " getrennt
 sBlindKopie = " "                  ' Einträge durch " ; " getrennt
 vAn = Split(sEmpfang, " ; ")       ' Empfänger Array
 
 sAnhang = ""                       ' richtiger Pfad Muss natürlich richtig gesetzt werden
 
 If Len(sKopie) > 0 Then vCopy = Split(sKopie, " ; ") 'cc Array
 If Len(sBlindKopie) > 0 Then vBlind = Split(sBlindKopie, " ; ")  'bcc Array
 
 
 Set session = CreateObject("notes.notessession") ' Notes muss gestartet sein
 user = session.UserName
 server = session.GetEnvironmentString("MailServer", True)
 mailfile = session.GetEnvironmentString("MailFile", True)
 
 Set db = session.getdatabase(server, mailfile)
 Set doc = db.createdocument()
 
 doc.Form = "Memo"
 doc.SendTo = vAn                                       ' an array
 If Len(sKopie) > 0 Then doc.copyto = vCopy             'cc Array
 If Len(sBlindKopie) > 0 Then doc.blindcopyto = vBlind  'bcc Array
 
 doc.Subject = sBetrifft ' die Betreffzeile
 signature = db.GetProfileDocument("CalendarProfile").GetItemValue("Signature")(0)
 Set rtitem = doc.CREATERICHTEXTITEM("body")
 Call rtitem.APPENDTEXT(sText & signature)
 doc.SAVEMESSAGEONSEND = True
 doc.PostedDate = Now
 
 ' *******************************************
 If sAnhang <> "" Then
  Set AttachMe = doc.CREATERICHTEXTITEM("Attachment")
  Set DerAnhang = AttachMe.EMBEDOBJECT(1454, "", sAnhang, "Attachment")
 End If
 
 
 '*******************************
 
 Call doc.Send(False)
 
Aufraeumen:
 On Error GoTo Fehler
 Set rtitem = Nothing
 Set AttachMe = Nothing
 Set DerAnhang = Nothing
 Set db = Nothing
 Set doc = Nothing
 Set session = Nothing
 Exit Sub
Fehler:
 Resume Aufraeumen
End Sub

--- Ende Code ---

hier passiert allerdings überhaupt nichts...sobald ich


--- Code: ---signature = db.GetProfileDocument("CalendarProfile").GetItemValue("Signature")(0)
--- Ende Code ---

einfüge.

Wieso?

Und verliert bitte nicht die Geduld, ich gebe mir Mühe :)

@jBubbleBoy : ich nehme erstmal Peters Vorschlag an, und fange neu an

schroederk:
Bitte gewöhne Dir gleich von Anfang an an, eine vernünftige Fehlerbehandlung einzubauen.
Mit einem OnError Resume kommst Du garantiert nicht weiter. Wenn ein Fehler auftritt, soll dieser doch auch angezeigt werden, oder nicht?

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln