Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mailversand über Notes mit Excel/VBA

Mailversand über Notes mit Excel/VBA
14.05.2008 14:45:01
Werner
Hallo zusammen,
ich habe ein kleines Script um in Excel mit VBA Mails aus Lotus Notes zu versenden.
Das funktioniert auch problemlos, allerdings eine Kleinigkeit stört noch:
In Lotus im Ordner "Gesendet" erscheint mir in der Ansicht der Empfänger nicht (das Mail wenn man es öffnet hat einen Empfänger, nur eben in der Ansicht fehlt der Empfänger).
Hat jemand eine Idee woran das liegen könnte, nachstehend der Code:

Sub SendNotesMail()
Dim Maildb As Object
Dim MailDoc As Object
Dim session As Object
Dim Recipient() As Variant
Dim Signature As String
Dim rtitem
Dim EmbedObj As Object
Dim AttachME As Object
Set session = CreateObject("Notes.NotesSession")
Set Maildb = session.CURRENTDATABASE
Set MailDoc = Maildb.CREATEDOCUMENT
Recipient = "meinemail@meinemail.de"
MailDoc.Form = "Memo"
MailDoc.sendto = Recipient
MailDoc.CopyTo = ""
MailDoc.Subject = "Testmail aus Excel"
Signature = Maildb.GETPROFILEDOCUMENT("CalendarProfile").GETITEMVALUE("Signature")(0)
Set rtitem = MailDoc.CREATERICHTEXTITEM("Body")
With rtitem
.APPENDTEXT ("Testversand")
.ADDNEWLINE (2)
Call .EMBEDOBJECT(1454, "", "C:\Eigene Dokumente\Makro\Test1.xls")
.ADDNEWLINE (2)
.APPENDTEXT Signature
End With
MailDoc.SAVEMESSAGEONSEND = True
MailDoc.PostedDate = Now()
MailDoc.SEND 0, Recipient
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set session = Nothing
Set EmbedObj = Nothing
MsgBox "Mail versandt!"
End Sub


Vielen Dank für Eure Hilfe

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mailversand über Notes mit Excel/VBA
15.05.2008 00:36:00
Andre´
Hallo Werner,
probier mal diesen Code.

Sub mail()
Dim Betreff As String
Dim Empfaenger As String
Dim Text1 As String
Dim Text2 As String
Dim Text3 As String
Dim ABSENDER As String
Dim DATEIANHANG As String
Dim rtitem As Object
Dim EmbeddedObject As Object
Empfaenger = MailTo
Betreff = "Mail vom " & Date & " " & Time
Text1 = MailText
ABSENDER = ""
On Error GoTo Err_Mail_Click
Dim SessionNotes As Object, NotesDB As Object, NotesDoc As Object
Set SessionNotes = CreateObject("Notes.NOTESSESSION")
Set NotesDB = SessionNotes.GetDatabase("", "")
NotesDB.OPENMAIL
If NotesDB.IsOpen = False Then
MsgBox "Bitte melden Sie sich zunächst vollständig in Notes an!", vbInformation + vbOKOnly
Exit Sub
End If
Set NotesDoc = NotesDB.CreateDocument
With NotesDoc
.Form = "Memo"
.Subject = "blablabla"
.sendto = "ddd@freenet.de"
'.copyto = "xxx@freenet.de" ' Kopie an
'.blindcopyto= "sss@freenet.de " 'Blindkopie
.body = "laplaplap" 'Text
'.DefaultMailSaveOption = 0
'.MailSaveOption = 0
.DeliveryReport = "B"
.Importance = "2"
'.logo = "Scania"
.SAVEMESSAGEONSEND = True ' bei True wird ein Exemplar in Notes in Gesendet gestellt
.ReturnReceipt = "1"
.Sign = "1"
''''''''''''''''''''''''''''' Dateianhang''''''''''''''''''''''''''''''''''''''''''''''''''''''' _
If Trim$(DATEIANHANG)  "" Then
Const embed_ATT = 1454
Set rtitem = .CreateRichTextItem("DATEIANHANG")
Set EmbeddedObject = rtitem.EmbedObject(embed_ATT, "", DATEIANHANG, "DATEIANHANG")
End If
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' _
.Send False
End With
Set SessionNotes = Nothing
Set NotesDB = Nothing
Set NotesDoc = Nothing
Set rtitem = Nothing
Set EmbeddedObject = Nothing
Exit_Mail_Click:
Exit Sub
Err_Mail_Click:
MsgBox Err.Description
Resume Exit_Mail_Click
End Sub


MFG Andre

Anzeige
AW: Mailversand über Notes mit Excel/VBA
15.05.2008 14:53:00
Werner
Hallo Andre,
in dem Code sind einige unnötige Zeilen, zu denen es auch keine Variablendeklaration gibt.
Text1 = MailText
Absender = ""
Empfänger = MailTo
zum Beispiel, das kann alles raus.
Aber was wichtig ist, mit diesem Code funktioniert es, der Empfänger wird korrekt im "Gesendet"-Ordner angezeigt.
Nur weiß ich nicht woran es liegt, trotzdem hilft mir dass auf jeden Fall weiter.
Ich habe jetzt die Möglichkeit einzelne Schipsel aus deinem Code einzubauen und solange zu probieren bis ich den Fehler gefunden habe, den jetzt ist sicher dass sich in meinem Code ein Fehler eingeschlichen hat.
Danke

Anzeige
Klappt nicht
15.05.2008 16:51:00
Werner
Ich bekomme es nicht hin.
Mit dem Code von Andre erscheint der Empfänger in der Ansicht "Gesendet", bei meinem Code nicht (Thema, Datum, etc. wird alles angezeigt).
Habe den Code jetzt an allen möglichen Stellen verändert, aber es funzt nicht.
Sonst noch jemand eventuell eine Idee wo der Fehler in meinem Code sein könnte ?
Gruß Werner
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Mailversand über Lotus Notes mit Excel VBA


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Neues Modul erstellen: Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub SendNotesMail()
       Dim Maildb As Object
       Dim MailDoc As Object
       Dim session As Object
       Dim Recipient As String
       Dim Signature As String
       Dim rtitem As Object
    
       Set session = CreateObject("Notes.NotesSession")
       Set Maildb = session.CURRENTDATABASE
       Set MailDoc = Maildb.CREATEDOCUMENT
    
       Recipient = "meinemail@meinemail.de"
       MailDoc.Form = "Memo"
       MailDoc.sendto = Recipient
       MailDoc.Subject = "Testmail aus Excel"
       Signature = Maildb.GETPROFILEDOCUMENT("CalendarProfile").GETITEMVALUE("Signature")(0)
    
       Set rtitem = MailDoc.CREATERICHTEXTITEM("Body")
       With rtitem
           .APPENDTEXT ("Testversand")
           .ADDNEWLINE (2)
           .APPENDTEXT Signature
       End With
    
       MailDoc.SAVEMESSAGEONSEND = True
       MailDoc.PostedDate = Now()
       MailDoc.SEND 0, Recipient
    
       MsgBox "Mail versandt!"
    End Sub
  4. Code anpassen: Ersetze die Recipient-E-Mail-Adresse mit deiner eigenen.

  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus, um die E-Mail zu senden.


Häufige Fehler und Lösungen

  • Fehlender Empfänger in "Gesendet": Wenn der Empfänger in der Ansicht "Gesendet" nicht angezeigt wird, kann es an unvollständigen oder falsch gesetzten Variablen im Code liegen. Stelle sicher, dass alle benötigten Variablen korrekt deklariert sind.

  • Notizen nicht geöffnet: Wenn die Notes-Datenbank nicht geöffnet ist, wird eine Nachricht angezeigt. Stelle sicher, dass du in Lotus Notes angemeldet bist, bevor du das Makro ausführst.

  • Sicherheitswarnungen: Bei der Verwendung von CreateObject könnte es Sicherheitswarnungen geben, die das Ausführen des Codes verhindern. Überprüfe die Makrosicherheitseinstellungen in Excel.


Alternative Methoden

Es gibt mehrere Möglichkeiten, E-Mails über Excel zu versenden:

  1. Excel VBA mit Outlook: Anstelle von Lotus Notes kannst du auch Outlook verwenden, um E-Mails zu versenden. Der Code unterscheidet sich nur minimal.

  2. Verwendung von API: Eine weitere Möglichkeit ist die Verwendung von API-Diensten, um E-Mails zu versenden, was jedoch mehr Programmierkenntnisse erfordert.

  3. Excel VBA send teams message: Mit etwas mehr Aufwand kannst du auch Nachrichten über Microsoft Teams senden, indem du die entsprechenden APIs verwendest.


Praktische Beispiele

Hier sind einige Beispiele für den Mailversand mit vba lotus notes:

  • Einfacher Versand:

    MailDoc.sendto = "empfaenger@example.com"
  • Mit Anhang:

    Call .EMBEDOBJECT(1454, "", "C:\Pfad\zu\deiner\Datei.txt")
  • Signatur hinzufügen:

    Signature = Maildb.GETPROFILEDOCUMENT("CalendarProfile").GETITEMVALUE("Signature")(0)

Diese Beispiele zeigen, wie du den excel vba notes-Code anpassen kannst, um verschiedene Anforderungen zu erfüllen.


Tipps für Profis

  • Code optimieren: Entferne unnötige Zeilen und Variablen, um den Code sauber und verständlich zu halten.

  • Debugging: Nutze die Debug.Print-Funktion, um Variablenwerte während der Ausführung anzuzeigen und Probleme schneller zu identifizieren.

  • Fehlerbehandlung: Implementiere eine umfassende Fehlerbehandlung, um unerwartete Probleme zu vermeiden.

  • Dokumentation: Kommentiere deinen Code, um die Wartung und das Verständnis zu erleichtern.


FAQ: Häufige Fragen

1. Wie sende ich eine E-Mail an mehrere Empfänger?
Füge die E-Mail-Adressen durch ein Semikolon getrennt in die sendto-Eigenschaft ein, z.B.:

MailDoc.sendto = "empfaenger1@example.com; empfaenger2@example.com"

2. Warum wird mein Anhang nicht gesendet?
Stelle sicher, dass der Pfad zum Anhang korrekt ist und die Datei zugänglich ist. Überprüfe auch, ob die EMBEDOBJECT-Funktion korrekt verwendet wird.

3. Welche Excel-Version benötige ich?
Die Anweisungen gelten in der Regel für Excel 2010 und höher, solange die VBA-Funktionalität unterstützt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige