Domino 9 und frühere Versionen > ND9: Administration & Userprobleme
E-Mailversand aus Excel geht mit LN 9 nicht mehr
Benni1988:
Hallo zusammen,
sorry, dass ich mich erst jetzt wieder melde, aber ich war krank und hatte somit keinen Zugriff auf LN.
Ich habe jetzt eure Tipps PROBIERT anzuwenden, vielen Dank dafür! (Hoffe, habe es richtig gemacht)
Ich bekomme die Mails zumindest wieder gesendet. :)
Allerdings wollte ich euch fragen, ob das so in Ordnung ist, oder ob das immer noch unsauber ist. Möchte mich nämlich gerne verbessern.
Option Explicit
Sub CommandButton1_Click()
If MsgBox("Sollen die E-Mail(s) gesendet werden?", vbQuestion + vbYesNo, _
"Löschen bestätigen") = vbYes Then
Dim i As Long
Dim sText As Variant
Dim sEmpfang As Variant
Dim sBetrifft As String
Dim session As Variant
Dim db As Variant
Dim uiDocument As Variant
Dim rtobject, ws As Variant
Dim doc As Variant
Dim x As Integer
Dim y As Integer
Dim Msg As Integer
Dim sKopie As String
Dim AttachMe As Variant
Dim derAnhang As Variant, derAnhang2 As Variant, derAnhang3 As Variant
Dim user As String
Dim server As String
Dim mailfile As String
Dim sBlindKopie As String
Dim vAn As Variant
Dim vCopy As Variant
Dim vBlind As Variant
Dim sAnhang As String, sAnhang2 As String, sAnhang3 As String
Dim sAnrede As Variant
Dim sVorname As Variant
Dim sNachname As Variant
Dim tempAnrede As Variant
On Error Resume Next
' Verbindung zum Mailserver aufbauen
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) ' Emails zusammenbauen und rausschicken
For i = 12 To cells(Rows.Count, 9).End(xlUp).Row
If cells(i, 10) <> "ja" Then 'keine E-Mail, wenn "ja" in Spalte "geantwortet"
vAn = cells(i, 9)
sAnrede = Range("e" & i) 'Anrede aus Spalte e
Select Case (sAnrede)
Case "Herr": 'Im Fall, dass Anrede "Herr" in Spalte e, dann schreibe "Sehr geehrter Herr"
tempAnrede = "Sehr geehrter Herr"
Case "Frau":
tempAnrede = "Sehr geehrte Frau" 'Im Fall, dass Anrede "Frau" in Spalte e, dann schreibe "Sehr geehrte Frau"
Case "Sehr geehrte Damen und Herren":
tempAnrede = "Sehr geehrte Damen und Herren"
Case "Dear":
tempAnrede = "Dear" 'Im Fall, dass Anrede "Dear" in Spalte e, dann schreibe "Dear"
End Select
sVorname = Range("f" & i) 'Vorname aus Spalte f
sNachname = Range("g" & i) 'Nachname aus Spalte g
If Sheets("Tabelle1").Range("h" & i).Value = "Deutsch" Then 'wenn in Spalte "h" "Deutsch" als Sprache steht, dann
sText = tempAnrede & " " & sNachname & "," & Chr(10) & Chr(10) & Range("B4") & Chr(10) 'dann nehme die Anrede + Nachnamen + den Text aus Zelle "B4"
Else
sText = tempAnrede & " " & sVorname & "," & Chr(10) & Chr(10) & Range("D4") & Chr(10) 'sonst nehme Anrede + Vorname + Text aus Zelle "D4"
End If
sBetrifft = Range("B3") ' Überschrift in Zelle b3
sKopie = Range("D3") ' Kopie der E-MAil an e-Mail Adresse aus Zelle "D3"
sBlindKopie = Mid(vAn, 3) ' schickt an alle Empfänger eine Blindkopie
sAnhang = Range("B6") ' Link aus Zelle b6
sAnhang2 = Range("B7") ' Link aus Zelle b7
sAnhang3 = Range("B8") ' Link aus Zelle b8
If Len(sKopie) > 0 Then vCopy = Split(sKopie, " ; ") ' cc Array
If Len(sBlindKopie) > 0 Then vBlind = Split(sBlindKopie, " ; ") 'bcc Array
Set doc = db.createdocument()
doc.Form = "Memo"
doc.sendto = vAn
If Len(sKopie) > 0 Then doc.CopyTo = vCopy 'cc Array
doc.Subject = sBetrifft ' die Betreffzeile
doc.SAVEMESSAGEONSEND = True
doc.PostedDate = Now
'Die Zeilen mit dem Anhang nach hier oben verschieben, ist wichtig die Reihenfolge
' *******************************************
If sAnhang <> "" Then
Set AttachMe = doc.CREATERICHTEXTITEM("Attachment")
Set derAnhang = AttachMe.EMBEDOBJECT(1454, "", sAnhang)
Set derAnhang2 = AttachMe.EMBEDOBJECT(1454, "", sAnhang2)
Set derAnhang3 = AttachMe.EMBEDOBJECT(1454, "", sAnhang3)
',"Attachment" wird nicht benötigt
End If
'*******************************
Set ws = CreateObject("Notes.NotesUIWorkspace")
' **durch das öffnen des Dokumentes durch NotesUIWorkspace**
' **erreicht man das die eingestellte Signatur aus den **
' **Lotus Notes Optionen eingefügt wird
Call ws.EDITDOCUMENT(True, doc)
Set uiDocument = ws.CURRENTDOCUMENT
Call uiDocument.GOTOFIELD("Body")
Call uiDocument.insertText(sText)
Call uiDocument.Send(True)
Call uiDocument.Close 'Schliesst das gesendete Formular
Call uiDocument.Save(True, True)
Set AttachMe = Nothing
Set derAnhang = Nothing
Set ws = Nothing
Set doc = Nothing
End If
Next i
' Verbindung zum Mailserver löschen
Aufraeumen:
On Error Resume Next
Set db = Nothing
Set session = Nothing
Exit Sub
Fehler:
Resume Aufraeumen
End If
End Sub
Viele Grüße
Benni
Peter Klett:
--- Zitat von: Benni1988 am 26.02.16 - 16:25:33 --- Call ws.EDITDOCUMENT(True, doc)
Set uiDocument = ws.CURRENTDOCUMENT
Call uiDocument.GOTOFIELD("Body")
Call uiDocument.insertText(sText)
Call uiDocument.Send(True)
Call uiDocument.Close 'Schliesst das gesendete Formular
Call uiDocument.Save(True, True)
--- Ende Zitat ---
Den oberen Teil habe ich mir nicht näher angeschaut, aber der untere sieht grundsätzlich ganz gut aus. Mich wundert die Reihenfolge etwas. Ich würde das Dokument erst senden, dann speichern und dann schließen. Dass man das uiDocument nach dem Schließen noch speichern kann, verwundert mich etwas, möglicherweise dreht Notes selbst bei Ausführung das um (in Formelsprache gibt es soetwas jedenfalls). Ebenso wundert mich, dass jetzt angeblich das Senden über das uidoc mit Parameter funktionieren soll, was ursprünglich einen Fehler gebracht hat. Das Speichern des uidoc hat eigentlich auch keine Parameter.
Nach meinem Verständnis wäre es so richtig.
Call ws.EDITDOCUMENT(True, doc)
Set uiDocument = ws.CURRENTDOCUMENT
Call uiDocument.GOTOFIELD("Body")
Call uiDocument.insertText(sText)
Call uiDocument.Send
Call uiDocument.Save
Call uiDocument.Close 'Schliesst das gesendete Formular
Benni1988:
Hallo Peter,
ja, aber es funktioniert einwandfrei.
Ja, von der Logik her, ist es im nachhinein echt komisch, änder ich die Reihenfolge allerdings auf erst senden und dann speichern, bekomme ich in Notes folgende Meldung
Sind Sie sicher? Diese Nachricht wurde bereits an einen oder mehrere Empfänger gesendet…“
Ich weiß zwar nicht warum, aber ich lasse es dann lieber so...
Grüße
Benni1988:
Hallo zusammen,
nachdem der Code jetzt gut funktioniert hat, stürtzt LN jetzt immer ab und es kommt folgende Widows-Meldung.
IBM Notes/Domino funktioniert nicht mehr
Problemdetails:
Problemereignisname: APPCRASH
Anwendungsname: NLNOTES.ExE
Anwendungsversion: 9.0.14.15158
Answendungszeitstempel: 557542 fc
Fehlermodulname: StackHash_26c4
Was bedeutet das? Wieso kommt der Fehler auf einmal?
Grüße
Benni
Tode:
Ein Notes- Crash produziert immer einen NSD im Verzeichnis "IBM_TECHNICAL_SUPPORT" im Data- Verzeichnis des Benutzers. Dort steht drin, warum der Client gecrashed ist (wenn man den NSD- Prozess nicht abwürgt und ihn wirklich bis zum Ende laufen lässt).
Ohne NSD keine Möglichkeit, eine Aussage zu treffen.
ACHTUNG: Das NSD enthält sehr viele System- Informationen. Also nicht einfach hier hochladen...
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln