Autor Thema: Mail wird ohne Inhalt unter "gesendet" gespeichert  (Gelesen 2936 mal)

Offline Pinky0105

  • Frischling
  • *
  • Beiträge: 12
  • Geschlecht: Männlich
Hallo zusammen, nachdem mir schon einige geholfen haben mein Projekt umzusetzen, hoffe ich nochmal auf Hilfe bei meinem letzten Problem.
Es funktioniert soweit alles, es wird aus Excel heraus die Mail versendet und es erfolgt ein Eintrag unter "gesendet". Doch wenn ich mir unter gesendet die Mail aufrufe, so fehlt der komplette Inhalt. Ich erhalte auch keine Fehlermeldung oder sonstiges. Anbei mein aktueller Code:


Sub EinzelMail()

Dim session As Object
Dim db As Object
Dim doc As Object
Dim strTo As Variant
Dim strPath As String
Dim EmbedObj As Object 'The embedded object (Attachment)
Dim AttachME As Object 'The attachment richtextfile object
Dim Workspace As Object
Dim uidoc As Object
Dim Empfaenger As String
Dim EmpfNachName As String
Dim EmpfMail As String
Dim Termin As Date
Dim Betreff As String
Dim Anrede As String

Anrede = Sheets("Formular").Range("E3").Value
Empfaenger = Sheets("Formular").Range("C10").Value
EmpfNachName = Trim(Mid(Empfaenger, (InStr(1, Trim(Empfaenger), " ") + 1), 50))
EmpfMail = Sheets("Formular").Range("C3").Value
Termin = Sheets("Formular").Range("D3").Value
Betreff = Sheets("Formular").Range("K3").Value

Set session = CreateObject("Notes.NotesSession")
Set db = session.GetDatabase(SERVER, MAILIN.nsf") 'Server und Pfad der MailInDB, zu finden in NotesKachel-Eigenschaften

If db.IsOpen = False Then db.OPENMAIL

Set doc = db.CreateDocument
With doc
    .form = "Memo"
    .SendTo = EmpfMail
    .Subject = Betreff
    .Sign = "0"
    .SaveMessageOnSend = True
    .Save = True
    .posteddate = Now()
    .ReplyDate = Termin
End With

Set Workspace = CreateObject("Notes.NotesUIWorkspace")
Set uidoc = Workspace.EDITDOCUMENT(True, doc)

With uidoc
    .GOTOFIELD ("Body")
        
    If Anrede = "Herr" Then
        .inserttext ("Sehr geehrter Herr " & EmpfNachName & "," & vbCrLf & vbCrLf)
    Else
        .inserttext ("Sehr geehrte Frau " & EmpfNachName & "," & vbCrLf & vbCrLf)
    End If
    
    .inserttext ("nachstehend erhalten Sie Ihre Planungsaufgabe:" & vbCrLf)
    .inserttext (vbCrLf)
    Sheets("Formular").Range("A5:G22").Copy 'Bereich mit dem zu übernehmenden Text
    .Paste
    .inserttext (vbCrLf)
    Call doc.Save(True, False, True)
    .send
    .document.SaveOptions = "0"
    .Close
End With

Set EmbedObj = Nothing
Set AttachME = Nothing
Set uidoc = Nothing
Set Workspace = Nothing
Set db = Nothing
Set doc = Nothing
Set session = Nothing

MsgBox "Die Mail wurde erfolgreich erstellt. Wechseln Sie nun zu Lotus Notes!", vbInformation

End Sub


Irgendwie hab ich Tomaten auf den Augen, zumindest find ich den Fehler nicht. ???
Ich hoffe daher nochmals auf Eure Hilfe und sag im voraus vielen herzlichen Dank.  :love:
« Letzte Änderung: 15.06.16 - 15:30:35 von Pinky0105 »
>>> Wenn Du denkst es geht nicht mehr, kommt irgendwo ein Lichtlein her. <<<

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Mail wird ohne Inhalt unter "gesendet" gespeichert
« Antwort #1 am: 15.06.16 - 15:43:31 »
Da hier munter Aktionen im Frontend und gleichzeitig im Backend vermischt werden, beissen sich diese auch ebenso heftig:

uidoc.Paste                             '(RT-)Inhalt imn Frontend einfügen                     
uidoc.inserttext (vbCrLf)            'Text im Frontend einfügen
Call doc.Save(True, False, True)  'Im Backend speichern (das weiss aber nichts von den Frontend-Aktionen!)
uidoc.send                               'die Frontend-erzeugten Inhalte versenden
uidoc.document.SaveOptions = "0"    'dem Backend-Dokument jede weitere Speicherung im Frontend unmöglich machen

So kann das also niemals funktionieren.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Mail wird ohne Inhalt unter "gesendet" gespeichert
« Antwort #2 am: 15.06.16 - 15:45:16 »
With uidoc
    .GOTOFIELD ("Body")
       
    If Anrede = "Herr" Then
        .inserttext ("Sehr geehrter Herr " & EmpfNachName & "," & vbCrLf & vbCrLf)
    Else
        .inserttext ("Sehr geehrte Frau " & EmpfNachName & "," & vbCrLf & vbCrLf)
    End If
   
    .inserttext ("nachstehend erhalten Sie Ihre Planungsaufgabe:" & vbCrLf)
    .inserttext (vbCrLf)
    Sheets("Formular").Range("A5:G22").Copy 'Bereich mit dem zu übernehmenden Text
    .Paste
    .inserttext (vbCrLf)
    Call doc.Save(True, False, True)
    Call .Save

    .send
    .document.SaveOptions = "0"
    .Close
End With

Du musst das uidoc speichern, und nicht das doc

Offline Pinky0105

  • Frischling
  • *
  • Beiträge: 12
  • Geschlecht: Männlich
Re: Mail wird ohne Inhalt unter "gesendet" gespeichert
« Antwort #3 am: 15.06.16 - 16:04:56 »
Jaaaaaa, das war´s.

Call .Save     

Viiiiieeeelen herzlichen Dank!

@koehlerbv: Sorry, ich bin kein hauptberuflicher Entwickler/Programmierer, daher kenn ich mich da nicht so aus. Ich programmier einfach munter drauf los, hole mir fehlende Teile aus dem Weltnetz und bastel solang rum bis es funktioniert. Backend und Frontend in diesem Zusammenhang sagen mir da leider nicht viel aber ich danke Dir sehr für Kommentare hinter den Code-Zeilen. So hab ich wieder was dazugelernt.

Dennoch euch beiden vielen herzlichen Dank. Nun funktioniert alles, auch wenn es vielleicht nicht ganz so sauber programmiert ist.

>>> Wenn Du denkst es geht nicht mehr, kommt irgendwo ein Lichtlein her. <<<

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Mail wird ohne Inhalt unter "gesendet" gespeichert
« Antwort #4 am: 16.06.16 - 08:52:29 »
... auch wenn es vielleicht nicht ganz so sauber programmiert ist.

Du erstellst die Mail im Backend mit allen benötigten Daten, dann öffnest Du sie, um im Frontend den Inhalt (Richtext, Body), der im wesentlichen aus dem Inhalt der Zwischenablage besteht (Übernahme eines Bereiches aus Excel, Zwischenablage geht nur im Frontend), zu setzen.

Versenden und Speichern erfolgt im Frontend, da sonst der Inhalt der Mail fehlt. SaveOptions kannst Du nur im Backend setzen, da das nicht im geöffneten Dokument bearbeitbar ist, brauchst Du aber, um beim Schließen (wieder Frontend) die Speicherfrage zu umgehen.

Beim besten Willen kann ich hier nicht ansatzweise erkennen, was daran "nicht ganz so sauber" sein soll. Ich hätte das genauso umgesetzt, wenn ich Inhalt aus der Zwischenablage per Mail versenden sollte.
« Letzte Änderung: 16.06.16 - 08:57:04 von Peter Klett »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz