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

envoyer Mail avec outlook expresseo

19 réponses
Avatar
Dan
Bonjour a tous.
Avec le code ci dessus je oeux envoyer par outlooc un message avec piéce
jointe et texte.
je voudrai maintenant dans VB pouvoir inserer directement l'adresse deu
destinataire et expédier automatiquement le mail poue eviter le maximum de
manipulation.
Merci de votre aide



TxtLien = "c:\mediacd.jpg"
Piecejointe = TxtLien
'**********************
Dim x
' Lance Outlook express avec l'adresse , l'objet et le message
x = Shell("C:\Program Files\Outlook Express\msimn.exe " &
"/mailurl:mailto:?subject=Bonjour!&body=" & TxtSujet, 3)
' Pour faire Insertion pièce jointe
SendKeys "%I{ENTER}", False
' Pour indiquer le nom du fichier à joindre
SendKeys Piecejointe & "{ENTER}", False
' Pour faire envoyer maintenant
'SendKeys "%F{DOWN}{ENTER}", False
End Sub

10 réponses

1 2
Avatar
Jacques93
Bonjour Dan,
Dan a écrit :
Bonjour a tous.
Avec le code ci dessus je oeux envoyer par outlooc un message avec piéce
jointe et texte.
je voudrai maintenant dans VB pouvoir inserer directement l'adresse deu
destinataire et expédier automatiquement le mail poue eviter le maximum de
manipulation.
Merci de votre aide



TxtLien = "c:mediacd.jpg"
Piecejointe = TxtLien
'**********************
Dim x
' Lance Outlook express avec l'adresse , l'objet et le message
x = Shell("C:Program FilesOutlook Expressmsimn.exe " &
"/mailurl:mailto:?subject=Bonjour!&body=" & TxtSujet, 3)
' Pour faire Insertion pièce jointe
SendKeys "%I{ENTER}", False
' Pour indiquer le nom du fichier à joindre
SendKeys Piecejointe & "{ENTER}", False
' Pour faire envoyer maintenant
'SendKeys "%F{DOWN}{ENTER}", False
End Sub




Essaie :

Dim x As Long
Dim Destinataire As String
Dim Sujet As String
Dim PieceJointe As String


Destinataire = ""
Sujet = "Bonjour"
PieceJointe = "c:mediacd.jpg"
' Lance Outlook express avec l'adresse , l'objet et le message
x = Shell("C:Program FilesOutlook Expressmsimn.exe " & _
"/mailurl:mailto:" & Destinataire & "?subject=" & _
Sujet & "&body=" & txtSujet, 3)
' Pour faire Insertion pièce jointe
SendKeys "%I{ENTER}", True
' Pour indiquer le nom du fichier à joindre
SendKeys PieceJointe & "{ENTER}", True
' Pour faire envoyer maintenant
SendKeys "%F{DOWN}{ENTER}", True


Syntaxe de mailto :

http://www.ianr.unl.edu/internet/mailto.html

RFC 2368 MailTo :

http://www.ietf.org/rfc/rfc2368
--
Cordialement,

Jacques.
Avatar
Gloops
Salut Jacques,

Est-ce que Outlook n'assure pas le support de MAPI ?
Je suppose que tu as sûrement une bonne raison de l'éviter ...

Sinon on aurait la possibilité ci-dessous, à condition bien entendu de
cocher dans les références de composants (Ctrl T) "Microsoft MAPI
Controls 6.0" et d'ajouter un contrôle MAPISession et un contrôle
MAPIMessages sur le formulaire.

Si on veut que le message parte automatiquement sans avertir
l'utilisateur, il faut configurer la messagerie et le pare-feu comme une
passoire. En général, on considère que ce n'est pas très recommandé, vu
que d'autres logiciels arrivés d'on ne sait où pourraient en profiter.

Ah, je crois que ça y est, j'ai deviné : par simulation de touches tu
simules l'intervention de l'utilisateur, donc le pare-feu et la
messagerie laissent passer. Là il faut que l'utilisateur s'abstienne de
sélectionner une autre fenêtre, bien entendu.

N'est-ce pas ce qu'on appelle "jouer le petit filou" ?

C'est bientôt, la journée Microsoft sur la sécurité ?
ça doit être intéressant, ça, tiens ...
ça permettra sûrement de compléter la réponse.
_______________________________________________________________
Public Function send_mail(sendto As String, subject As String, _
text As String) As Boolean
'Add The MAPI Components and
'add a MAPI Session and MAPI mail control to your form


On Error GoTo ErrHandler
With MAPISession1

.DownLoadMail = False
.LogonUI = True
.SignOn
.NewSession = True
MAPIMessages1.SessionID = .SessionID
End With
With MAPIMessages1
.Compose
.RecipAddress = sendto
.AddressResolveUI = True
.ResolveName
.MsgSubject = subject
.MsgNoteText = text
.AttachmentName = "Nom de fichier à afficher"
.AttachmentPathName = "cheminvrai nom du fichier"
.AttachmentPosition = 7 'si on veut faire apparaître le fichier
'après le 7ème caractère du message
.Send False 'pour se passer de boîte de dialogue
End With
sendmail = True
ErrHandler:
End Function
Avatar
Gloops
J'ai peut-être un peu mélangé, là : c'est Dan qui a mis des simulations
de touches.

Bon, j'espère ne pas m'être fait trop d'ennemis ...
Avatar
Jacques93
Bonjour Gloops,
Gloops a écrit :
Salut Jacques,

Est-ce que Outlook n'assure pas le support de MAPI ?



En principe, si :

http://support.microsoft.com/?kbid8077

Je suppose que tu as sûrement une bonne raison de l'éviter ...



Chez moi, oui, j'ai plusieurs logiciels :

- Outlook 2003 (Client MAPI par défaut)
- Outlook Express 6.0
- ThunderBird 1.0.6 (Lecteur de News par défaut)
- Eudora

et j'évite de changer la configuration, pour ne pas avoir des courriers
dans toutes les boites.

Sinon on aurait la possibilité ci-dessous, à condition bien entendu de
cocher dans les références de composants (Ctrl T) "Microsoft MAPI
Controls 6.0" et d'ajouter un contrôle MAPISession et un contrôle
MAPIMessages sur le formulaire.



Oui

Si on veut que le message parte automatiquement sans avertir
l'utilisateur, il faut configurer la messagerie et le pare-feu comme une
passoire. En général, on considère que ce n'est pas très recommandé, vu
que d'autres logiciels arrivés d'on ne sait où pourraient en profiter.

Ah, je crois que ça y est, j'ai deviné : par simulation de touches tu
simules l'intervention de l'utilisateur, donc le pare-feu et la
messagerie laissent passer. Là il faut que l'utilisateur s'abstienne de
sélectionner une autre fenêtre, bien entendu.



Tu me prêtes des intentions que je n'ai pas ;-) Par contre,
effectivement, l'utilisation de SendKeys est assez "aléatoire", mais OE
ne supportant pas Automation, c'est à ma connaissance la seule manière
de le piloter.

N'est-ce pas ce qu'on appelle "jouer le petit filou" ?



Ce n'est pas mon genre ;-) . Mais effectivement, bien que OE soit
paramétré pour :

http://cjoint.com/?lmeRkuLOZu

Il laisse passer...

C'est bientôt, la journée Microsoft sur la sécurité ?
ça doit être intéressant, ça, tiens ...
ça permettra sûrement de compléter la réponse.



J'ai juste adapté le code de Dan, c'est surtout la syntaxe de mailto qui
est interessante en fait.

--
Cordialement,

Jacques.
Avatar
Jacques93
Bonjour,
Gloops a écrit :
J'ai peut-être un peu mélangé, là : c'est Dan qui a mis des simulations
de touches.



Exact, fait un peu sombre à cette heure ;-)

Bon, j'espère ne pas m'être fait trop d'ennemis ...




Pas moi, en tout cas.

--
Cordialement,

Jacques.
Avatar
Gloops
Jacques93 a écrit, le 12/11/2005 04:44 :

Chez moi, oui, j'ai plusieurs logiciels :

- Outlook 2003 (Client MAPI par défaut)
- Outlook Express 6.0
- ThunderBird 1.0.6 (Lecteur de News par défaut)
- Eudora

et j'évite de changer la configuration, pour ne pas avoir des courriers
dans toutes les boites.



Effectivement, d'ailleurs c'est un des intérêts de MAPI de s'adresser
toujours à la messagerie principale, avec la même syntaxe quelle qu'elle
soit.

Au demeurant, puisqu'il y a MAPI, dans le cas d'une messagerie le
support de DDE ou Automation ne sert pas vraiment à envoyer des
messages, mais plutôt à gérer les messages déjà archivés. Par exemple,
il aurait fallu que je passe je ne sais combien de temps à chercher dans
l'aide pour avoir les champs que je veux en haut des impressions de
mails, j'avais tout ou rien, eh bien je l'ai fait par Automation, c'est
bôô !

