Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: gfunkus am 06.10.04 - 11:59:03

Titel: mit VB Mails generieren...
Beitrag von: gfunkus am 06.10.04 - 11:59:03
Hi, hat wer ne Idee wie ich über VB ne Mail verschicken kann ohne den Client zu öffnen? Hab da nen Code für VB der allerdings nur läuft wenn der Client gestartet ist. Hat wer Ideen? Biespiel ? Links? Tips?

Danke !
Titel: Re: mit VB Mails generieren...
Beitrag von: Marinero Atlántico am 06.10.04 - 12:10:42
in www.redbooks.ibm.com nach "com together" suchen.
Damit kannst du dich von VB aus direkt mit einer Notes Datenbank auf dem Server verbinden, benötigst also keinen Client.
Titel: Re: mit VB Mails generieren...
Beitrag von: gfunkus am 06.10.04 - 13:46:06
Ist es denn zwanghaft notwendig den NotesClient gestartet zu haben um die COM Schnittstelle zu nutzen?

Habe in dem redbook 3 Arten der Authentifizierung gefunden.
Aber selbst wenn sie funktionieren würden, würde er den Notesclient öffnen... das würde ich gerne verhindern über eine Connection im Hintergrund...
Titel: Re: mit VB Mails generieren...
Beitrag von: Marinero Atlántico am 06.10.04 - 13:54:50
Habs länger nicht mehr gemacht.
Wenn mich nicht absolut alles täuscht, muss Notes installiert aber nicht unbedingt gestartet sein.
Aus einer Windows-Umgebung ist das die einfachste Option.
Du authentifizierst gegen den Server und es funktioniert.
Der Notes Client wird über diese com calls nicht geöffnet.

Gruß Axel
Titel: Re: mit VB Mails generieren...
Beitrag von: m3 am 06.10.04 - 14:19:00
Meiner Erfahrung nach wird bei com der Client immer im Hintergrund gestartet,
Ohne Client-Start geht es AFAIK nur mit der C-API. Keine Ahnung ob und wie man die auch mit VB nutzen kann.
Titel: Re: mit VB Mails generieren...
Beitrag von: gfunkus am 06.10.04 - 14:36:14
Also mit dem Code hier passiert es aber... er startet den Client. Was mache ich falsch? Kann wer helfen?


Public Sub SendNotesMail(Subject As String, Attachment As String, Recipient As String, BodyText As String, SaveIt As Boolean)
'Set up the objects required for Automation into lotus notes
    Dim Maildb As Object 'The mail database
    Dim UserName As String 'The current users notes name
    Dim MailDbName As String 'THe current users notes mail database name
    Dim MailDoc As Object 'The mail document itself
    Dim AttachME As Object 'The attachment richtextfile object
    Dim Session As Object 'The notes session
    Dim EmbedObj As Object 'The embedded object (Attachment)
    'Start a session to notes
    Set Session = CreateObject("Notes.NotesSession")
    'Next line only works with 5.x and above. Replace password with your password
'    Session.Initialize ("passwort")
'Call Session.InitializeUsingNotesUserName("", "passwort")

    'Get the sessions username and then calculate the mail file name
    'You may or may not need this as for MailDBname with some systems you
    'can pass an empty string or using above password you can use other mailboxes.
    UserName = Session.UserName
    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
    'Open the mail database in notes
    Set Maildb = Session.GETDATABASE("", MailDbName)
     If Maildb.ISOPEN = True Then
          'Already open for mail
     Else
         Maildb.OPENMAIL
     End If
    'Set up the new mail document
    Set MailDoc = Maildb.CREATEDOCUMENT
    MailDoc.Form = "Memo"
    MailDoc.sendto = Recipient
    MailDoc.Subject = Subject
    MailDoc.Body = BodyText
    MailDoc.SAVEMESSAGEONSEND = SaveIt
    'Set up the embedded object and attachment and attach it
    If Attachment <> "" Then
        Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
        Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
        MailDoc.CREATERICHTEXTITEM ("Attachment")
    End If
    'Send the document
    MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder
    MailDoc.SEND 0, Recipient
    'Clean Up
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachME = Nothing
    Set Session = Nothing
    Set EmbedObj = Nothing
End Sub
Titel: Re: mit VB Mails generieren...
Beitrag von: Marinero Atlántico am 06.10.04 - 14:46:59
@gfunkus.
Das verunsichert mich jetzt etwas.
Versuch bitte mal eine ganz einfache Funktion.
(ein doc in einer Testdatenbank abspeichern).

Ich bin mir nach wie vor sehr sicher, dass da kein Client gestartet wird.
Mit Java kann man ja auch auf Notes zugreifen, ohne dass der Client gestartet wird.
Mit 6.5 gibt es ausserdem noch Webservices als zusätzliche remote Technologie.

Gruß Axel
 
Titel: Re: mit VB Mails generieren...
Beitrag von: gfunkus am 06.10.04 - 15:16:43

Ab derm Set Session fängt der Rechner schon an den Notesclient zu starten.

Evtl. habe ich die Domino Objects nicht richtig referenziert???
Habe in meinem Projekt unter Verweise die domobj.tbl eingebunden... muss ich unter globals evtl nochwas angeben???
Ich habe probleme in der Zeile:

Session.Initialize ("password")

da bekomme ich ne Fehlermeldung. Das das object unterstützt Eigenschaft oder Methode nicht????
Titel: Re: mit VB Mails generieren...
Beitrag von: koehlerbv am 06.10.04 - 15:20:58
Du kannst prinzipiell kein Passwort für eine Notes-ID übergeben.

Bernhard
Titel: Re: mit VB Mails generieren...
Beitrag von: gfunkus am 06.10.04 - 15:26:05
Ohne Authentifizierung also ohne Client, kann ich dann wahrscheinlich auch keinen Connect aufbauen sprich ohne aktiven Notes Client kann es njicht laufen ... oder???
Titel: Re: mit VB Mails generieren...
Beitrag von: Don Pasquale am 06.10.04 - 15:32:14
@gfunkus,

um mittels VB und DOM eine Mail zu generieren, benötigst Du
einen Lotus Notes Client. Er braucht aber nicht gestartet zu sein.
Du benötigst ihn deshalb, um eine Session zu erstellen
also hierfür:

Set LNSession = New NotesSession
Call LNSession.Initialize(strPassword)

Um das Passwort zu prüfen, muß die ID Datei für das Programm errreichbar sein ( der Pfad hierfür steht in Notes.ini).

Fang bitte mal klein an, dann können wir Dir hier helfen.
Es gibt keinen Grund in Panik auszubrechen, kontrolliere
bitte die domobj.tlb auf Existenz und in Deiner VB Projekt
ob das Domino Object Modell eingebunden ist.
Ciao
Don Pasquale
Titel: Re: mit VB Mails generieren...
Beitrag von: gfunkus am 06.10.04 - 15:51:26
Bei = NEW Session sagt er "Ungültige Verwendung des Schlüsselwortes NEW"
Titel: Re: mit VB Mails generieren...
Beitrag von: Don Pasquale am 06.10.04 - 16:03:43
Hast Du überhaupt LotusScript eingebunden ?
Gibt mal alle Zeilen aus Deiner vbp Datei die mit Reference anfangen
Ciao
Don Pasquale
Titel: Re: mit VB Mails generieren...
Beitrag von: gfunkus am 06.10.04 - 16:17:09
Wie gesagt sobald ich die Zeile

Set Session = CreateObject("Notes.NotesSession")

ausführe poppt der Lotus Client hoch.

Set Session = NEW NotesSession

ist irgendwie nicht möglich. Siehe posting oben...
Titel: Re: mit VB Mails generieren...
Beitrag von: koehlerbv am 06.10.04 - 16:20:47
Nö, siehe Du mal "Posting oben" (von Don Paquale).

