OVH Cloud OVH Cloud

mail avec lotus

4 réponses
Avatar
lolo
Bonjour

J'ai cette petite macro qui permet d'envoyer un mail mais elle utilise
outlook, outlook express...
Je voudrais la modifer pour qu'elle envoie un message sous Lotus notes
Comment puis je faire ?

Voici la macro :

Sub EnvoiEmail(Adresse As Variant, Objet As String, Corps As String,
Optional PJ As String)
' Remarque : l'argument PJ (pi=E8ce jointe) est optionnel. S'il est
fourni,
' c'est le chemin complet du fichier =E0 joindre qui doit =EAtre fourni
' pour joindre plusieurs pi=E8ces,
' il faudrait que PJ soit un tableau et qu'il soit trait=E9 + bas par
une boucle...
Dim HyperLien As String ' Re=E7oit les =E9l=E9ments de l'hyperlien
' compos=E9s =E0 partir des arguments fournis =E0
la proc=E9dure
Dim i As Integer ' un compteur
Dim Client As Integer
' la syntaxe de base du mailto est la suivante :
' mailto:dest@domaine.bof?Subject=3DLe sujet du message&Body=3DLe corps du
message
' je ne prends pas en compte les copies, copies cach=E9es ou autres
confirmation de lecture
' il faudrait utiliser d'autre arguments de mailto...

HyperLien =3D "mailto:" & Adresse & "?" ' Le ? introduit les
arguments
HyperLien =3D HyperLien & "Subject=3D" & Objet & " (=E0 " & Time() & ")"
HyperLien =3D HyperLien & "&Body=3D" & Corps ' le & s=E9pare les
arguments
'MsgBox Application.Name

' Activation du lien
'
' Pour Excel (les autres doivent =EAtre en commentaire)
ActiveWorkbook.FollowHyperlink HyperLien
' Pour Word (les autres doivent =EAtre en commentaire)
' ThisDocument.FollowHyperlink HyperLien
' Pour Access (les autres doivent =EAtre en commentaire)
' Application.FollowHyperlink HyperLien

Attendre 5 ' Appel d'une proc=E9dure
qui temporise
' c'est =E0 dire que la
proc=E9dure courante
' (ici EnvoiMail) est
suspendue pendant 5s
' cela permet d'Attendrere
que le client
' de messagerie soit lanc=E9
et pr=EAt
' avant d'envoyer les
touches
' sinon ce serait le
programme appelant
' (ici Excel) qui recevrait
les touches

Client =3D 1 ' 1=3DOutlook Express
' 2=3DMozilla Thunderbird
' 3=3DOffice Outlook

Select Case Client ' appel du chargement des tableaux des touches
selon le
' client de messagerie indiqu=E9
Case 1
OutLookExpress
Case 2
MozillaThunderbird
Case 3
Office2003OutLook
Case Else
MsgBox "Aucun client de messagerie connu n'est indiqu=E9"
Exit Sub
End Select

' Le traitement de la pi=E8ce jointe ne s'ex=E9cute que si la proc=E9dure
=E0 re=E7u qqchose
' dans l'argument PJ (Optional<=3D>Facultatif)

If PJ <> "" Then
For i =3D 1 To TouchesPJ(0) ' dans TouchesPJ(0) on a stock=E9 le
nombre de touches
' =E0 envoyer au programme pour joindre
une pi=E8ce
SendKeys TouchesPJ(i), True ' Envoie les touches d'ajout
d'1 pi=E8ce jointe
Attendre 1 ' temporise (=E0 r=E8gler
=E9ventuellement)
Next i
SendKeys PJ, True ' A ce stade le programme Attendre un nom
de fichier
' on lui envoie
Attendre 1 ' on temporise
SendKeys "{ENTER}", True ' et on valide ce nom de fichier
Attendre 1
End If
For i =3D 1 To TouchesEnvoi(0)
SendKeys TouchesEnvoi(i), True ' on envoie le message
Next i
End Sub

Pouvez m'aider

Merci=20

A+

4 réponses

Avatar
Michel
Salut,

T'es pas alle sur google.... (mot cle : vba e-mail avec lotus notes)

30 sec et voila un bout de code :