Sinon on aurait la possibilité ci-dessous, à condition bien entendu de
cocher dans les références de composants (Ctrl T) "Microsoft MAPI
Controls 6.0" et d'ajouter un contrôle MAPISession et un contrôle
MAPIMessages sur le formulaire.







Tu me prêtes des intentions que je n'ai pas ;-) Par contre,
effectivement, l'utilisation de SendKeys est assez "aléatoire", mais OE
ne supportant pas Automation, c'est à ma connaissance la seule manière
de le piloter.




N'est-ce pas ce qu'on appelle "jouer le petit filou" ?




Ce n'est pas mon genre ;-) .



Effectivement, c'était la mayonnaise qu'il fallait mélanger, et non les
messages :)

Comment je n'ai pas de mayonnaise à la maison ? Bon, ben alors j'ai
encore mélangé ...

Mais effectivement, bien que OE soit
paramétré pour :

http://cjoint.com/?lmeRkuLOZu

Il laisse passer...



J'avais déjà entendu dire que Outlook, question sécurité, ce n'était pas
le top. Je ne savais pas au juste pourquoi ...

Je dois dire qu'avec Eudora 6, tant que l'utilisateur n'a pas donné son
feu vert, le message ne part pas. A moins que l'application soit
paramétrée en mode passoire, ce qui est possible aussi, si l'utilisateur
l'a décidé comme ça. Et il y a McAfee qui veille, aussi. Finalement il a
fallu que je dise amen trois fois pour que ça parte, quand j'ai fait
l'essai.


J'ai juste adapté le code de Dan, c'est surtout la syntaxe de mailto qui
est interessante en fait.



Effectivement ça peut être bon à connaître, histoire de le placer, sur
un site web. Est-ce qu'elle permet d'envoyer une pièce jointe ? Je n'ai
pas bien vu.
Avatar
Gloops
Je réalise qu'il y a à critiquer : j'ai pompé une fonction qui acceptait
en paramètre le destinataire, l'objet et un bout de texte, et j'ai mis
la pièce jointe en dur. Bien entendu, ça aurait été mieux de mettre deux
paramètres de plus, et de s'en servir pour initialiser AttachmentName et
AttachmentPathName.

D'ailleurs, si je n'avais pas "pompé", j'en aurais mis un peu plus long
comme procédure d'erreur, si l'étiquette laisse entendre qu'il y en a une.

Enfin quand il n'y a plus que ça, j'imagine que ça ne prend guère très
longtemps ...
____________________________________
Gloops a écrit, le 12/11/2005 03:45 :

Public Function send_mail(sendto As String, subject As String, _
text As String) As Boolean
'Add The MAPI Components and
'add a MAPI Session and MAPI mail control to your form


On Error GoTo ErrHandler
With MAPISession1

.DownLoadMail = False
.LogonUI = True
.SignOn
.NewSession = True
MAPIMessages1.SessionID = .SessionID
End With
With MAPIMessages1
.Compose
.RecipAddress = sendto
.AddressResolveUI = True
.ResolveName
.MsgSubject = subject
.MsgNoteText = text
.AttachmentName = "Nom de fichier à afficher"
.AttachmentPathName = "cheminvrai nom du fichier"
.AttachmentPosition = 7 'si on veut faire apparaître le fichier
'après le 7ème caractère du message
.Send False 'pour se passer de boîte de dialogue
End With
sendmail = True
ErrHandler:
End Function



Avatar
Jacques93
Bonjour Gloops,
Gloops a écrit :
[...]


J'ai juste adapté le code de Dan, c'est surtout la syntaxe de mailto
qui est interessante en fait.




Effectivement ça peut être bon à connaître, histoire de le placer, sur
un site web. Est-ce qu'elle permet d'envoyer une pièce jointe ? Je n'ai
pas bien vu.



Je crois que certains logiciels acceptent :

&attachment=PieceJointe

mais à ma connaissance, pas Outlook Express.

--
Cordialement,

Jacques.
Avatar
Dan
Merci,cela fonctionne

"Jacques93" a écrit dans le message de news:
OW%
Bonjour Dan,
Dan a écrit :
Bonjour a tous.
Avec le code ci dessus je oeux envoyer par outlooc un message avec piéce
jointe et texte.
je voudrai maintenant dans VB pouvoir inserer directement l'adresse deu
destinataire et expédier automatiquement le mail poue eviter le maximum
de manipulation.
Merci de votre aide



TxtLien = "c:mediacd.jpg"
Piecejointe = TxtLien
'**********************
Dim x
' Lance Outlook express avec l'adresse , l'objet et le message
x = Shell("C:Program FilesOutlook Expressmsimn.exe " &
"/mailurl:mailto:?subject=Bonjour!&body=" & TxtSujet, 3)
' Pour faire Insertion pièce jointe
SendKeys "%I{ENTER}", False
' Pour indiquer le nom du fichier à joindre
SendKeys Piecejointe & "{ENTER}", False
' Pour faire envoyer maintenant
'SendKeys "%F{DOWN}{ENTER}", False
End Sub



Essaie :

Dim x As Long
Dim Destinataire As String
Dim Sujet As String
Dim PieceJointe As String


Destinataire = ""
Sujet = "Bonjour"
PieceJointe = "c:mediacd.jpg"
' Lance Outlook express avec l'adresse , l'objet et le message
x = Shell("C:Program FilesOutlook Expressmsimn.exe " & _
"/mailurl:mailto:" & Destinataire & "?subject=" & _
Sujet & "&body=" & txtSujet, 3)
' Pour faire Insertion pièce jointe
SendKeys "%I{ENTER}", True
' Pour indiquer le nom du fichier à joindre
SendKeys PieceJointe & "{ENTER}", True
' Pour faire envoyer maintenant
SendKeys "%F{DOWN}{ENTER}", True


Syntaxe de mailto :

http://www.ianr.unl.edu/internet/mailto.html

RFC 2368 MailTo :

http://www.ietf.org/rfc/rfc2368
--
Cordialement,

Jacques.


Avatar
Dan
voila ,je l'ai testé,cela fonctionne parfaitement ainsi, maintenant je
cherche a obtenir une cconfirmation de reception?
as tu une idée?
Private Sub OUTLOOK_Click()
'On vérifie la présence du sujet
txtSujet = "Voici une photode du " & Left(Form3.Label1.Caption, 10) & " "
& Form3.Label2.Caption
Destinataire = ""

'On récupere le fichier lié au message
TxtLien = "c:mediacd.jpg"
Piecejointe = TxtLien
'**********************
Dim x
' Lance Outlook express avec l'adresse , l'objet et le message
x = Shell("C:Program FilesOutlook Expressmsimn.exe " & _
"/mailurl:mailto:" & Destinataire & "?subject=" & _
Sujet & "&body=" & txtSujet, 3)

' Pour faire Insertion pièce jointe
SendKeys "%I{ENTER}", False
' Pour indiquer le nom du fichier à joindre
SendKeys Piecejointe & "{ENTER}", False
' Pour faire envoyer maintenant
SendKeys "%F{DOWN}{ENTER}", False
End Sub
"Gloops" a écrit dans le message de news:
43758a2c$0$6679$
Je réalise qu'il y a à critiquer : j'ai pompé une fonction qui acceptait
en paramètre le destinataire, l'objet et un bout de texte, et j'ai mis la
pièce jointe en dur. Bien entendu, ça aurait été mieux de mettre deux
paramètres de plus, et de s'en servir pour initialiser AttachmentName et
AttachmentPathName.

D'ailleurs, si je n'avais pas "pompé", j'en aurais mis un peu plus long
comme procédure d'erreur, si l'étiquette laisse entendre qu'il y en a une.

Enfin quand il n'y a plus que ça, j'imagine que ça ne prend guère très
longtemps ...
____________________________________
Gloops a écrit, le 12/11/2005 03:45 :

Public Function send_mail(sendto As String, subject As String, _
text As String) As Boolean
'Add The MAPI Components and
'add a MAPI Session and MAPI mail control to your form


On Error GoTo ErrHandler
With MAPISession1

.DownLoadMail = False
.LogonUI = True
.SignOn
.NewSession = True
MAPIMessages1.SessionID = .SessionID
End With
With MAPIMessages1
.Compose
.RecipAddress = sendto
.AddressResolveUI = True
.ResolveName
.MsgSubject = subject
.MsgNoteText = text
.AttachmentName = "Nom de fichier à afficher"
.AttachmentPathName = "cheminvrai nom du fichier"
.AttachmentPosition = 7 'si on veut faire apparaître le fichier
'après le 7ème caractère du message
.Send False 'pour se passer de boîte de dialogue
End With
sendmail = True
ErrHandler:
End Function






1 2