Envoi de mail simple avec lotus notes - vb

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 576 fois - Téléchargée 39 fois

Contenu du snippet

Fonction à inclure dans un projet - utilise les objets Lotus Domino pour envoyer un mail tout simple (param : destinataire, sujet, contenu du mail)

Source / Exemple :


' Faire une liaison vers les objets "Lotus Domino Objects"
' ex d'utilisation :
' SendNotesMail("drouzig@free.fr", False, "Joli sujet", "Ceci est le texte de mon mail !")
Public Sub SendNotesMail(Recipient As String, SaveIt As Boolean, Optional Subject As String, Optional BodyText As String)

    ' Initialisation des objets
    Dim domSession As New Domino.NotesSession
    Dim domDatabase As New Domino.NotesDatabase
    Dim domDocument As NotesDocument
    Dim strMailDbName As String

On Error GoTo End_Error

    ' Initialisation de la session Notes - utilisez votre password dans le cas d'un fichier ID protégé
    ' Le paramètre est à supprimer dans le cas contraire
    domSession.Initialize ("********")
    
    
    ' Le chemin est soit relatif si la base est sur le serveur, soit absolu si elle est en local
    strMailDbName = "U:\Lotus\Notes\Data\base.nsf"
    
    ' Récupération de la base de courrier en fonction du nom
    Set domDatabase = domSession.GetDatabase(domSession.ServerName, strMailDbName, False)
    
    ' Ouverture de la base si un client ne l'a pas déjà fait
    If Not domDatabase.IsOpen = True Then
        domDatabase.Open
    End If
    
    ' Création du mail à envoyer
    Set domDocument = domDatabase.CreateDocument
    ' Définition du type de document
    domDocument.AppendItemValue "Form", "Memo"
    ' Définition du sujet
    domDocument.AppendItemValue "Subject", Subject
    ' Définition du corps du mail
    domDocument.AppendItemValue "Body", BodyText
    ' Définition de la date d'envoi
    domDocument.AppendItemValue "PostedDate", Now()
    ' Sauvegarde ou non du mail à l'envoi
    domDocument.SaveMessageOnSend = SaveIt
    ' Envoi du mail
    ' Attention, Recipient doit toujours être renseigné sous peine d'exception
    domDocument.Send 0, Recipient
    
    ' Libération des objets
    Set domDocument = Nothing
    Set domDatabase = Nothing
    Set domSession = Nothing

    Exit Sub
    
End_Error:
    ' Traitement éventuel de l'exception
    MsgBox ("Erreur : " & Err.Number & "; " & Err.Description)
End Sub

Conclusion :


Commentaires bienvenus, bien sûr.
Merci à tous ceux qui contribuent, ça aide de temps à autres ;)

Drouzig Chat

A voir également

Ajouter un commentaire Commentaires
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 déc. 2004 à 19:07
Salut Drouzig
(bizarre ce 10 sans commentaire ... bref)

Puisque tu as l'air de connaitre Lotus Notes (LN), cette petite question :
Je cherche un moyen d'ouvrir la messagerie LN comme si je voulais préparer un nouveau message, mais sans l'envoyer, juste qu'il ouvre un nouveau mémo avec les paramètres que je lui passe : Destinataire et objet.
Saurais-tu comment faire, car excepté la commande Send, je n'ai rien trouvé d'autre ?
Golog Messages postés 224 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 22 décembre 2009
18 déc. 2004 à 13:37
Joli , tres bien commenté ! 10/10
Drouzig Messages postés 3 Date d'inscription vendredi 17 décembre 2004 Statut Membre Dernière intervention 5 décembre 2005
20 déc. 2004 à 10:59
Salut Jack,
si j'ai bien compris ce que tu cherches à faire, la fonction suivante devrait t'aider. Malheureusement, si ta base de mails est protégée par mot de passe, celui-ci te sera demandé pendant l'exécution, je n'ai pas creusé plus que ça, je pense qu'on doit pouvoir régler ce pb de password popup...

Drouzig Chat


Private Sub PrepareNotesMemo(ByVal Recipient As String, ByVal Subject As String, ByVal Memotext As String)

' L'objet client Notes
Dim nlWkspace As Object
' L'objet NotesDocument
Dim nlDoc As Object
Dim strMailDbname As String

' Chemin absolu obligatoirement
strMailDbname = "U:\Lotus\Notes\Data\drouzigchat.nsf"

' Ouverture du client Lotus Notes
Set nlWkspace = CreateObject("Notes.NotesUIWorkspace")

' Ouverture de la base de courrier
' Demande le mot de passe de la base le cas échéant
nlWkspace.ADDDATABASE "", strMailDbname
nlWkspace.OPENDATABASE "", strMailDbname

' Création d'un nouveau mémo
Set nlDoc = nlWkspace.COMPOSEDOCUMENT("", strMailDbname, "Memo")

' Ecriture des différents champs du mémo
nlDoc.INSERTTEXT (Recipient)
nlDoc.FIELDSETTEXT "Subject", Subject
nlDoc.FIELDSETTEXT "Body", Memotext
nlDoc.Refresh

' Ne pas oublier de détruire les objets
' Set nlDoc = Nothing
' Set nlDb = Nothing
' Set nlWkspace = Nothing

End Sub
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 déc. 2004 à 12:39
Merci beaucoup Drouzig
Voilà de nouveaux horizons pour moi ! Cool, je connaissait pas le ComposeDocument : je m'en va essayer ça dès que je pourrais.
Welsoft Messages postés 11 Date d'inscription jeudi 11 novembre 2004 Statut Membre Dernière intervention 28 décembre 2004
28 déc. 2004 à 11:39
Tout samplement j aim pas les source q pas de zip !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.