Bonsoir à tous,
Est-il possible d'envoyer depuis excel un mail sans passer par outlook?
Merci
Bonsoir à tous,
Est-il possible d'envoyer depuis excel un mail sans passer par outlook?
Merci
Bonjour
Peut-être que ce code de la FAQ Access pourrait t'aiguiller : http://access.developpez.com/faq/?pa...ailPieceAttach
Starec
bonsoir
et dans la FAQ Excel ... ;o)
http://excel.developpez.com/faq/inde...ailCDOexchange
bonne soirée
michel
J'ai testé le code mais j'ai un message d'erreur: (voir image)
et la ligne ".Send" est surligné en jaune
Merci
http://support.microsoft.com/kb/322338/fr
J'ai trouvé un morceau de code sur le net qui a trait à VBA ACCess mais là aussi ça bug
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Public Function EnvoiMail(De As String, From As String, Sujet As String, Texte As String) Dim iMsg As New CDO.Message Dim iConf As New CDO.Configuration Dim Flds Set Flds = iConf.Fields With Flds .Item(cdoSendUsingMethod) = cdoSendUsingPort '.Item(cdoSMTPServerName) = "192.168.1.2" ' Si vous utilisez la librairie CDO pour exchange .Item(cdoSMTPServerName) = "smtp.mail.yahoo.fr" ' Si vous utilisez la librairie CDO pour Windows 2000 .Item(cdoSMTPConnectionTimeout) = 10 .Item(cdoSMTPAuthenticate) = cdoBasic .Item(cdoSendUserName) = "rrrrr@yahoo.fr" .Item(cdoSendPassword) = "123456" .Item(cdoURLProxyServer) = "server:80" .Item(cdoURLProxyBypass) = "<local>" .Item(cdoURLGetLatestVersion) = True .Update End With With iMsg Set .Configuration = iConf .To = De .From = From .Subject = Sujet .TextBody = Texte '.AddAttachment "C:\un fichier quelconque" .Send End With End Function
Bonjour
Juste une question : Pourquoi ne veux-tu pas passer par Outlook? De qu'elle messagerie disposes-tu ?
Starec
La raison pour laquelle je ne veux pas passer par outlook, c'est parce que depuis 2002 il ya une sécurité qui empêche d'envoyer depuis excel un mail automatiquement.
En fait il ya un message qui surgit: "un programme tente d'envoyer un ...."
et je suis obligé de confirmer par "oui" à chaque fois que la macro s'execute ce qui n'est pas pratique si on veut faire une tâche planifiée.
J'ai vu qu'il ya un utilitaire qui fait ça "Clickyes" mais son inconvénient c qui dit "oui" à tous.
Voilà c pour ça que je veux envoyer un mail sans passer par outlook.
par contre si vous connaissez unz astuce qui me permet de contourner le message d'erreur, je suis preneur.
Bonjour,
J'ai répondu à une question du même genre hier.
http://www.developpez.net/forums/sho...d.php?t=431779
Bonne journée
Soir Bon
Code trouvé sur un forum ( sorry, je n'ai noté ni le lien ni l'auteur )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 Option Explicit ' Utilise une référence à Redemption Outlook Library ' Téléchargement au http://www.dimastr.com/redemption/ ' Ce composant permet de court-circuiter les messages de sécurité d'Outlook Sub EnvoyerFichiersOutlook(AdrDestinataires As String, _ PJ As String, _ Optional Objet As String = vbNullString, _ Optional Msg As String) Dim objOutlook As Outlook.Application Dim NameSpace As Outlook.NameSpace Dim OutlookMsg As Outlook.MailItem Dim RedemptionMsg As Redemption.SafeMailItem 'Destinataires et Pièces Jointes séparés par Sep Dim Dest() As String Dim PJointes() As String Dim iDest As Long, NbDest As Long Dim iPJ As Long, NbPJ As Long Const Sep As String * 1 = ";" Set objOutlook = New Outlook.Application Set NameSpace = objOutlook.GetNamespace("MAPI") NameSpace.Logon Set OutlookMsg = objOutlook.CreateItem(olMailItem) Set RedemptionMsg = New Redemption.SafeMailItem RedemptionMsg.Item = OutlookMsg 'Destinataires Dest = Split(AdrDestinataires, Sep) NbDest = UBound(Dest) For iDest = 0 To NbDest RedemptionMsg.Recipients.Add Dest(iDest) Next 'Pièces Jointes PJointes = Split(PJ, Sep) NbPJ = UBound(PJointes) For iPJ = 0 To NbPJ RedemptionMsg.Attachments.Add PJointes(iPJ) Next RedemptionMsg.Subject = Objet RedemptionMsg.Body = Msg RedemptionMsg.Send NameSpace.Logoff Set OutlookMsg = Nothing Set RedemptionMsg = Nothing Set objOutlook = Nothing End Sub
salut,
tu peux essayer ce code.
Il sert aussi pour joindre un fichier :
@+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Sub cdo() Dim oCDO Dim Fichier As Variant ChDir "C:\ " Fichier = Application.GetOpenFilename("Fichiers PDF (*.pdf), *.pdf") Set oCDO = CreateObject("CDO.Message") With oCDO With .Configuration.Fields .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.ton frs.com" .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = "587" .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = "1" .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "ton nom dutilisateur" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "ton mot de passe" .Update End With .From = "ton mail" .To = "un mail" .Subject = "Essai de mail" & Now .TextBody = "Voici un petit message " & vbCrLf & "pour tester l'envoi de mail par CDO/VBScript" .AddAttachment Fichier .Send End With End Sub
GREG
salut tout le monde,
Navré de vous annoncez ça mais aucun de ces codes ne marche
![]()
salut,
Pour mon code il faut que tu ajoute dans outil/Réference : Microsoft CDO for Exchange 2000 Library.
Tu l'as fait ?
GREG
moi aussi, impossible de faire quoi que ce soit en CDO.
Je passe par un serveur exchange (messagerie d'entreprise) et je veux eviter la bloquage (il faut cliquer sur yes) sans installer de logiciel annexe.
La solution sans reference de la FAQ ne marche pas
Sur .send ca met "The SendUsing configuration is invalid".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Sub Envoi_CDO2() Dim CdoMessage As Object Set CdoMessage = CreateObject("CDO.Message") With CdoMessage .Subject = "Exemple" .From = "xxxxx@wanadoo.fr" .To = "yyyyy@orange.fr" .CC = "" .BCC = "" .TextBody = "Texte dans le corps de message" .Send End With Set CdoMessage = Nothing End Sub
Peut etre rajouter un serveur smtp mais je fais comment pour le trouver sur ma massagerie exchange d'entreprise (outlook 2003, win XP)?
Salut, voir post du 29/10/2007 de greg06500 sur la partie With .Configuration.Fields en l'adaptant à ton contexte
essaye de mettre ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Sub Envoi_CDO2() Dim CdoMessage As Object Set CdoMessage = CreateObject("CDO.Message") With CdoMessage .Subject = "Exemple" .From = "xxxxx@wanadoo.fr" .To = "yyyyy@orange.fr" .CC = "" .BCC = "" .TextBody = "Texte dans le corps de message" ' .Send End With CdoMessage.display SendKeys "^{ENTER}", True Set CdoMessage = Nothing End Sub
80% des pannes informatiques se situent entre le clavier et la chaise...
L'informatique ça vous énerve, prenez 5mns de détente ici
======================
Une fois que le problème à trouvé une solution n'oubliez pas le
Salut, est-il possible de parametrer un accusé de lecture avec RedemptionMsg ?
« Ne me faites pas d'objections.
Les difficultés en feront assez d'elles-mêmes. »
sir Winston Churchill
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager