begin process at 2010 02 10 12:04:10
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > ENVOI DE MAIL SIMPLE AVEC LOTUS NOTES - VB

ENVOI DE MAIL SIMPLE AVEC LOTUS NOTES - VB


 Information sur la source

Note :
10 / 10 - par 4 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Classé sous :Lotus Notes, Visual Basic, Envoi Mail Niveau :Initié Date de création :17/12/2004 Date de mise à jour :04/02/2009 12:38:09 Vu :9 018

Auteur : Drouzig

Ecrire un message privé
Site perso
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 Description

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

Source

  • ' 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
' 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


 Historique

04 février 2009 12:38:09 :
Suppression d'adresse mail perso dans le code (c'est malin...)

 Sources du même auteur

AUTENTIFICATION (LOGIN + PASSWD) SUR UN DOMAINE WINDOWS NT

 Sources de la même categorie

Source avec Zip Source avec une capture UPLOAD FTP VB 6 par Onin42
Source avec Zip Source avec une capture Source .NET (Dotnet) FAVORIS URL par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) DEVSSH CLIENT SFTP/SSH par iblsysteme
Source avec Zip Source avec une capture CONNEXION RÉSEAU par ABUMAI
Source avec Zip CSOCKET - REMPLACEZ WINSOCK PAR LA VERSION 2 DES API par Renfield

 Sources en rapport avec celle ci

PROGRAMME POUR AFICHER LA LONGITUDE ET LA LATITUDE, LA DATE ... par bentiti31
Source avec Zip Source avec une capture MORPION SOLITAIRE par palarcon
GÉNÉRATEUR DE MAIL LOTUS NOTES AVEC MISE EN FORME VIA UNE SY... par 8Tnerolf8
Source avec Zip Source avec une capture Source .NET (Dotnet) MYSNIPPET-GÉRER VOS CODES SNIPPETS par simo5963
Source avec Zip Source avec une capture PROGRAMME VB6.0 // JEU DE SYLABLE JAPONAISES. par Tesan

Commentaires et avis

Commentaire de jack le 17/12/2004 19:07:39 administrateur CS

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 ?

Commentaire de Golog le 18/12/2004 13:37:04

Joli , tres bien commenté ! 10/10

Commentaire de Drouzig le 20/12/2004 10:59:58

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

Commentaire de jack le 20/12/2004 12:39:56 administrateur CS

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.

Commentaire de Welsoft le 28/12/2004 11:39:10

Tout samplement j aim pas les source q pas de zip !

Commentaire de Eldyru le 20/01/2005 22:43:31

Bonjour,

Un petit problème avec cette source... Elle ne fonctionnne pour moi que si dans les destinataires du mail je ne mets qu'une seule entrée.
Lorsque que j'en mets plusieurs, séparées par ", " comme lorsque je tape mon mail, j'ai une erreur me disant que lotus ne parvient pas à trouver le destinataire dans le carnet d'adresse...
Donc la question : comment rentrer plusieurs noms d'affiler ?

Commentaire de Drouzig le 21/01/2005 09:48:51

Hello,
peut-être as-tu déjà trouvé la solution, c'est pas très complexe : au lieu de passer une simple chaîne de caractères pour le destinataire à notre fonction d'envoi de mail, on va lui passer un tableau.
L'en-tête de la fonction devient ainsi :

Public Sub SendNotesMail(Recipient() As Variant, SaveIt As Boolean, Optional Subject As String, Optional BodyText As String)

...

End Sub

Et dans ta partie de code qui appelle cette fonction, il te faudra définir ton tableau de destinataires :

Dim tabDestinataire(10) as Variant ' taille arbitraire, ça se change dynamiquement au besoin

tabDestinataire(0) = "adresse1"
...
tabDestinataire(9) = "adresse9"


Good luck !

Drouzig Chat



Commentaire de Eldyru le 21/01/2005 15:24:08

Arf ! marchi bien , ça marche tip top...

Commentaire de ichtawn le 14/04/2005 00:22:34

salut tt le monde , je suis entrain de developper  une application en VB qui va me permetre d'extraire des dnnées de la base du document lotus notes ( surtout le document Email) , et envoyer des email a cette base du document , mais je suis vraiment bloquer  , si vous avez qlq chose pour m'aider !!!!!! merci d'avance !!!!!

Commentaire de julien_u le 04/07/2006 16:55:18

Est ce que cette fonction peut être facilement transformable en VBS ?

Merci !

Commentaire de The6L20 le 04/12/2006 15:50:58

bonjour,

je cherche a envoyer des mails avec une piece jointe a partir d'acces dans lotus, j'ai reussi a faire pour que mon etat je mette en piece jointe, pour mettre mes destinaitaire, mais aujourd'hui on me demande que le message qui est toujours le meme pour tous les mails cree(insere directement dans le module) soit mis en page, et je n'arrive pas a trouver une aide concluente la dessus! help!

merci

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales