Mail via Lotus Notes versenden

B

bullayer

Hallo,
ich suche eine Möglichkeit, via VB 6.0 und Lotus Notes eine Mail mit Anhang zu versenden. Hat jemand Beispielcodes, wie man sowas bewerkstelligen kann?
 

Jacka

Erfahrenes Mitglied
Hi!

Hier ist mein Code den ich verwende (Client muss geöffnet sein):
Code:
Public Sub SendNotesMail()

Dim Subject As String, attachment As String, bodytext As String, saveit As Boolean
Dim ToAdressen(10) as String

'Achtung! Der Notes Client muss auf dem System installiert sein!

    Dim Maildb As Object 'Die Datenbank
    Dim UserName As String 'Der Benutzername
    Dim MailDbName As String 'Der Datenbankname
    Dim MailDoc As Object 'Das Maildokument selbst
    Dim AttachME As Object 'Der Anhang (Richtext)
    Dim Session As Object 'Die Notes Session
    Dim EmbedObj As Object 'Ein eingebettetes Objekt (Anhang)
    Dim Recip(2) As Variant
    Dim LinkME As Object
    Dim testlink As String
     
    Subject = xpText4.Text
    bodytext = xpText5.Text
    attachment = AppPfad & "\Links.xls"
            
    'Die Session starten
    Set Session = CreateObject("Notes.NotesSession")

 On Error GoTo Fehler:
    'Den Benutzernamen auslesen und den Dateinamen
    'der MailDB errechnen
    'Dies wird nicht überall benötigt. Auf manchen
    'Systemen kann auch ein leerer String übergeben werden
    UserName = Session.UserName
    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
    
    'Datenbank öffnen
    Set Maildb = Session.GetDatabase("", MailDbName)
     If Maildb.IsOpen = True Then
     Else
         Maildb.OPENMAIL
     End If
     
    'Ein neues Maildokument erstellen
    Set MailDoc = Maildb.CreateDocument
    MailDoc.Form = "Memo"
    MailDoc.sendto = Recip
    MailDoc.Subject = Subject
    MailDoc.body = bodytext
    MailDoc.SaveMessageOnSend = True
       
    'Eingebettete Objekte und Anhänge hinzufügen
    If attachment <> "" Then
        Set AttachME = MailDoc.CreateRichTextItem("Attachment")
        Set EmbedObj = AttachME.EmbedObject(1454, "", attachment, "Attachment")
        'MailDoc.CREATERICHTEXTITEM ("Attachment")
    End If
    
    'Senden
    MailDoc.PostedDate = Now()

If ToAdressen(1) = "" Then
    MsgBox "Please enter recipients!"
    GoTo Fehler2
Else
    MailDoc.Send 0, ToAdressen
    MsgBox "Message transmitted"
    GoTo Fehler2
End If
    
    'Aufräumen
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachME = Nothing
    Set Session = Nothing
    Set EmbedObj = Nothing
        
Fehler:
    MsgBox "Please open your Lotus Notes client!"
    Exit Sub

Fehler2:
    Exit Sub
        
End Sub

Oder unter den folgende Link schauen:
http://www.activevb.de/tipps/vb6tipps/tipp0544.html

Viele Grüße,
Jacka
 
B

bullayer

Danke @Jacka, funktioniert.

Kennst Du auch ne Möglichkeit, ne Mail zu versenden, ohne dass ein Mailclient installiert ist, z. Bsp. via WEB.DE
 
Zuletzt bearbeitet von einem Moderator:

Alex F.

Erfahrenes Mitglied
es gibt die möglichkeit mails mittels ie (hierzu kann man die adressenleiste irgendwie misbrauchen) zu versenden oder auch mit der vbsendmail von activevb.

Bei der Möglichkeit über den ie ist es wohl nicht möglich anhänge mit zu senden. Deswegen ist die VBsendmail eleganter
 

Rhinowsurfer

Grünschnabel
Frage an Jacka:

Hallo und guten Tag,
bin unter den Laien einer der Größten. Ich kupfere immer nur ab, was andere irgendwie veröffentlicht haben, wenn ich es gebrauchen kann. Habe aber kaum Ahnung mit diesen ganzen Programmierbefehlen: Kurz um: Habe diesen Link aus einem Excel-Forum bekommen: Wir haben auf der Maloche Excel2003 und LotusNotes 6.5.5

Habe naiv das Programm von Jacka in VBA Excel-Datei eingesetzt. Leider läuft es gar nicht. Muss ich irgendwo für Platzhalter, die im Programm vielleicht stehen, etwas anderes einsetzen'?

Wenn ich das Makro starten will dann kommt gleich der Fehler:
Fehler beim Kompilieren: Variable nicht definiert. Angezeigt wird dann z.B. text1 hinter dem Untermakro SendNotesMail.

Ich hatte ja gehofft, dass den Code einfach bei mir einspiele und ich dann sofort in der Lage wäre, die entsprechende Excel-Seite als E-Mail versenden zu können.

