ENVOYER UN MAIL AVEC LOTUS NOTES 6 AVEC PASSWORD

thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 - 21 mars 2006 à 21:16
malphodo Messages postés 1 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 26 mars 2009 - 26 mars 2009 à 11:37
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/36653-envoyer-un-mail-avec-lotus-notes-6-avec-password

malphodo Messages postés 1 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 26 mars 2009
26 mars 2009 à 11:37
Bonjour,

Je viens de tester ce code qui semple bien fonctionner en session notes ouverte. Par contre dés que je le teste avec lotus notes fermé les mails se placent dans la boite "mail à envoyer" et ne partent qu'a l'ouverture de session suivante.
C'est un comportement normal ?
Pour infos c'est un test que j'ai fais avec le premier code que tu as posté.

Si vous aves des infos je suis preneur, j'utilise notes 6.5 sur XP et je cherche a envoyer des mails sans devoir lancer Notes avant mon prog VB

Merci ;-)
erazeur Messages postés 3 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 24 juillet 2007
24 juil. 2007 à 09:50
+ déclaration de la fonction dans le modul principal ... modifs vraiment mineures:

Option Compare Database
Function prvSendNotesMail(LotusPassWord As String, Subject As String, Attachment As String, Recipient As String, BodyText As String, SaveIt As Boolean) As Boolean
'LotusPassWord: Mot de passe Lotus Notes Domino de l'utilisateur courant

Dim Maildb As NotesDatabase
Dim UserName As String
Dim MailDoc As Object
Dim AttachME As Object
Dim oSession As NotesSession
Dim dbDirectory As NotesDbDirectory
Dim EmbedObj As Object 'The embedded object (Attachment)

On Error GoTo ErrHandle

Set oSession = New NotesSession
oSession.Initialize (LotusPassWord)
UserName = oSession.UserName
Set dbDirectory = oSession.GetDbDirectory("")
Set Maildb = dbDirectory.OpenMailDatabase

Set MailDoc = Maildb.CreateDocument()

MailDoc.AppendItemValue "Subject", Subject
MailDoc.AppendItemValue "SendTo", Recipient
MailDoc.AppendItemValue "Body", BodyText

If Attachment <> "" Then
Set AttachME = MailDoc.CreateRichTextItem("Attachment")
Set EmbedObj = AttachME.EmbedObject(1454, "", Attachment, "Attachment")
End If

If SaveIt = True Then
MailDoc.SaveMessageOnSend = SaveIt
End If

Call MailDoc.Send(False)

prvSendNotesMail = True
GoTo ExitHandle

ErrHandle:
MsgBox Err.Description
prvSendNotesMail = False

ExitHandle:
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set oSession = Nothing
Set dbDirectory = Nothing
Set EmbedObj = Nothing
End Function
erazeur Messages postés 3 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 24 juillet 2007
24 juil. 2007 à 09:32
Le code en question pour Access 2002 ... dans ce code je n'utilise pas de fichier joint, mais je l'ai bien évidement testé avec - et no problem -
Dans le cas ou il doit y en avoir un, il vous faudra juste donner la valeur appropriée à -FichierJoint-
Encore merci pour le code source de départ ;)

'*************************************************************************************
Private Sub SendMail_Click()
Dim MotDePasse As String
Dim SujetMessage As String
Dim FichierJoint As String
Dim Destinataire As String
Dim message As String

Dim db As DAO.Database
Dim rst As DAO.Recordset

MotDePasse = Me![LotusPassWord]
FichierJoint = ""

BoîteSuiviActionMailing.Visible = False
SuiviActionMailing.Visible = True
SuiviActionMailing.Value = ""

Set db = CurrentDb()
Set rst = db.OpenRecordset("ADM_VerifSaisies_PasOK_Tbl")
Compteur = 0
While Not rst.EOF
If Fix(Me![RefCptMois]) = Fix(rst![CptMois]) Then
Compteur = Compteur + 1
Destinataire = rst![mailcalc]
SujetMessage = "Merci de remplir correctement le RM du mois de " & Me![RefMoisTxt] & " (" & rst![Prenom] & " " & rst![Nom] & " )"
message = "Vous devez remplir le rapport mensuel de " & rst![Prenom] & " " & rst![Nom] & " ... actuellement il est incomplet, le total horaire affiche " & rst![SommeDeNbreHeure] & "h. Le total horaire du mois de " & Me![RefMoisTxt] & " est de " & rst![HOcorrigees] & "h ouvrées. Merci de faire le nécessaire le compléter."
Call prvSendNotesMail(MotDePasse, SujetMessage, FichierJoint, Destinataire, message, 1)
SuiviActionMailing.Value = SuiviActionMailing & " ; " & rst![mailcalc] & " (concerant " & rst![Prenom] & " " & rst![Nom] & ")"
End If
rst.MoveNext
Wend
rst.Close
Set rst = Nothing
Set db = Nothing

'BoîteSuiviActionMailing.Visible = False
'SuiviActionMailing.Visible = False
Me![RappelLabel].Visible = True

End Sub
'*************************************************************************************
erazeur Messages postés 3 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 24 juillet 2007
24 juil. 2007 à 09:19
Très bonne source bien commentée que j'ai intégré
... après modifs ... au code VBA dans une appli MS Access 2002 ( et version Lotus 6.5.5 pour info )
Lyly38 Messages postés 1 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 25 avril 2007
25 avril 2007 à 09:51
RegisP
La différence entre la version 6.5 de Lotus Notes et la 6 c'est que tu ne dois pas mettre ta pièce jointe entre guillemets
Version 6 : SendNotesMail("aa", "\\...\...\monfichier.txt", etc)
Version 6.5 : SendNotesMail("aa", \\...\...\monfichier.txt, etc)

Moi aussi j'ai une question
Comment fait-on pour modifier la propriété texte du mail?
kciope Messages postés 20 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 7 août 2009
3 avril 2007 à 18:17
Oubliez mon post precedent j'ai reussi a le faire fonctionner, par contre j'ai beau mettre quelque chose dans l'objet et le message est envoyé avec l'objet vide
kciope Messages postés 20 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 7 août 2009
3 avril 2007 à 13:03
Bonjour,

Déjà merci pour la source.
J'ai un petit soucis de mis en pratique, je suis un noob question programmation et je ne sais pas comment utiliser ton code. Voici ce que j'ai fais :
1- copie du code dans "général"
2- appel de la fonction en remplissant les champs ex : "prvSendNotesMail("test", "", "recipient", "body", True) = True"

là il me mets une erreur "Un appel de fonction sur la partie gauche d'une affectation doi renovyer un type variant ou object"
Je ne vois pas ce qu'il veut dire. ??
Si quelqu'un pouvait m'aider ca sera vraiment sympa, merci d'avance
RegisP Messages postés 2 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 14 mars 2007
14 mars 2007 à 17:30
Nous utilisons un envoi automatisé de mail via Lotus Notes version 6.5 depuis une macro Visual Basic Excel identique au code ci dessus. Cette macro fonctionnait très bien avec Lotus version 6, mais depuis que nous avons basculé vers Lotus version 6.5, elle ne fonctionne plus s'il y a une pièce jointe. (sans pièce jointe, ça marche) Est ce que quelqu'un a déjà eu ce cas?
Merci d'avance
cs_slibar Messages postés 11 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 2 mars 2007
2 mars 2007 à 16:52
Petite précision par rapport à mon message plus haut.

MailDoc.AppendItemValue "deliveryreport", "C"
-> ca c'est pour un retour lors d'un envoi correct. Pas pour un accusé lorsque la personne a lu son mail.
d'ailleurs on peut mettre "B" aussi -> only on failure.

Pour l'accusé c'est ça :
MailDoc.AppendItemValue "ReturnReceipt", "1"

Voilou.
cs_slibar Messages postés 11 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 2 mars 2007
1 mars 2007 à 18:43
Kleinmat -> aucune idée pour le moment mais je vais chercher car cela peut être interressant.

Pour le corp du mail moi j'ai un autre problème car je voudrais envoyer un body en HTML pour rajouté de la couleur à mon texte et eventuellement inserer des images.
J'ai quelques sources d'info mais que je n'arrive pas à formalisé.

ex:
Set oSession = CreateObject("Lotus.NOTESSESSION")
oSession.Initialize (TextBoxPass.Text)
UserName = oSession.UserName
Set dbDirectory = oSession.GetDbDirectory("")
Set Maildb = dbDirectory.OpenMailDatabase
Set MailDoc = Maildb.CREATEDOCUMENT()

'The Body
Set oStream = oSession.CreateStream()
Call oStream.WriteText(BodyText)
'The Body MIME type
Set oBodyMime = MailDoc.CreateMIMEEntity()
Call oBodyMime.SetContentFromText(oStream, "text/html;charset=iso-8859-1", False) ', .f.)

en fait il bloque au niveau de ma déclaration "oStream" -> Propriété ou méthode non gérer par cet objet.

en fait createstream je crois que c'est du lotus script (comme le reste du code) et je n'arrive pas à l'adapter pour vb.

Si vous avez des idées ce serai super, ça fait 3 jours que je suis dessus et ça commence à m'AGACER !!!!!

D'avance merci.
kleinmat Messages postés 1 Date d'inscription jeudi 1 mars 2007 Statut Membre Dernière intervention 1 mars 2007
1 mars 2007 à 09:36
Bonjour a tous et merci pour toutes ces infos !
J'ai un petit probleme :
Je voudrais mettre dans le corp(et non en piece jointe) de mon mail(Lotus) une feuille excel(Worksheet) ou juste une plage de cellule(Range).
A la main c'est facile, je copie ma plage excel, puis sous Notes 6, je fais Alt+E+S (collage special) et la je peux choisir le format Worksheet, donc c'est parfait. Pour l'automatiser avec macro excel j'ai pas encore trouve. Ca fait trois heure que je sillone google dans tous les sens, please help me !!!!!

Mathieu
cs_slibar Messages postés 11 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 2 mars 2007
20 févr. 2007 à 15:20
Pour les accusé de reception j'ai trouvé celà :

MailDoc.AppendItemValue "deliveryreport", "C"

Ou alors ça, suivant la facon dont vous avez coder.

Call MailDoc.AppendItemValue("deliveryreport", "C")

Pour moi cela fonctionne, j'esperes que cela servira...
cs_eren Messages postés 38 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 27 novembre 2008
23 déc. 2006 à 10:47
Bonjour,
Cas d'emploi du code ci-dessus :
J'utilise un envoi de mail via Lotus de manière automatisée depuis Excel (VBA mais ça marche en VB). J'ai crée un exe qui est lancé par le Gestionnaire des taches. Il ouvre Excel, effectue un certain nombre d'opérations et envoie un mail à un certain nombre de personnes
A la lecture de toutes ces réponses, je vais essayer d'apporter quelques réponses bien modestes
Jusqu'à hier, j'avais un code qui fonctionnait parfaitement avec la version Lotus 6 installé sur mon poste.
Nous commençons à migrer vers Lotus 7 et les destinataires ayant cette version avaient des messages d'erreur lors de l'ouverture de leurs mails (dans les 2 sens j'avais des problèmes).
Avec le code présenté ici, j'ai résolu le problème (merci à l'auteur).
J'ai même complété certains manques pour mon besoin notamment pour le contenu du message et la multi-diffusion. En voici l'énumération car cela peut servir à d'autres.
Pour le contenu du message (Body)
J'ai ajouté ceci :
Dim objNotesField As Object dans la section de déclarations
Dans la fonction, j'ai retiré l'argument BodyText et j'ai ajouté le code suivant dans la fonction prvSendNotesMail(......)

En dessous de la ligne
MailDoc.AppendItemValue "SendTo", Recipient
j'ai ajouté ....
' Corps du message à diffuser ....
Set objNotesField = MailDoc.CreateRichTextItem("Body")
With objNotesField
.AppendText "Bonjour,"
.AddNewLine 2
.AppendText "Ci-joint la situation des postes bloqués du carnet de commande."
.AddNewLine 2
.AppendText "Vous trouverez dans le fichier joint la liste des Références"
.AppendText "Cordialement"
.AddNewLine 1
.AppendText "Eric RENAUD"
End With
Pour l'envoi du multi-diffusion, je lance de la manière suivante :
Sub EnvoiMail()
Dim Email(5) As String
Email(1) = "erenaud@compagnie-deutsch.com"
Email(2) = "erenaud@wanadoo.fr"
Email(3) = "xxxxx@compagnie-deutsch.com"
Email(4) = "xxxxxx@compagnie-deutsch.com"
Email(5) = "xxxxxxx@compagnie-deutsch.com"
For i = 1 To 5
Envoi = prvSendNotesMail("Test nlle version Lotus", "C:\Excel\20061220_indic postes_V0.xls", Email(i), SaveIt:=True)
Next i
End Sub

Une chose que je n'ai pas trouvé, c'est l'accusé Réception alors si quelqu'un sait ?
bzhcoscat Messages postés 5 Date d'inscription lundi 12 juillet 2004 Statut Membre Dernière intervention 8 novembre 2006
8 nov. 2006 à 11:13
Bonjour,

ceci est une très bonne source. Peut on l'utiliser par le biais d'une tâche planifiée lorsqu'aucun utilisateur n'est connecté?
Je voudrais en effet réaliser un envoi de mail automatique quotidien (style newsletter) planifié vers 00:00. Ce prog fonctionnerait sur un serveur et donc je ne voudrais pas qu'il y ait besoin de se connecter pour réaliser l'envoi des mails en automatique.
EvilGost Messages postés 235 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 mai 2011 2
31 août 2006 à 18:54
pour répondre, si ca bug sur la création de l'objet, c que la dll nlsxbe.dll n'a pas été enregistrer.......
Pour Azra, je n'en ai aucune idée...
Pour Ifaza, si tu ne mets pas de mot de passe, il ouvrira un msgbox demandant le mot de passe, mais quoi qu'il en soit, tu ne peux pas faire une appli qui envoie un mail sans rien demander (sauf si lotus est ouvert et déjà loggué)
visualresine Messages postés 46 Date d'inscription vendredi 23 septembre 2005 Statut Membre Dernière intervention 31 janvier 2008
29 août 2006 à 17:18
Pour info je viens de tester cette source avec Lotus 6.5 et elle fonctionne tres bien!
J'utilise VB.net 2005, il faut donc spécifié "Imports Domino" en haut du code ..