1.. '//TRES IMPORTANT: il faut faire un regsrv de la Dll de Notes qui
n'est pas forcément identifié par VB
2.. '(ex: DEMARRER > EXECUTER puis "regsrv32
C:progra~1LotusNotesnlsxbe.dll" (modifier en fonction du chemin de votre
3.. 'lotus)
4..
5.. '//AJOUTER LA REFERENCE SUIVANTE ("projet > reference"): LOTUS DOMINO
OBJECTS (qui correspond à domobj.tbl)
6..
'*************************************************************************************************************
7.. Function prvSendNotesMail(Subject As String, Attachment As String,
Recipient As String, BodyText As String, SaveIt As Boolean) As Boolean
8.. '*********************************************
9.. 'Repris et développé par EvilGost
10.. 'Subject: Sujet du mail / Attachment: Chemin complet du fichier à
attacher (ex: "C:test.txt"), sinon, mettre "" /
11.. 'Recipient: Destinataire (ex: "") / Bodytext:
Texte du mail / SaveIt: sauvegarde du mail dans les courriers envoyés
12..
'*************************************************************************************************************
13.. 'Set up the objects required for Automation into lotus notes
14.. Dim Maildb As NotesDatabase 'The mail database
15.. Dim UserName As String 'The current users notes name
16.. Dim MailDoc As Object 'The mail document itself
17.. Dim AttachME As Object 'The attachment richtextfile object
18.. Dim oSession As NotesSession
19.. Dim dbDirectory As NotesDbDirectory
20.. Dim EmbedObj As Object 'The embedded object (Attachment)
21..
22.. On Error GoTo ErrHandle
23..
24.. Set oSession = New NotesSession
25.. 'Démarre une session de notes
26.. 'La ligne suivante ne marche qu'avec les versions 5.x et 6.x ,
c'est l'injection du mot de passe
27..
28.. oSession.Initialize ("Mot de passe")
29..
30.. 'Récupère le nom par défaut de la session
31.. UserName = oSession.UserName
32..
33.. 'Ouvre la base mail en utilisant le serveur par défaut
34.. Set dbDirectory = oSession.GetDbDirectory("") 'vous pouvez mettre
l'adresse du serveur dans ces parentheses
35.. Set Maildb = dbDirectory.OpenMailDatabase
36..
37.. 'Création du formulaire d'envoi de mail
38.. Set MailDoc = Maildb.CreateDocument()
39..
40.. MailDoc.AppendItemValue "Subject", Subject 'remplissage du Sujet
41.. MailDoc.AppendItemValue "SendTo", Recipient 'si vous passer un
tableau de string() en paramètre, vous pouvez mettre plusieurs destinataire
(ex: Recipient(2))
42.. MailDoc.AppendItemValue "Body", BodyText 'Corps du mail
43..
44.. 'Permet d'attacher un document au mail
45.. If Attachment <> "" Then
46.. Set AttachME = MailDoc.CreateRichTextItem("Attachment")
47.. Set EmbedObj = AttachME.EmbedObject(1454, "", Attachment,
"Attachment")
48.. End If
49..
50.. 'Envoi le document
51..
52.. If SaveIt = True Then
53.. MailDoc.SaveMessageOnSend = SaveIt 'si à True, Lotus
sauvegarde le mail envoyé
54.. End If
55..
56.. Call MailDoc.Send(False) 'j'obtiens une erreur lorsque je mets
true au lieu de false, si quelqu'un sait pourquoi
57..
58.. prvSendNotesMail = True
59.. GoTo ExitHandle
60..
61.. ErrHandle:
62.. Msgbox Err.Description
63.. prvSendNotesMail = false
64..
65.. ExitHandle:
66.. 'Vidage mémoire
67.. Set Maildb = Nothing
68.. Set MailDoc = Nothing
69.. Set AttachME = Nothing
70.. Set oSession = Nothing
71.. Set dbDirectory = Nothing
72.. Set EmbedObj = Nothing
73.. End Function
@+

Michel.
"lolo" a écrit dans le message de news:

Bonjour

J'ai cette petite macro qui permet d'envoyer un mail mais elle utilise
outlook, outlook express...
Je voudrais la modifer pour qu'elle envoie un message sous Lotus notes
Comment puis je faire ?

