Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Autresci-joint un classeur pour envoi mail en smtp avec cdo avec ou sans pièce jointe
J'ai réalisé ce classeur qui pourrait certainement intéresser plusieurs personnes !?
à tester ! faire des remarques ! chez moi ça fonctionne parfaitement mais j'y travaille encore qq fois.
Classeur avec plusieurs macros pour envoyer des Mails avec ou sans pièce jointe ou dans le corps du msg
Re : ci-joint un classeur pour envoi mail en smtp avec cdo avec ou sans pièce jointe
Bonsoir à tous
Suite de mes investigations avec CDO et Exchange
Avant de tester le code tel que l'a écrit Roland_M, les deux codes ci-dessous fonctionnent mais si j'ai bien compris
on passe par Outlook (ou plutôt par le client MAPI par défaut qui se trouve être Outlook à mon taf)
Ces codes fonctionne si Outlook est ouvert avant l’exécution du code VBA
->Dans le doute, j'ai coché ces deux références : • CDO 1.21 (cdo.dll)
• Microsoft CDO for Windows 2000 Library (cdosys.dll)
Si certains d'entre vous veulent tester (Prérequis: utilisation d'EXCHANGE)
Il faut remplacer dans le code strServer par le vrai nom du serveur Exchange
et strMailBox par un nom valide d'un compte message de votre boite
• Pour tester j'ai pris le nom de ma boite mail (pas l'adresse mail)
Le souci ici c'est qu'avec ces codes le fameux message de sécurité de Outlook apparaît
Chose qui ne devrait pas arriver si j'arrivais à adapter le code CDO (sans Outlook) de Roland_M.
Je poursuis mes investigations et vous tiens au courant. PS: Personne sur le forum ne connait ou n'utilise Exchange (et/ou CDO + Exchange) ?
Un peu d'aide serait la bienvenue
Code:
Sub TestSMI_OK()
Dim objSession As Object, objMessage As Object, objRecipient As Object
'test avec session OL ouverte
Dim strMailBox, strProfileInfo, strServer As String
strServer = "NOMSERVEUREXCHANGE"
strMailBox = "ACCOUNTNAME"
Set objSession = CreateObject("MAPI.Session")
objSession.Logon "", "", False, True, 0, True, strServer & Chr(10) & strMailBox
Set objMessage = objSession.Outbox.Messages.Add
objMessage.Subject = "SUJET DU JOUR: " & StrConv(Format(Date, "mmmm yyyy"), 3) & Format(Time, " hh:mm")
objMessage.Text = "Ceci est un message de test"
Set objRecipient = objMessage.Recipients.Add
objRecipient.Name = strMailBox
objRecipient.Resolve
objMessage.Send
MsgBox "Message envoyé correctement!", vbInformation, "INFO"
objSession.Logoff
End Sub
PS: Je pense que la version II est identique à la I mais avec une syntaxe simplifiée
Code:
Sub TestSMII_OK()
'test avec session OL ouverte
Dim objSession As Object, objOutBox
Dim objNewMessage As Object, objRecipients As Object, objOneRecip As Object
Set objSession = CreateObject("MAPI.session")
objSession.Logon showDialog:=False, NewSession:=False
Set objOutBox = objSession.Outbox
Set objNewMessage = objOutBox.Messages.Add
Set objRecipients = objNewMessage.Recipients
Set objOneRecip = objRecipients.Add
With objOneRecip
.Name = "ACCOUNTNAME"
.Resolve ' get MAPI to determine complete e-mail address
End With
With objNewMessage
.Subject = "SUJET DU JOUR: " & StrConv(Format(Date, "mmmm yyyy"), 3) & Format(Time, " hh:mm")
.Text = "Ceci est un message de test"
.Send
End With
objSession.Logoff
End Sub
Re : ci-joint un classeur pour envoi mail en smtp avec cdo avec ou sans pièce jointe
Salut Staple, le fil,
Merci pour ton retour, j'ai cherché pas mal également, mais n'ai rien trouvé de performant.
En tout cas, merci de ta ténacité, et tiens nous au courant.
Re : ci-joint un classeur pour envoi mail en smtp avec cdo avec ou sans pièce jointe
Bonsoir Yaloo
Yaloo
Je n'arrive pas à savoir si il faut indiquer un numéro de port ou pas si on utilise Exchange.
Je viens encore de lire pas mal de trucs sur Exchange et CDO
et je viens de m’arrêter la dessus:
Re : ci-joint un classeur pour envoi mail en smtp avec cdo avec ou sans pièce jointe
bien le bonjour à tous,
petite info que j'ai collecté sur developpez.com
À partir de Office 2010, CDO n'est plus inclus dans le pack et ne fonctionnera pas avec les versions Office 64 bits.
Vous pourrez donc l'utiliser sans problème de Office 2000 à 2007.
Pour les versions ayant été mises à jour vers 2010 en 32 bits, les tests que nous avons effectués se sont révélés positifs.
comme quoi, à quoi ça sert que "ducon" se décarcasse ...!?
j'ai remarqué qu'en informatique, ce n'est pas tellement évoluer que l'on fait, mais plutôt toujours recommencer !
on passe son temps à chercher des solutions pour palier à l'incompatibilité des logiciels MS Office !
ça ne m'étonne pas que beaucoup disent que c'est une "daube" !
adapter une formule, une fonction, passe encore, mais des programmes qu'il faut refaire entièrement NON !
Bon, soit, si ça ne fait pas avancer le schmilblick, ça fait du bien !
Re : ci-joint un classeur pour envoi mail en smtp avec cdo avec ou sans pièce jointe
Bonsoir à tous
Roland_M:
Merci pour ces infos.
Je suis toujours dans l'impasse avec CDO + Exchange.
Puisque cela fonctionne, en passant par MAPI.Session, normalement je présume que j'ai pas à utiliser ces lignes sendusername et sendpassword (de plus je ne connais pas le password de ma boite mail boulot)
Pour le moment je sèche, j'espère que d'autres ici finiront par éclairer ma lanterne.
(En attendant, si besoin je passerai pour le moment par Outlook ou par CDO + stmp gmail ou autre)
Attendons l'avis d'autres membres du forum utilisant une messagerie avec Exchange pour définitivement déclarer forfait
PSour ma gouverne, je voudrai bien comprendre pourquoi cela fonctionne en passant par Outlook mais pas avec CDO.
Car avec Outlook* je suis identifié par mon login de session donc je n'ai pas besoin de renseigner username et mot de passe, logiquement je devrai pouvoir faire pareil avec CDO, non ?
*: voir mes exemples de test plus bas dans le fil ou celui-ci tout simple.
Code:
Sub mOL()
With CreateObject("Outlook.Application").CreateItem(0)
.To = "adressemail": .Subject = "TEST": .Send
End With
End Sub
• Lundi je testerai sans grande conviction, ceci:
Code:
Sub mCDO()
With CreateObject("CDO.Message")
.Subject = "TEST"
.From = "monemail": .To = "monemail"
.TextBody = "I hope that someone gets my message in a bottle. ;o)": .Send
End With
End Sub
Re : ci-joint un classeur pour envoi mail en smtp avec cdo avec ou sans pièce jointe
Bonjour à tous
Roland_M
On utilise le même G()()gle
Donc j'avais déjà lu ces liens que tu cites dans ton dernier message
Et j'avais bloqué ici:
Code:
' Note here: showing an HTTP URL but the
' location must be local to use the
' Exchange OLE DB Provider
Conn.Open "http://server/exchange/user1"
Je ne connais pas le nom du Exchange OLE DB Provider de mon taf sauf s'il s'agit du même nom
que celui que je mettais plus bas dans mes exemples strServer = "NOMSERVEUREXCHANGE"
PS: Je suppose que les tentatives de connexion par ADO ou CDO doivent être "loggées" ou "tracées". Alors n'est-ce point risqué sur le plan professionnel ? Cela mérite pas un blâme, non ? Je vois bien les petits gars du Service Informatique me demandant ce que je "bouene" avec CDO et Exchange
Re : ci-joint un classeur pour envoi mail en smtp avec cdo avec ou sans pièce jointe
re
c'est vrai si tu es dans le privé !!!
MAIS,
si tu es dans l'administration ...
il y a les avertissements^10 puis arrivent les blâmes^10
si tu es sage, après trois années, remise à zéro des compteurs ...
et on repart pour un tour ... re-avertissements ... blâmes ...
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.