Merci
cs_azra Messages postés 425 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 13 juillet 2007 1
24 août 2006 à 15:25
Bonjour,

Est ce que cette source nécessite l'installation de Lotus Notes sur le poste l'executant ou est ce que les DLL référencées suffisent (pour une installation sur un serveur).

Merci de votre réponse,
cs_ifaza Messages postés 21 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 11 avril 2007
9 août 2006 à 16:25
bonjour
merci pour votre attention
bon, mon probléme c'est que je doit faire un programme qui permet d'envyer des mails par lotus , jai essayer les mapi mais ça n'a pas marché,
aprés j'ai trouvé un exemple comme celui présenté en haut , je l'ai testé mais il bogue dans la création d'objet note session,
():j'ai installé le lotus client sur mon poste pour les tests
la deuxieme chose : est ce qu'on ne peut pas récupérer le mot de passe de la session ouverte du lotus et pourquoi c'est possible d'envoyer un mail par outlook sans qu'on ai besoin d'avoir ni login ni password
merci d'avance
kali_bambou Messages postés 2 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 4 août 2006
4 août 2006 à 17:32
Salut Ifaza,
j'ai créer le même programme mais sous VBA d'Excel (c'est une macro), ce n'est pas tout à fait le même code que celui-ci mais il fonctionne.
Bref, pour ton problème pourrais-tu donner plus de précision ?
Pour ce qui est du mot de passe, tu pourrais créer une boite de dialogue qui demande à l'utilisateur d'entrer son mot de passe et tu récupères ainsi la valeur que tu injectes dans ton programme.
cs_ifaza Messages postés 21 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 11 avril 2007
4 août 2006 à 12:46
bonjour
je veux faire un programme qui envoi e-mail par lotus et j'ai déjà essayer ce programme
1- mais mon probléme c'est que quand j'essaye de créer l'objet notes.session il me donne un message d'erreur
2- autre soucis c'est que mois je veux installer l'application sur plusieurs poste et moi je connaît pas le mot de passe lotus de chaque utilisateur
est ce que qlq un peut m'aider d'avoir une solution SVP
c'est trés urgent
kali_bambou Messages postés 2 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 4 août 2006
31 juil. 2006 à 18:02
Bonjour,

j'ai un petit souci, ton code est nickel et fonctionne très très bien, mais je ne sais pas comment mettre en forme le corps du mail, est-il possible d'utiliser un modèle déjà créé sur Lotus?
Je vous remercie par avance à tous de votre aide qui me sera très précieuse.
EvilGost Messages postés 235 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 mai 2011 2
18 juil. 2006 à 11:57
J'utilise la version 6.0.3, et la fenetre de mot de passe n'apparait pas, comme prévu. C'est bizarre que toi, elle apparaisse...A moins que par sécurité, dans les dernières versions de Lotus, ils aient rétabli ce système.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
4 juil. 2006 à 17:09
oui
julien_u Messages postés 4 Date d'inscription dimanche 22 janvier 2006 Statut Membre Dernière intervention 4 juillet 2006
4 juil. 2006 à 17:02
Bonjour,

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

Merci !
pat0701 Messages postés 1 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 26 avril 2006
26 avril 2006 à 15:33
Salut,
j'ai testé le code mais dès qu'il passe sur
oSession.Initialize ("Mot de passe")
J'ai la fenêtre de saisi de mot de passe de Lotus qui apparaît
Je suis bien en version 6.5 et j'ai bien enregistrer la dll.
Pourrais-tu m'aider pour éviter d'avoir à saisir le mot de passe ?
EvilGost Messages postés 235 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 mai 2011 2
3 avril 2006 à 14:50
C'est parce que tu utilises VB.net, ce code est pour VB6, mais je suis ravi d'apprendre qu'il fonctionne bien en .net et que je n'aurai pas à me recreuser la tête :D
Patrocle02 Messages postés 1 Date d'inscription vendredi 24 février 2006 Statut Membre Dernière intervention 30 mars 2006
30 mars 2006 à 14:11
Merci beaucoup pour ce code. Juste une petite remarque : j'ai du ajouter un "Imports Domino" en première ligne de mon code pour que ça marche.
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
21 mars 2006 à 21:16
merci pour ce petit bout de code (surtout pour le password)
J'utilise trois fonctions d'envoi/lecture/parcours de base qui ont toujours fonctionnés pour les versions 4,5 et 6; par contre je n'avais jamais rien trouvé sur le password et ça c'est excellent ça permet de vraiment automatiser. c'etait simple en plus. 9/10
Rejoignez-nous