Kann da einem Unbedarften wie mir noch geholfen werden. Oder ist das für mich nicht darstellbar?

Einen schönen Tag noch
wünscht der
Rhinowsurfer
 

Jacka

Erfahrenes Mitglied
Hi!

Hab die Frage erst jetzt gesehen :D

Also:

Du benötigst für die Ausführung des Codes noch etwas:
In Excel:
Code:
    .....   
    Subject = Textbox1.Text   '  ist der Inhalt aus einer Textbox und ergibt den Betreff
    bodytext = Textbox2.Text  '  ist der Inhalt aus einer weiteren Textbox und ergibt den   
                                             email-Text
    attachment = "C:\Liste.xls"  '  Die Excelliste die mit verschickt werden soll
    .....
    MailDoc.Send 0, ToAdressen  '  ToAdressen ist ein Array und enthält eben die  
                                                  Empfänger-Adressen

Du kannst auch einfach Subject = "Dies ist der Betreff" schreiben
Und:
ToAdressen(0) = "abc@emailadresse.com"
ToAdressen(1) = "xyz@emailadresse.com"

Du hast sicher AppPfad nicht definiert. Ist bei mir eine public variable und
definiert den Pfad, wo sich dann die EXE befinden.
Das könnte deine Fehlermeldung erklären.

Hoffe das hilft!
Sonst schreib nochmal! :)

Viele Grüße,
Jacka
 

Rhinowsurfer

Grünschnabel
Hallo Jacka,

habe Probleme!
Habe Code, wie unten, eingegeben. Code läuft über Fehlerroutine aus.
Das System erkennt Lotus nicht.
Laienfrage von mir:
Muss ich beim Start der Session
Set session=createObject("Notes.NotesSession") :confused:
in der Klammer 'was anderes eingeben?
Beim schrittweisen Ablauf wird schon nichts in SESSION hineingeschrieben!

Der UserName ist aber richtig gefüllt.(!)
----------
ICh hatte mich ja als Laie und Abkupferer geoutet, also nicht böse sein, wenn die Frage auf unterem Niveau ist. ICh würde mich aber trotzdem freuen, wenn ich das mit Hilfe anderer hinbekommen würde. Denn nichts ist schöner, als hilfreiche Technik am Arbeitsplatz. Schönen Maifeiertag wünscht der Rhinowsurfer!



Public Sub SendNotesMail()

Dim Subject As String, attachment As String, bodytext As String, saveit As Boolean
Dim ToAdressen(10) As String

'Achtung! Der Notes Client muss auf dem System installiert sein!

Dim Maildb As Object 'Die Datenbank
Dim UserName As String 'Der Benutzername
Dim MailDbName As String 'Der Datenbankname
Dim MailDoc As Object 'Das Maildokument selbst
Dim AttachME As Object 'Der Anhang (Richtext)
Dim Session As Object 'Die Notes Session
Dim EmbedObj As Object 'Ein eingebettetes Objekt (Anhang)
Dim Recip(2) As Variant
Dim LinkME As Object
Dim testlink As String

' Subject = xpText4.Text
' bodytext = xpText5.Text
' attachment = AppPfad & "\Links.xls"
Subject = "Dies ist der Betreff"
bodytext = "E-Mail-Text"
attachment = "U:\ABLAGE\BOC1\BOC15\4455\HV\WVS-Listen.xls"


'Die Session starten
Set Session = CreateObject("Notes.NotesSession")

On Error GoTo Fehler:
'Den Benutzernamen auslesen und den Dateinamen
'der MailDB errechnen
'Dies wird nicht überall benötigt. Auf manchen
'Systemen kann auch ein leerer String übergeben werden
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"

'Datenbank öffnen
Set Maildb = Session.GetDatabase("", MailDbName)
If Maildb.IsOpen = True Then
Else
Maildb.OPENMAIL
End If

'Ein neues Maildokument erstellen
Set MailDoc = Maildb.CreateDocument
MailDoc.Form = "Memo"
MailDoc.sendto = Recip
MailDoc.Subject = Subject
MailDoc.body = bodytext
MailDoc.SaveMessageOnSend = True

'Eingebettete Objekte und Anhänge hinzufügen
If attachment <> "" Then
Set AttachME = MailDoc.CreateRichTextItem("Attachment")
Set EmbedObj = AttachME.EmbedObject(1454, "", attachment, "Attachment")
'MailDoc.CREATERICHTEXTITEM ("Attachment")
End If

'Senden
MailDoc.PostedDate = Now()

If ToAdressen(1) = "" Then
MsgBox "Please enter recipients!"
GoTo Fehler2
Else
MailDoc.Send 0, ToAdressen
MsgBox "Message transmitted"
GoTo Fehler2
End If

'Aufräumen
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj = Nothing

Fehler:
MsgBox "Please open your Lotus Notes client!"
Exit Sub

Fehler2:
Exit Sub

End Sub