Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Envoi d'un mail - Messagerie Lotus Notes

5 réponses
Avatar
Lolo
Bonjour
Une question en vba Excel que mon pauvre cerveau n'arrive à résoudre.
Je souhaite envoyer un E-Mail depuis une application Excel (2002 SP3)
développé en VBA. J'utilise actveworkbook.sendmail mais cela ne fonctionne
pas.

5 réponses

Avatar
Daniel.C
Bonjour.
Essaie le code suivant. Il faut exécuter la macro "Envoi" après avoir
modifié les champs.
La session Notes doit être ouverte et active.

Sub Envoi()
Dim Sujet As String, Corps As String, Desti As String
Dim CC As String, c As Range, PJ As String
Sujet = "Sujet du message"
Corps = "Corps du message"
CC = ""
Desti = ""
PJ = "c:tempsPieceJointe.xls"
SendNotesMail Sujet, Corps, Desti, CC, PJ
End Sub

Public Sub SendNotesMail(Sujet, Corps, Desti, CC, PJ)
'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 Corps_Msg As String ' text du courriel
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 ("password" )
'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.
''MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) -
InStr(1, UserName, " "))) & ".nsf"
''UserName = Session.UserName

''SearchString = Recipient
''SearchChar = "@"
''MyPos = InStr(1, SearchString, SearchChar, vbTextCompare)
''Destinataire = Left(SearchString, MyPos - 1)
'Open the mail database in notes
Set Maildb = Session.GETDATABASE("", "")
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 = Desti
MailDoc.Subject = Sujet
MailDoc.copyto = CC
'MailDoc.Body = Corps
Set MailCorps = MailDoc.CREATERICHTEXTITEM("Body")

With MailCorps
.ADDNEWLINE 1
.APPENDTEXT Corps
.ADDNEWLINE 2
End With

MailDoc.SAVEMESSAGEONSEND = True
'Set up the embedded object and attachment and attach it
Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
'AttachME.AppendText "toto"
Call AttachME.EMBEDOBJECT(1454, "", PJ, "Attachment")

'Send the document
MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items
folder
MailDoc.Send 0
'Clean Up
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj = Nothing

End Sub

Cordialement.
Daniel
"Lolo" a écrit dans le message de news:

Bonjour
Une question en vba Excel que mon pauvre cerveau n'arrive à résoudre.
Je souhaite envoyer un E-Mail depuis une application Excel (2002 SP3)
développé en VBA. J'utilise actveworkbook.sendmail mais cela ne fonctionne
pas.




Avatar
Lolo
Chapeau bas Môssieur,

Je copie le code envoyé fort a propos par vos soins,
Après les petite contrariété d'usage d'objet qui n'en font qu'a leurs têtes
je constant que cela fonctionne.
Et la, je me trouve toujours comme un enfant emmerveillé, surpris
C'est pour ça qu'on aime l'informatique non ?

Merci encore.


Bonjour.
Essaie le code suivant. Il faut exécuter la macro "Envoi" après avoir
modifié les champs.
La session Notes doit être ouverte et active.

Sub Envoi()
Dim Sujet As String, Corps As String, Desti As String
Dim CC As String, c As Range, PJ As String
Sujet = "Sujet du message"
Corps = "Corps du message"
CC = ""
Desti = ""
PJ = "c:tempsPieceJointe.xls"
SendNotesMail Sujet, Corps, Desti, CC, PJ
End Sub

Public Sub SendNotesMail(Sujet, Corps, Desti, CC, PJ)
'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 Corps_Msg As String ' text du courriel
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 ("password" )
'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.
''MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) -
InStr(1, UserName, " "))) & ".nsf"
''UserName = Session.UserName

''SearchString = Recipient
''SearchChar = "@"
''MyPos = InStr(1, SearchString, SearchChar, vbTextCompare)
''Destinataire = Left(SearchString, MyPos - 1)
'Open the mail database in notes
Set Maildb = Session.GETDATABASE("", "")
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 = Desti
MailDoc.Subject = Sujet
MailDoc.copyto = CC
'MailDoc.Body = Corps
Set MailCorps = MailDoc.CREATERICHTEXTITEM("Body")

With MailCorps
.ADDNEWLINE 1
.APPENDTEXT Corps
.ADDNEWLINE 2
End With

MailDoc.SAVEMESSAGEONSEND = True
'Set up the embedded object and attachment and attach it
Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
'AttachME.AppendText "toto"
Call AttachME.EMBEDOBJECT(1454, "", PJ, "Attachment")

'Send the document
MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items
folder
MailDoc.Send 0
'Clean Up
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj = Nothing

End Sub

