Sub EnvoiMail()
' Ajouter la référence Lotus Domino Objects (domobj.tlb)
Dim EMailPJ As String
Dim Email(3) As String
EMailPJ = "C:\Excel\1-Developpement\VBA\Mail Lotus\Envoi Mail par Lotus.xls"
Email(1) = "erenaud@deutsch.net"
Email(2) = "support@ericrenaud.fr"
Email(3) = "erenaud@orange.fr"
' Boucle pour envoyer les mails
For Z = 1 To 3
Application.StatusBar = "Envoi du mail à " & Email(Z)
EnvoiRef = prvSendNotes("Envoi auto d'un mail depuis Lotus Notes v.7", EMailPJ, Email(Z), SaveIt:=False)
Next Z
End Sub
[COLOR="yellow"]Function prvSendNotes(Subject As String, Attachment As String, Recipient As String, SaveIt As Boolean) As Boolean[/COLOR] '*********************************************
' * Cocher la référence Lotus Domino Objects dans Outils, Références
' /////////////////////////////////////////////////////////////////////////
' * Modifier la ligne en remplaçant par le nom du Serveur Domino utilisé :
' Set dbDirectory = oSession.GetDbDirectory("EVREUX01/DEUTSCH")
' /////////////////////////////////////////////////////////////////////////
' * Mettre le mot de passe adapté dans la ligne :
' oSession.Initialize ("password")
' /////////////////////////////////////////////////////////////////////////
' Repris et développé par EvilGost
' Adapté par Eric RENAUD
' Subject: On met le sujet du mail
' Attachment: Chemin complet du fichier à attacher (ex: "C:\Excel\Test.xls"), sinon, mettre ""
' Recipient: Destinataire (ex: "support@ericrenaud.fr")
' Bodytext: Texte du mail
' SaveIt: Sauvegarde du mail dans les courriers envoyés
'*************************************************************************************************************
'Set up the objects required for Automation into lotus notes
[COLOR="royalblue"]Dim Maildb As NotesDatabase [/COLOR]'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)
Dim maDate As String
maDate = Format(Date, "dd-mm-yy")
Dim objNotesField As Object
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 ("password")
'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("EVREUX01/DEUTSCH") '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
MailDoc.AppendItemValue "ReturnReceipt", "1" ' pour avoir un accusé réception (qu'avec des clients Lotus, Orange)
Set objNotesField = MailDoc.CreateRichTextItem("Body")
With objNotesField
.AppendText " Fichier Excel avec la fonction Envoi mail par Lotus V7"
.AddNewLine 2
.AppendText "*************************************************************************************************"
.AddNewLine 2
.AppendText "Ce message a été envoyé avec le fichier que j'ai joint."
.AddNewLine 2
.AppendText "Le fichier Envoi mail par Lotus du : " & Date & " à " & Time
.AddNewLine 2
.AppendText "est en pièce jointe"
.AddNewLine 2
.AppendText "--------------------------------------------------------------------------------------------------"
.AddNewLine 2
.AppendText "Cet e-mail a été généré par un processus automatique."
'.APPENDTEXT "Please follow established contact " & _
"procedures should you have any questions."
.AddNewLine 2
.AppendText "Cordialement"
.AddNewLine 1
.AppendText "Eric RENAUD"
.AddNewLine 1
End With
'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