Und zieh' Dir den Fred mal 'rein - der könnte weiterhelfen:
http://www.atnotes.de/index.php?topic=17289.0

Bernhard
Titel: Re: mit VB Mails generieren...
Beitrag von: Don Pasquale am 06.10.04 - 16:25:17
@gfunkus,

FANG KLEIN AN, oder wie marinero es ausdrückte,
mit irgendetwas einfachem. Und dann poste nochmal den gesamten Code, aber bitte ohne die dutzende Remarks.
Dann fangen wir von vorne an.

Ciao
Don Pasquale



Titel: Re: mit VB Mails generieren...
Beitrag von: gfunkus am 14.10.04 - 10:14:47
Hier mal was kleines...

Private Sub sendetest()
 Dim s As NOTESSESSION
   
    Set s = CreateObject("Notes.NotesSession")
    Call s.Initialize
    MsgBox s.COMMONUSERNAME

End Sub

Wie schon gesagt, ab der Stelle CrwateObject lädt mein Windoofs den Notesclient.
Aber genau das will ich nicht... ihr meintet es geht auch ohne gestarteten NotesClient. Aber woher zieht er mein Passwort?
Titel: Re: mit VB Mails generieren...
Beitrag von: koehlerbv am 14.10.04 - 10:28:33
Die Passwortabfrage realisiert der in das VB-Programm eingebundene Teil von Notes. Er wird bei CreateObject ausgeführt.

Bernhard
Titel: Re: mit VB Mails generieren...
Beitrag von: gfunkus am 14.10.04 - 10:42:13
Und welche Möglichkeit gibt es dann dies Note Session zu starten ohne das der Notesclient sichtbar geladen wird?
kann man keine Session im Backend aufmachen und das Passwort mit der Anwendung übergeben? Kann man den Notesclient dann nicht irgendwie visible=false setzen???
Titel: Re: mit VB Mails generieren...
Beitrag von: koehlerbv am 14.10.04 - 10:46:20
Notes erlaubt es prinzipiell nicht, Passwörter irgendwie automatisiert zu übergeben. Dies ist ein wesentlicher Sicherheitsaspekt.

Bernhard
Titel: Re: mit VB Mails generieren...
Beitrag von: gfunkus am 14.10.04 - 11:40:20
Also kann man man auch nicht ohne den offenen Notesclient mit einer externen Anwendung auf  Notes zugreifen.
Dies würde ja dann der Aussage einiger Mitglieder hier wiedersprechen. Denn diese schriebn in den vorgigen Posts das es möglich sei ohne den offenen NotesClient. Wie soll das gehen???

Hat wer evtl. nen Stück Code wie man direkt eine Mail mit VB an einen SMTP Relay schickt?
Titel: Re: mit VB Mails generieren...
Beitrag von: Marinero Atlántico am 14.10.04 - 11:56:47
Natürlich. Und zwar mit Java und com und ab 6.5 auch mit Webservices.
Die für den Remote Zugriff von Notes für Java und Com mitgelieferten Klassen greifen dabei auf die user.id Datei zu (ausser Corba, glaub ich).

Wie bereits von Don und mir mehrfach gesagt, braucht der Notes Client nicht offen zu sein.
Titel: Re: mit VB Mails generieren...
Beitrag von: koehlerbv am 14.10.04 - 12:16:00
Auch ich habe nicht behauptet, der Client müsse offen sein - ich sehe das genauso wie Axel und Don.

