Envoi d'un mail via Lotus Notes

Thierry37

XLDnaute Junior
Bonjour,

Afin de prévenir un ou plusieurs utilisateurs, j'aimerai trouver un code VBA qu me permettrai d'ouvrir un message Lotus Notes à partir d'un bouton Excel.
Le message serai prêt à être envoyer (Objet rempli).

ou bien, d'envoyer un message Lotus Notes automatiquement (Objet rempli) comme si on avait cliquer sur le bouton envoyer.

J'ai voulu utiliser ce code (qui fonctionne entre Access et Lotus notes) mais cela ne marche pas avec Excel.
Merci pour votre aide,
Cordialement.


' --------------------------------------------------
' ENVOYER UN MAIL DEPUIS ACCESS
' --------------------------------------------------
' Entrée : strEmail <- Adresse e-mail du destinataire
' strObj <- Objet du courrier
' strMsg <- Corps du message
' blnEdit <- True pour pouvoir modifier le courrier avant envoi
' False pour expédier le courrier directement.
'
Public Sub SendMail(ByVal strEmail As String, ByVal strObj As String, ByVal strMsg As String, ByVal blnEdit As Boolean)
On Error Resume Next
DoCmd.SendObject acSendNoObject, , , strEmail, , , strObj, strMsg, blnEdit
End Sub

' --------------------------------------------------
' TEST DE L'ENVOI DE MAIL
' --------------------------------------------------
'
Public Sub TestEmail()
Dim strDest As String ' L'adresse e-mail du destinataire
Dim strMessage As String ' Le corps du message

' Création du corps du message
'strMessage = "Voici un petit exemple illustrant la"
'strMessage = strMessage & vbCrLf & "la possibilité d'expédier un e-mail"
'strMessage = strMessage & vbCrLf & "depuis Microsoft Access."

' On demande l'adresse e-mail du destinataire
strDest = InputBox("Saisissez le prénom et le nom du destinataire, exemple : prénom.nom@donatir", "Messagerie Access", "@donatir")
If strDest = "" Then Exit Sub

' Envoi du message
SendMail strDest, _
"** Info Qualité - Suivi des signalements **", _
strMessage, _
True
End Sub
 

Thierry37

XLDnaute Junior
Re : Envoi d'un mail via Lotus Notes

J'ai regardé mais cela ne correspond pas à ce dont j'ai besoin et j'avoue que je ne comprend pas grand chose au code VBA qui est proposé pour pouvoir l'adapter.

Ce que je veux est assez simple je pense :
Juste qu'à partir du fichier excel mis à jour par un utilisateur, l'utilisateur puisse cliquer sur un bouton pour adresser un mail automatiquement qui m'informerait de la mise à jour du fichier.

Merci pour votre aide,
Cordialement.

Thierry
 

pintos

XLDnaute Nouveau
Re : Envoi d'un mail via Lotus Notes

Thierry, a priori tu n'as besoin que d'utiliser le mailto, comme ceci :

Sub envoi_mail()

adresse = "prenom.nom@entreprise.fr"
Sujet = "Mise à jour du fichier"

URLto = "mailto:" & adresse & "?subject=" & Sujet & "&body=" & msg
ActiveWorkbook.FollowHyperlink Address:=URLto


End Sub
 

Thierry37

XLDnaute Junior
Re : Envoi d'un mail via Lotus Notes

Bonjour Pintos, bonjour à tous,

Merci pour le code, en effet je n'arrivai pas à lancer Lotus Notes.
Cependant, j'aimerai pouvoir choisir un ou plusieurs destinataires or l'inscrire en dur dans le code n'est pas pratique.
Et une fois les destinataires renseignés qu'il n'y ait pas à aller dans Lotus pour envoyer le message. Plus précisément que l'envoi soit validé dans Excel.
Merci à tous pour votre aide car je suis novice en VBA et j'avoue que je ne trouve pas forcément le langage VBA très parlant...
Le temps du "What i see is what i do", "Ce que je vois est ce que je fais" que l'on pourrai traduire pour le VBA par "Le code que je vois est ce que je dis" est encore loin !!! ;-)

Merci pour votre aide et bonne journée,
Cordialement.

Thierry
 

RENAUDER

Nous a quitté
Repose en paix
Re : Envoi d'un mail via Lotus Notes

Bonjour,
Je vous joins un fichier Excel concernant l'envoi de mails par Lotus Notes v7.
J'utilise cette méthode tous les jours dans mon entreprise.
1 - Lotus n'a pas besoin d'être ouvert
2 - Le mot de passe est passé par le code VBA
3 - On crée une liste avec les destinataires (pas limité à condition de modifier la variable Dim Email(X) As String ou X correspond au nombre de destinataires déclarés.
Code:
    Dim Email(3) As String
    Email(1) = "[EMAIL="erenaud@deutsch.net"]erenaud@deutsch.net[/EMAIL]"
    Email(2) = "[EMAIL="support@ericrenaud.fr"]support@ericrenaud.fr[/EMAIL]"
    Email(3) = "[EMAIL="erenaud@orange.fr"]erenaud@orange.fr[/EMAIL]"
    EMailPJ = "C:\Excel\1-Developpement\VBA\Mail Lotus\Envoi Mail par Lotus.xls"
puis on fait une boucle d'envoi
Code:
    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

prvSendNotes étant la fonction d'envoi du mail
Code:
Function prvSendNotes(Subject As String, Attachment As String, Recipient As String, SaveIt As Boolean) As Boolean
(Vous trouverez tout dans le fichier joint)

Le programme envoie à tous les destinataires le mail avec éventuellement la ou les pièces jointes.
Seul chose que je dois signaler c'est que je fais une boucle (voir le code VBA) pour l'envoi car je n'ai pas trouvé la syntaxe pour un envoi groupé du type :
erenaud@deutsch.net,eranud@orange.fr...
A votre disposition pour infos complémentaires
 

Pièces jointes

  • Envoi Mail par Lotus.xls
    52.5 KB · Affichages: 901
  • Envoi Mail par Lotus.xls
    52.5 KB · Affichages: 938
  • Envoi Mail par Lotus.xls
    52.5 KB · Affichages: 949

Thierry37

XLDnaute Junior
Re : Envoi d'un mail via Lotus Notes

Bonjour,

Je viens d'ouvrir le fichier et je me rends compte que c'est du boulot tout ça, félicitation.
J'aurai eu du mal a faire ça...
J'ai voulu faire tourner et ça a planté... fichu erreur de compilation...
Et puis j'ai une interrogation car mon entreprise est bien en retard avec Office, j'utilise Excel 97 et la version Lotus est la verstion 6.5.4 de mars 2005...

Voici les autres interrogations :
* Cocher la référence Lotus Domino Objects dans Outils, Références (domobj.tlb) mais dans quel menu outil ?
* et comment on peut retrouver le serveur Lotus quand il se trouve dans un centre informatique... ailleurs que dans son entreprise ?

Le code me semble très développé.
Pour l'instant, à mon niveau, j'ai fait ça :

************************************************
Sub envoi_mail()
Dim strdest As String

'adresse = "xxxx.xxxxx@xxxx"
Sujet = "NPO - Mise à jour du plan d'action"

' On demande l'adresse e-mail du destinataire
strdest = InputBox("Saisissez le prénom et le nom du destinataire, exemple : prénom.nom@xxxxx", "Messagerie Access", "@xxxxx")
If strdest = "" Then Exit Sub

URLto = "mailto:" & strdest & "?subject=" & Sujet & "&body=" & msg
ActiveWorkbook.FollowHyperlink Address:=URLto


End Sub
*******************************************************

Ca me lance bien Lotus mais il faut ensuite cliquer sur "Envoyer". Or, j'aimerai que le mail parte automatiquement.
(Avec éventuellement la possibilité d'attacher une pièce jointe).
Merci pour tout vos éclaircicements.
Bonne journée,
Cordialement.

Thierry
 

RENAUDER

Nous a quitté
Repose en paix
Re : Envoi d'un mail via Lotus Notes

Bonjour,

J'ai retrouvé une ancienne version et tu peux essayer de la tester.
Pour le serveur Lotus, il faut voir avec ton administrateur, il te donnera l'adresse.
 

Pièces jointes

  • Envoi Mail Lotus v5.xls
    48.5 KB · Affichages: 350
  • Envoi Mail Lotus v5.xls
    48.5 KB · Affichages: 369
  • Envoi Mail Lotus v5.xls
    48.5 KB · Affichages: 377

hosni

XLDnaute Nouveau
Re : Envoi d'un mail via Lotus Notes

Bonjour,

après plusieurs recherche dans le forum, je ne trouve pas de réponse à mon problème :

J'arrive a envoyer le résultat d'une requête access via lotus; le souci est que Lotus notes s'ouvre, mais je dois CLIQUER SUR ENVOYER pour l'envoie du mail.

Je souhaiterais que l'envoie se fasse automatiquement.

Merci d'avance pour votre aide

ci joint le code que j'ai tapé :

Sub envoi()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Select * From TABLE1")
'Création de la requete
CurrentDb.CreateQueryDef "RESULTAT", "SELECT * FROM TABLE2 WHERE ID=1"

While Not rs.EOF
CurrentDb.QueryDefs("RESULTAT").SQL = "SELECT * FROM TABLE2 WHERE ID=" & rs!ID
DoCmd.SendObject acSendQuery, "RESULTAT2", "MicrosoftExcelBiff8(*.xls)", rs!mail, , , "Références à recodifier", , False

rs.MoveNext
Wend
'Suppression de la requete
CurrentDb.Execute "DROP TABLE RESULTAT"
End Sub
 

marino7530

XLDnaute Nouveau
Re : Envoi d'un mail via Lotus Notes

Bonjour,

J'ai besoin d'aide.
J'ai adapté un code pour envoyer un mail d'alerte depuis excel via lotus notes.
Notes doit être ouvert pour que cela fonctionne.
Le mail est bien généré, et envoyé. Mais lorsque un destinataire ouvre son message il a un message d'erreur à valider 4 ou 5 fois "un masque enregistré ne doit pas contenir un masque calculé".
Voici le code :
Public Sub SendEmailHide(Optional strSubject As String, Optional strMessage As String, Optional strRecipient As String, Optional blnSaveIt As Boolean = True)
'Public Sub SendEmailHide(Optional strSubject As String = "MAL", Optional strMessage As String = "concentration trop faible", Optional strRecipient As String = "romain.fontaine@mpsa.com", Optional blnSaveIt As Boolean = True)
'CreateMailandAttachFileAdr(Optional IsSubject As String = "MAL", Optional SendToAdr As String = "romain.fontaine@mpsa.com", Optional CCToAdr As String, Optional BCCToAdr As String = "", Optional Attach1 As String = "", Optional Attach2 As String = "", Optional body As String = "Merci de refaire le niveau")
'Optional strCheminAttachment As String, _
'Optional strCopyRecipient As String, _
'Optional strBlindCopyRecipient As String)
'*************************************************************************************
'* Envoi un message automatiquement, sans le montrer à l'usager
'* Inputs :
'* strSubject : sujet du message
'* strMessage : Corps du message
'* strRecipient : Destinataires du message séparés par une virgule
'* blnSaveIt : True= on enregistre le message, False= on ne garde pas de copie du message
'* strCheminAttachment : optionnel : chemin et nom du fichier qu'on veut attacher
'* strCopyRecipient : optionnel : Nom des destinataires à mettre en copie
'* strBlindCopyRecipient : optionnel : Nom des destinataires à mettre en copie invisible
'***********************************************************************************
Const EMBED_ATTACHMENT As Integer = 1454
Const EMBED_OBJECT As Integer = 1453
Const EMBED_OBJECTLINK As Integer = 1452
Dim objNotes As Object 'Crée une session Notes
Dim objNotesDB As Object 'Ouvre la base de données de Notes
Dim objNotesMailDoc As Object 'Message Notes
Dim objNotesBody As Object 'Corps du message Notes
Dim AttachME 'Pour créer un attachment
Dim EmbedObj
Dim arrRecipient() As String 'Array pour la liste des destinataires
Dim arrCopyRecipient() As String 'Array pour la liste des destinataires de copie
Dim arrBlindCopyRecipient() As String 'Array pour la liste des destinataires de copie invisible
strRecipient = "fontaine.romain@neuf.fr"
On Error GoTo Err:

strSubject = "MAL"
strMessage = "rajouter 25 littres"
'Ouvre la session notes et la base de données active
Set objNotes = GetObject("", "Notes.Notessession")
'ObjNotes.GetDatabase(Server, NotesDb)

Set objNotesDB = objNotes.GETDATABASE("", "")

'Ouvre la messagerie
Call objNotesDB.OPENMAIL

'Créé un nouveau document
Set objNotesMailDoc = objNotesDB.CREATEDOCUMENT()

With objNotesMailDoc
'Transforme le document en mémot
.Form = "Memo"
'Place le sujet requis
.Subject = strSubject


'Place le message requis
.body = strMessage

'Vérifie s'il enregistre le message
.SAVEMESSAGEONSEND = blnSaveIt

'Place le destinataire
'On doit envoyer un array au SendTo pour qu'il fonctionne
arrRecipient = Split(strRecipient, ",")
.sendto = arrRecipient

'Place la personne en copie
'On doit envoyer un array au CopyTo pour qu'il fonctionne
arrCopyRecipient = Split(strCopyRecipient, ",")
.CopyTo = arrCopyRecipient

'Place la personne en copie cachée
'On doit envoyer un array au BlindCopyTo pour qu'il fonctionne
arrBlindCopyRecipient = Split(strBlindCopyRecipient, ",")
.BlindCopyTo = arrBlindCopyRecipient

'Set up the embedded object and attachment and attach it
'Si envoyer un message d'erreur ne pas attacher un fichier
'If frmCourrierLotus.LabelAction <> "Erreur" Then
' Set AttachME = objNotesMailDoc.CREATERICHTEXTITEM("Attachment")
' Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Trim(strCheminAttachment), "")
'End If
'Envoie le message (Je sais pas ce que fais le False)
Call .SEND(True)
End With

Set objNotes = Nothing
Set objNotesDB = Nothing
Set objNotesMailDoc = Nothing
Set objNotesBody = Nothing

Exit Sub

Err:
MsgBox "Le message n'a pu être envoyé. Vérifiez avec l'administrateur de ce programme " & Err.Number
'Il fait l'erreur quand la boîte de messagerie est trop pleine.
End Sub

Dans certains forum on parle de référence mais j'ignore de quoi il s'agit. Peut etre cela a-t-il un rapport ?

Est-ce que quelqu'un pourrait me dire ce qui manque à mon code ?

Merci d'avance.
 

Discussions similaires

Réponses
2
Affichages
240
Réponses
17
Affichages
1 K

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch