Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: markoii am 21.01.03 - 11:25:58

Titel: VBA Script für senden an Notes
Beitrag von: markoii am 21.01.03 - 11:25:58
weiss jemand ein VBA-Script mit dem ich aus PowerPoint heraus eine Send To Funktion integrieren kann. Mit der unteren Funktion kann ich keine Anhänge mitsenden.

Sub Mail(Adressat As String, Optional Titel As String, Optional text As String)
    Call shellexecute(0&, "Open", "mailto:" + Adressat + _
        "?Subject=" + Titel + "&Body=" + text, "", "", 1)
   
End Sub
Sub EMailVersendenUeberAPI()
    Call Mail("Harry.Hirsch@T-Online.de", "update auf homepage", _
    "Besuchen Sie doch mal wieder unsere Website auf http://www.reinke-net.de")
End Sub


wäre für jede andere Möglichkeit auch Dankbar..

güße :-[ :-[
Titel: Re:VBA Script für senden an Notes
Beitrag von: ata am 21.01.03 - 11:29:30
... wenn der Mailclient auf jeden Fall Notes ist, dann über die COM-Klassen arbeiten und ein Notesobject erstellen...

ata
Titel: Re:VBA Script für senden an Notes
Beitrag von: markoii am 21.01.03 - 12:24:57
... wenn der Mailclient auf jeden Fall Notes ist, dann über die COM-Klassen arbeiten und ein Notesobject erstellen...

ata

Danke dass du so schnell antwortest, aber so gut bin ich noch nicht hast du vielleicht ein Beispiel-Code. Ich arbeite auf W2k + Office 2k + R5.07a kein Outlook

grüsse :-\ :-\
Titel: Re:VBA Script für senden an Notes
Beitrag von: ata am 21.01.03 - 12:42:15
... einen Beispielcode habe ich dir nicht, aber schau mal auf meiner Homepage im LousScript-Kurs unter Grundlagen | Download, dort habe ich eine Windows-Hilfedatenbank zu LotusScript-COM-Klassenprogrammierung, in der ist eigentlich alles drin was du brauchst...

ata
Titel: Re:VBA Script für senden an Notes
Beitrag von: eknori (retired) am 21.01.03 - 12:42:51
Hier der Code

Sub SendNotesMail()

dim ws as workspace
dim s as object
dim db as object
dim doc as object

st ws = DBEngine.Workspaces (0)
set s = CreateObject ("Notes.NotesSession")
set db = s.CurrentDatabase
set doc = db.CreateDocument
doc.form = "Memo"
doc.SendTo= "DeinEmpfängerName"
doc.Subject = "DeinSubject"
doc.Body = "DerInhaltDerMail"
call doc.send (true)
ws.close

end sub

eknori
Titel: Re:VBA Script für senden an Notes
Beitrag von: markoii am 21.01.03 - 13:45:38
ata ich schaue mal deine Seiten durch und versuch mich da durchzuarbeiten.

eknori danke für dein script, hab es grade ausprobiert, bekomme aber Fehlermeldung "Benutzerdefinierter Typ nicht definiert" bei workspace
Titel: Re:VBA Script für senden an Notes
Beitrag von: Axel am 21.01.03 - 14:45:12
Hi,

meines Erachtens kannst du die Variable weglassen. Ich vermute mal das Script stammt aus Access.

Lösche diese beiden Zeilen:

    Dim ws As workspace

    ws.close


Dann sollte das Ganze funktionieren.


Axel

Titel: Re:VBA Script für senden an Notes
Beitrag von: eknori (retired) am 21.01.03 - 14:48:26
@Axel: Hast recht; script hatte ich mal in ACCESS eingebaut :-[
Titel: Re:VBA Script für senden an Notes
Beitrag von: markoii am 21.01.03 - 15:10:38
O.k. habe ich auch probiert und jetzt bekomme ich die Fehlermeldung:

Laufzeitfehler '429'

Objekterstellung durch ActiveX-Komponente nicht möglich


bleibt beim debuggen hier stehen:

Set s = CreateObject("Notes.NotesSession")
Titel: Re:VBA Script für senden an Notes
Beitrag von: Axel am 21.01.03 - 18:36:57
Hi,

ich hab das Script von eknori mal auf die Schnelle getestet. Es läuft problemlos wenn Notes gestartet ist. Andernfalls kommt es zu einer Fehlermeldung bei der Zeile set doc = db.CreateDocument.

Das liegt aber daran, dass beim Notes-Start ein Passwort eingegeben werden muss. Irgendwo hab ich mal gelesen, wie man auch das Passwort übergeben kann. Hab's auf die Schnelle aber nicht gefunden.

Kann es sein, dass dein Notes nicht auber registriert ist ? Schau mal in der Registry ob es unter HKEY_CLASSES_ROOT einen Eintrag Notes.NotesSession gibt. Darunter muss es einen weiteren Schlüssel mit Namen CLSID geben.

Axel
Titel: Re:VBA Script für senden an Notes
Beitrag von: markoii am 21.01.03 - 19:47:46
das mit der CLSID war das Problem habe Notes nochmal installiert und jetzt geht`s.

Super Danke euch für die tolle Hilfe ;D ;D ;D


möchte ja nicht lästig erscheinen aber wie sprech ich attachments an mit doc.attachment = hat es nicht geklappt naja ist auch nicht so schlimm bekomm ich schon irgendwie raus. ::) ::)
Titel: Re:VBA Script für senden an Notes
Beitrag von: ata am 21.01.03 - 20:36:50
... such mal in der Notes-Designer-Hilfe unter NotesEmbeddedObject...

ata
Titel: Re:VBA Script für senden an Notes
Beitrag von: markoii am 24.01.03 - 16:59:35
Hallo Leute ich hab doch noch was gefunden mit attachment-function :D :D

Sub NotesMail()

 
 Dim strEmpfaenger, strBetreff, strText, strcc, strbcc As String
 Dim strFile As String

 strEmpfaenger = "mail@mail.com"
 strBetreff = "Versandinfo"
 strText = "Test"
 strText = "Bitte beachten Sie ..."
 strFile = "D:\Test\test.doc" 'ActiveDocument.FullName
NotesMailSend strEmpfaenger, strBetreff, strText, strcc, _
 strbcc, strFile
 End Sub



Function NotesMailSend(strEmpfaenger As Variant, strBetreff As Variant, _
strText As Variant, strcc As Variant, strbcc As Variant, strFilename As String)

' Dimensionierung der Objektvariablen
Dim objNotes As Object, objNotesDB As Object, objNotesMailDoc As Object
Dim SendItem, NCopyItem, BlindCopyToItem, i As Integer, rtitem
Dim msg As String
'
' Zuweisung der Objektvariablen
'On Error GoTo ExitF
Set objNotes = GetObject("", "Notes.Notessession")
Set objNotesDB = objNotes.GETDATABASE("", "")
' Öffnen der Standard-Maildatenbank / Erstellen neues Maildokument
Call objNotesDB.OPENMAIL
Set objNotesMailDoc = objNotesDB.CreateDocument
objNotesMailDoc.form = "Memo"
Call objNotesMailDoc.Save(True, False)
Set SendItem = objNotesMailDoc.APPENDITEMVALUE("SendTo", "")
Set NCopyItem = objNotesMailDoc.APPENDITEMVALUE("CopyTo", "")
Set BlindCopyToItem = objNotesMailDoc.APPENDITEMVALUE("BlindCopyTo", "")
objNotesMailDoc.SendTo = strEmpfaenger
objNotesMailDoc.Subject = strBetreff
Set rtitem = objNotesMailDoc.CREATERICHTEXTITEM("Body")
objNotesMailDoc.Body = strText
rtitem.ADDNEWLINE (1)
Call rtitem.EMBEDOBJECT(1454, "", strFilename)
' Mail zustellen
Call objNotesMailDoc.Save(True, False)
Call objNotesMailDoc.send(False)
objNotesMailDoc.RemoveItem ("DeliveredDate")
Call objNotesMailDoc.Save(True, False)
' Nachricht an Benutzer
msg = "Die E-Mail wurde erfolgreich versendet!"
MsgBox msg, vbInformation, "Notesmail versenden..."
' Objektvariablen zurücksetzenCall
objNotes.Close
objNotes.Quit    
Set objNotes = Nothing
ExitF:
End Function



grüsse