Bernhard
Titel: Re: mit VB Mails generieren...
Beitrag von: Semeaphoros am 14.10.04 - 22:06:24
Ich habe den Eindruck, dass hier Missverständnisse mit Begriffen umherschwirren: man beachte: Offen und gestartet sind unterschiedliche Begriffe. Damit man Notes nutzen kann, muss der Client zwar gestartet, aber nicht offen sein. Und das Starten passiert eigentlich automatisch, sobald die nlnotes.dll angezogen wird.
Titel: Re: mit VB Mails generieren...
Beitrag von: koehlerbv am 14.10.04 - 22:40:43
Genau, Jens. nlnotes.dll muss laufen (wie eine Art "lokaler Notes-Server" im Sinne von "dieser übernimmt jetzt die Anfragen Notes-spezifischer Art"), und das heisst noch lange nicht, dass hierfür ein kompletter Notes-Client erscheinen muss.

Ich befürchte, dass die Einbindung der Notes-Objekte in das VB-Projekt unvollständig ist. Da ich da ja selber schon mal tierisch darauf hereingefallen bin, möchte ich "gfunkus" (oder wie immer er wirklich heisst ...) nochmal dringend auf den von mir geposteten Link hinweisen.

Bernhard
Titel: Re: mit VB Mails generieren...
Beitrag von: Semeaphoros am 14.10.04 - 23:09:49
Das ist sehr wahrscheinlich, dass da ein Konfigurations- oder Installationsproblem vorliegt, wäre typisch für die Erscheinung
Titel: Re: mit VB Mails generieren...
Beitrag von: Marinero Atlántico am 15.10.04 - 09:23:59
Ich glaub die user.id mit der zugegriffen werden soll muss sich in der PATH-Umgebungsvariable des OS befinden.
Titel: Re: mit VB Mails generieren...
Beitrag von: Glombi am 15.10.04 - 13:15:25
Es ist die User-ID, die in der NOTES.INI unter
  KeyFileName=...
eingetragen ist.
Die NOTES.INI wird zunächst im Arbeitsverzeichnis/Programmverzeichnis und dann im PATH gesucht.

Andreas
Titel: Re: mit VB Mails generieren...
Beitrag von: Ralf_M_Petter am 18.10.04 - 10:22:05
@koehlerbv Wo hast du diese Information her. Aus der Domino Designer Hilfe nicht, denn dort ist explizit beschrieben wie man ein Password an Notes übergibt. Was soll das auch für ein Sicherheitsfeature sein.

@gfunkus Warum schreibst du eigentlich notes.Notessession. Laut Designer Hilfe soll es Lotus.Notessession heissen.

Falls du nicht zusammenkommst poste es nochmal und ich schaue mal, hatte ein altes Projekt wo ich das schon mal gemacht habe und hat einwandfrei funktioniert.

Grüße

Ralf
Titel: Re: mit VB Mails generieren...
Beitrag von: gfunkus am 20.10.04 - 16:04:04
Kannst du mir das Projekt evtl. mal schicken?

gfunkus@web.de

Danke.

Titel: Re: mit VB Mails generieren...
Beitrag von: Ralf_M_Petter am 21.10.04 - 08:26:14
Hallo Gfunkus!

Sorry, aber ich darf Source Code von unserer Firma nicht weitergeben, aber ich habe schnell ein Beispiel geschrieben für die Initialisierung der Session. funktioniert einwandfrei. Hier ist der Code

Dim session As New NotesSession
Dim db As NotesDatabase
Call session.Initialize("yourPwd")
Set db = session.GetDatabase("Servername", "mail/rpetter.nsf")
Msgbox db.FileName


Dein Fehler ist die Verwendung von Notes.Notessession denn das ist für OLE und nicht für den Zugriff im Hintergrund. Probiere diesen Code mal in dem Click Ereignis einer Schaltfläche und poste dann das Ergebnis.

Grüße

Ralf


Titel: Re: mit VB Mails generieren...
Beitrag von: Ralf_M_Petter am 22.10.04 - 09:54:52
Hallo Gfunkus!

Also sehr wichtig, scheint dir das Problem ja nicht zu sein. Ich finde das mindeste wäre wenn ich schon Hilfe bekomme, dass ich auf die Hilfe auch zeitgerecht antworte und nicht Tage dazwischen vergehen lasse.

Grüße

Ralf