VB et Lotus Notes

francois_houde Messages postés 2 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 6 avril 2006 - 5 avril 2006 à 20:21
francois_houde Messages postés 2 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 6 avril 2006 - 6 avril 2006 à 14:42
Bonjour à tous, à l'endroit où je travaille, nous avons une application qui permet d'envoyer automatiquement un courriel Notes au support technique. De cette manière nous pouvons savoir immédiatement les problèmes rencontrés et les corriger le plus rapidement possible.

Ceci étant dit, le seul problème auxquel nous faisons face actuellement c'est que le bout de code qui gère l'envoi par Lotus Notes plante lorsque Lotus Notes n'est pas ouvert. Donc nous devons trouver le moyen de faire ouvrir Notes (à faire) , envoyer le courriel (déjà fait) et de fermer Notes (à faire).

Nous sommes en VB6 et Lotus Notes 6.5

Merci à tous et bonne journée

François

2 réponses

FMatrix07 Messages postés 233 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 21 février 2009 2
6 avril 2006 à 07:20
bonjour as tu essayé un truc du genre

Option Explicit
Private Session As New NotesSession
Private dir As NotesDbDirectory
Private db As NotesDatabase
Private View As NotesView
'Chargement soft
Private Sub Form_Load()
DoEvents
'Session.Initialize ' permet de lancer la session Lotus mais il faut saisir le mot de pass
'Session.Initialize "TOTO" ' permet de lancer la session Lotus et saisir le mot de pass "TOTO" en automatique
Session.Initialize "TOTO"
Set dir = Session.GetDbDirectory("")
Set db = dir.OpenMailDatabase
Set View = db.GetView("($inbox)")
End Sub

'Fermeture soft
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Set doc = Nothing
Set View = Nothing
Set db = Nothing
Set dir = Nothing
Set Session = Nothing
End Sub

SCCréat
0
francois_houde Messages postés 2 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 6 avril 2006
6 avril 2006 à 14:42
J'utilise le code suivant. Par contre si mon Lotus Notes n'est pas ouvert j'ai une erreur à la ligne :

Set oSession = New NotesSession

Merci

En passant le code source je l'ai pris à quelque part sur ce site.
========================================================
'//TRES IMPORTANT: il faut faire un regsrv de la Dll de Notes qui n'est pas forcément identifié par VB
'(ex: DEMARRER > EXECUTER puis "regsrv32 C:\progra~1\Lotus\Notes\nlsxbe.dll" (modifier en fonction du chemin de votre
'lotus)

'//AJOUTER LA REFERENCE SUIVANTE ("projet > reference"): LOTUS DOMINO OBJECTS (qui correspond à domobj.tbl)
'*************************************************************************************************************
Function prvSendNotesMail(Subject As String, Attachment As String, Recipient As String, BodyText As String, SaveIt As Boolean) As Boolean
'*********************************************
'Repris et développé par EvilGost
'Subject: Sujet du mail / Attachment: Chemin complet du fichier à attacher (ex: "C:\test.txt"), sinon, mettre "" /
'Recipient: Destinataire (ex: "[mailto:jeanlouis@wanadoo.fr jeanlouis@wanadoo.fr]") / Bodytext: Texte du mail / SaveIt: sauvegarde du mail dans les courriers envoyés
'*************************************************************************************************************
'Set up the objects required for Automation into lotus notes
Dim Maildb As NotesDatabase 'The mail database
Dim UserName As String 'The current users notes name
Dim MailDoc As Object 'The mail document itself
Dim AttachME As Object 'The attachment richtextfile object
Dim oSession As NotesSession
Dim dbDirectory As NotesDbDirectory
Dim EmbedObj As Object 'The embedded object (Attachment)

On Error GoTo ErrHandle

Set oSession = New NotesSession
'Démarre une session de notes
'La ligne suivante ne marche qu'avec les versions 5.x et 6.x , c'est l'injection du mot de passe

oSession.Initialize ("Mot de passe")

'Récupère le nom par défaut de la session
UserName = oSession.UserName

'Ouvre la base mail en utilisant le serveur par défaut
Set dbDirectory = oSession.GetDbDirectory("") 'vous pouvez mettre l'adresse du serveur dans ces parentheses
Set Maildb = dbDirectory.OpenMailDatabase

'Création du formulaire d'envoi de mail
Set MailDoc = Maildb.CreateDocument()

MailDoc.AppendItemValue "Subject", Subject 'remplissage du Sujet
MailDoc.AppendItemValue "SendTo", Recipient 'si vous passer un tableau de string() en paramètre, vous pouvez mettre plusieurs destinataire (ex: Recipient(2))
MailDoc.AppendItemValue "Body", BodyText 'Corps du mail

'Permet d'attacher un document au mail
If Attachment <> "" Then
Set AttachME = MailDoc.CreateRichTextItem("Attachment")
Set EmbedObj = AttachME.EmbedObject(1454, "", Attachment, "Attachment")
End If

'Envoi le document

If SaveIt = True Then
MailDoc.SaveMessageOnSend = SaveIt 'si à True, Lotus sauvegarde le mail envoyé
End If

Call MailDoc.Send(False) 'j'obtiens une erreur lorsque je mets true au lieu de false, si quelqu'un sait pourquoi

prvSendNotesMail = True
GoTo ExitHandle

ErrHandle:
MsgBox Err.Description
prvSendNotesMail = False

ExitHandle:
'Vidage mémoire
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set oSession = Nothing
Set dbDirectory = Nothing
Set EmbedObj = Nothing
End Function
0
Rejoignez-nous