Cordialement.
Daniel
"Lolo" a écrit dans le message de news:

Bonjour
Une question en vba Excel que mon pauvre cerveau n'arrive à résoudre.
Je souhaite envoyer un E-Mail depuis une application Excel (2002 SP3)
développé en VBA. J'utilise actveworkbook.sendmail mais cela ne fonctionne
pas.









Avatar
RENAUD Eric
Bonjour,
En complément au fil précédent, pour envoyer un mail avec Notes même FERME
voici du code que j'utilise tous les jours.
Il faut ne pas oublier de mettre le mot de passe dans le code ainsi que le
serveur Domino
Exemples :
oSession.Initialize ("password")
Set dbDirectory = oSession.GetDbDirectory("EVREUX01/DEUTSCH")

**********************************************************
Sub UseLotusClientsStock()
Dim Email(2) As String
Email(1) = ""
Email(2) = ""
For I = 1 To 2 EnvoiInfos = prvSendNotesStocks("MISE A JOUR
STOCKS Z400-Z600-Z900 (pour Util. libre et Ctrl Qualité) et Stock de
sécurité pour Réfs N-1 Airbus", "", Email(I), SaveIt:úlse)
Next I
End Sub
********************************************************

Function prvSendNotesStocks(Subject As String, Attachment As String,
Recipient 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: "")
'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)

Dim objNotesField As Object
' Dim Montexte As String
Madate = Format(Date, "dd-mm-yy")
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 'si vous passer un
tableau de string() en paramètre, vous pouvez mettre plusieurs destinataire
(ex: Recipient(2))
'Montexte = "Ceci est un exemple" '& vbLf & " avec saut de ligne"
'Montexte = Montexte & vbCr & "suite"
Set objNotesField = MailDoc.CreateRichTextItem("Body")

With objNotesField
.AppendText "MISE A JOUR STOCKS Z400-Z600-Z900 (pour Util. libre et
Ctrl Qualité) et Stock de sécurité pour Réfs N-1 Airbus"
.AddNewLine 2
.AppendText
"********************************************************************************************************************************"
.AddNewLine 2
.AppendText "La mise à jour des stocks Z400-Z600 et Z900 et stock de
sécurité a été effectuée le le : " & Date & " à " & Time
.AddNewLine 2
.AppendText " Vous retrouverez ces infos dans le fichier :"
.AddNewLine 2
.AppendText "V:COMMUNREPORTS spé issus de SAPReports en cours de
validationRéférentiel REPORT_GIF_NEW pour synthèse du " & Madate &
"-V0.xls"
.AddNewLine 2
.AppendText "Les colonnes concernées étant :"
.AddNewLine 1
.AppendText " - CT et CU pour Z400"
.AddNewLine 1
.AppendText " - CV et CW pour Z600"
.AddNewLine 1
.AppendText " - CX et CY pour Z900"
.AddNewLine 1
.AppendText " - U pour le stock de sécurité des Références N-1
Airbus"

.AddNewLine 2
.AppendText
"********************************************************************************************************************************"
.AddNewLine 2
.AppendText "Cet e-mail a été généré par un processus automatique."
.AddNewLine 2
.AppendText "Cordialement"
.AddNewLine 1
.AppendText "Eric RENAUD"
.AddNewLine 1
.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

prvSendNotesStocks = True
GoTo ExitHandle

ErrHandle:
MsgBox Err.Description
prvSendNotesStocks = 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






"Lolo" a écrit dans le message de news:

Bonjour
Une question en vba Excel que mon pauvre cerveau n'arrive à résoudre.
Je souhaite envoyer un E-Mail depuis une application Excel (2002 SP3)
développé en VBA. J'utilise actveworkbook.sendmail mais cela ne fonctionne
pas.




Avatar
RENAUD Eric
Re-bonjour,
Ne pas oublier d'ajouter la référence
Lotus Domino Objects

"Lolo" a écrit dans le message de news:

Bonjour
Une question en vba Excel que mon pauvre cerveau n'arrive à résoudre.
Je souhaite envoyer un E-Mail depuis une application Excel (2002 SP3)
développé en VBA. J'utilise actveworkbook.sendmail mais cela ne fonctionne
pas.




Avatar
Lolo
Merci beaucoup.
Le code est super.


Re-bonjour,
Ne pas oublier d'ajouter la référence
Lotus Domino Objects

"Lolo" a écrit dans le message de news:

Bonjour
Une question en vba Excel que mon pauvre cerveau n'arrive à résoudre.
Je souhaite envoyer un E-Mail depuis une application Excel (2002 SP3)
développé en VBA. J'utilise actveworkbook.sendmail mais cela ne fonctionne
pas.