Voici la macro :

Sub EnvoiEmail(Adresse As Variant, Objet As String, Corps As String,
Optional PJ As String)
' Remarque : l'argument PJ (pièce jointe) est optionnel. S'il est
fourni,
' c'est le chemin complet du fichier à joindre qui doit être fourni
' pour joindre plusieurs pièces,
' il faudrait que PJ soit un tableau et qu'il soit traité + bas par
une boucle...
Dim HyperLien As String ' Reçoit les éléments de l'hyperlien
' composés à partir des arguments fournis à
la procédure
Dim i As Integer ' un compteur
Dim Client As Integer
' la syntaxe de base du mailto est la suivante :
' mailto:?Subject=Le sujet du message&Body=Le corps du
message
' je ne prends pas en compte les copies, copies cachées ou autres
confirmation de lecture
' il faudrait utiliser d'autre arguments de mailto...

HyperLien = "mailto:" & Adresse & "?" ' Le ? introduit les
arguments
HyperLien = HyperLien & "Subject=" & Objet & " (à " & Time() & ")"
HyperLien = HyperLien & "&Body=" & Corps ' le & sépare les
arguments
'MsgBox Application.Name

' Activation du lien
'
' Pour Excel (les autres doivent être en commentaire)
ActiveWorkbook.FollowHyperlink HyperLien
' Pour Word (les autres doivent être en commentaire)
' ThisDocument.FollowHyperlink HyperLien
' Pour Access (les autres doivent être en commentaire)
' Application.FollowHyperlink HyperLien

Attendre 5 ' Appel d'une procédure
qui temporise
' c'est à dire que la
procédure courante
' (ici EnvoiMail) est
suspendue pendant 5s
' cela permet d'Attendrere
que le client
' de messagerie soit lancé
et prêt
' avant d'envoyer les
touches
' sinon ce serait le
programme appelant
' (ici Excel) qui recevrait
les touches

Client = 1 ' 1=Outlook Express
' 2=Mozilla Thunderbird
' 3=Office Outlook

Select Case Client ' appel du chargement des tableaux des touches
selon le
' client de messagerie indiqué
Case 1
OutLookExpress
Case 2
MozillaThunderbird
Case 3
Office2003OutLook
Case Else
MsgBox "Aucun client de messagerie connu n'est indiqué"
Exit Sub
End Select

' Le traitement de la pièce jointe ne s'exécute que si la procédure
à reçu qqchose
' dans l'argument PJ (Optional<=>Facultatif)

If PJ <> "" Then
For i = 1 To TouchesPJ(0) ' dans TouchesPJ(0) on a stocké le
nombre de touches
' à envoyer au programme pour joindre
une pièce
SendKeys TouchesPJ(i), True ' Envoie les touches d'ajout
d'1 pièce jointe
Attendre 1 ' temporise (à règler
éventuellement)
Next i
SendKeys PJ, True ' A ce stade le programme Attendre un nom
de fichier
' on lui envoie
Attendre 1 ' on temporise
SendKeys "{ENTER}", True ' et on valide ce nom de fichier
Attendre 1
End If
For i = 1 To TouchesEnvoi(0)
SendKeys TouchesEnvoi(i), True ' on envoie le message
Next i
End Sub

Pouvez m'aider

Merci

A+
Avatar
lolo
Ok Merci beaucoup

J'avais trouvé des morceaux de code mais le problème c'est que je ne
sais jamais comment les integrer à ma procédure existante...
Chaque fois ça plante....
Je pense que c'est pas évident quand tu débutes...et que tu n'as
jamais eu de cours concret sur le sujet
Je pense qu'a force je vais pouvoir y arriver....mais quand les
procédures sont trop compliquées pour moi cela devient un vrai
problème

En tout cas merci pour ce code je vais essayé de le réintegré si j'y
arrive...lol

A+

Lolo
Avatar
Michel
Salut,
Je sais je suis passer par la, je n'ai jamais eu de cours non plus... mais
d'ici 6 mois tu verras t'auras bien progresse... :o)
Je n'ai pas lotus donc je ne peux pas plus t'aider malheureusement... :o(

@+

Michel.


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

Ok Merci beaucoup

J'avais trouvé des morceaux de code mais le problème c'est que je ne
sais jamais comment les integrer à ma procédure existante...
Chaque fois ça plante....
Je pense que c'est pas évident quand tu débutes...et que tu n'as
jamais eu de cours concret sur le sujet
Je pense qu'a force je vais pouvoir y arriver....mais quand les
procédures sont trop compliquées pour moi cela devient un vrai
problème

En tout cas merci pour ce code je vais essayé de le réintegré si j'y
arrive...lol

A+

Lolo
Avatar
Clément Marcotte
Bonjour,

Essaie avec celle-là:

http://faq.vb.free.fr/index.php?question


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

Bonjour

J'ai cette petite macro qui permet d'envoyer un mail mais elle utilise
outlook, outlook express...
Je voudrais la modifer pour qu'elle envoie un message sous Lotus notes
Comment puis je faire ?

Voici la macro :

Sub EnvoiEmail(Adresse As Variant, Objet As String, Corps As String,
Optional PJ As String)
' Remarque : l'argument PJ (pièce jointe) est optionnel. S'il est
fourni,
' c'est le chemin complet du fichier à joindre qui doit être fourni
' pour joindre plusieurs pièces,
' il faudrait que PJ soit un tableau et qu'il soit traité + bas par
une boucle...
Dim HyperLien As String ' Reçoit les éléments de l'hyperlien
' composés à partir des arguments fournis à
la procédure
Dim i As Integer ' un compteur
Dim Client As Integer
' la syntaxe de base du mailto est la suivante :
' mailto:?Subject=Le sujet du message&Body=Le corps du
message
' je ne prends pas en compte les copies, copies cachées ou autres
confirmation de lecture
' il faudrait utiliser d'autre arguments de mailto...

HyperLien = "mailto:" & Adresse & "?" ' Le ? introduit les
arguments
HyperLien = HyperLien & "Subject=" & Objet & " (à " & Time() & ")"
HyperLien = HyperLien & "&Body=" & Corps ' le & sépare les
arguments
'MsgBox Application.Name

' Activation du lien
'
' Pour Excel (les autres doivent être en commentaire)
ActiveWorkbook.FollowHyperlink HyperLien
' Pour Word (les autres doivent être en commentaire)
' ThisDocument.FollowHyperlink HyperLien
' Pour Access (les autres doivent être en commentaire)
' Application.FollowHyperlink HyperLien

Attendre 5 ' Appel d'une procédure
qui temporise
' c'est à dire que la
procédure courante
' (ici EnvoiMail) est
suspendue pendant 5s
' cela permet d'Attendrere
que le client
' de messagerie soit lancé
et prêt
' avant d'envoyer les
touches
' sinon ce serait le
programme appelant
' (ici Excel) qui recevrait
les touches

Client = 1 ' 1=Outlook Express
' 2=Mozilla Thunderbird
' 3=Office Outlook

Select Case Client ' appel du chargement des tableaux des touches
selon le
' client de messagerie indiqué
Case 1
OutLookExpress
Case 2
MozillaThunderbird
Case 3
Office2003OutLook
Case Else
MsgBox "Aucun client de messagerie connu n'est indiqué"
Exit Sub
End Select

' Le traitement de la pièce jointe ne s'exécute que si la procédure
à reçu qqchose
' dans l'argument PJ (Optional<=>Facultatif)

If PJ <> "" Then
For i = 1 To TouchesPJ(0) ' dans TouchesPJ(0) on a stocké le
nombre de touches
' à envoyer au programme pour joindre
une pièce
SendKeys TouchesPJ(i), True ' Envoie les touches d'ajout
d'1 pièce jointe
Attendre 1 ' temporise (à règler
éventuellement)
Next i
SendKeys PJ, True ' A ce stade le programme Attendre un nom
de fichier
' on lui envoie
Attendre 1 ' on temporise
SendKeys "{ENTER}", True ' et on valide ce nom de fichier
Attendre 1
End If
For i = 1 To TouchesEnvoi(0)
SendKeys TouchesEnvoi(i), True ' on envoie le message
Next i
End Sub

Pouvez m'aider

Merci

A+