Envoie mail Sans CDO

Bonjour à tous,

J'ai trouvé bcp de code pour envoyer des mails sans avoir de client installé sur son poste.

dans le code suivant, j'ai une erreur " Erreur 429: un composant ActiveX ne peut pas créer d'objet"

sur cette ligne: Set cdomsg = CreateObject("CDO.message")

Public Sub MailEnvoi()

Set cdomsg = CreateObject("CDO.message")
With cdomsg.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'NTLM method
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smptserverport") = 587
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "mygmail@gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "mypassword"
.Update
End With
' build email parts
With cdomsg
.To = "somebody@somedomain.com"
.From = "mygmail@gmail.com"
.Subject = "the email subject"
.TextBody = "the full message body goes here. you may want to create a variable to hold the text"
.Send
End With
    Set cdomsg = Nothing

End Sub

Donc l'idée serait de savoir pourquoi j'ai cette erreur ou s'il y a un moyen de passer outre le CDO.

Merci pour vos retour.

Coucou l'ami,

J'ai moi aussi un excel permettant d'envoyer des mail via Outlook à l'ouverture et selon certaine condition (je te met le code entier à la fin de mon message si jamais)

Concernant ton erreur, sois tu ne nous a pas copier la déclaration de ta variable "cdomsg" sois tu ne l'a pas déclaré :p

Remplace ton :

Set cdomsg = CreateObject("CDO.message")

par :

Dim cdomsg As MailItem
Set cdomsg = Outlook.CreateItem(olMailItem)

Voilà voilà, alors moi c'est "Outlook.CreateItem" car je me sers d'Outlook.

Pense à le remplacer par ta propre boîte mail.

Sinon voici mon code en son entier :

Sub Mail() 'envoie du mail si la VBA Private Sub est lancer
    Dim a As MailItem
    Set a = Outlook.CreateItem(olMailItem) 'utilisation d'Outlook pour l'envoie de l'email
    With a
        .To = "xxx@xxx.fr" 'destinataire
        .Subject = "xxx" 'Objet du mail
        .Attachments.Add ("N:\xxx\xxx.xlsm") 'chemin d'accès à la pièce jointe
        .Body = "xxx" 'Corps du texte
        .Send 'envoyer le mail
    End With
    ActiveWorkbook.Close True 'fermer le fichier en sauvegardant
    End If
End Sub

Bonjour,

Il doit vous manquer la classe CDOSYS correspondante. Installer sur votre client le module Net Framework 3.5 et vérifier si cdosys.dll est alors bien présent dans c:\windows\system32.

Bonjour à tous

Attention : l'envoi de mail CDO fonctionne bien je l'ai déjà expérimenté, mais attention au nombre de mails prévus et la fréquence d'envoi des mails... car perso mon fournisseur d'accès internet m'avais "blacklisté" mon IP et tous les mails que j'envoyais arrivaient dans les spam de mes destinataires...

il avait estimé que je faisais du spam... (envoi d'une centaine de mails en 1 minute, 2 fois par semaines....)

Fred

Bonjour,

Un lien à consulter (impérativement).

http://www.rondebruin.nl/win/s1/cdo.htm

Cdlt

Coucou l'ami,

J'ai moi aussi un excel permettant d'envoyer des mail via Outlook à l'ouverture et selon certaine condition (je te met le code entier à la fin de mon message si jamais)

Concernant ton erreur, sois tu ne nous a pas copier la déclaration de ta variable "cdomsg" sois tu ne l'a pas déclaré :p

Remplace ton :

Set cdomsg = CreateObject("CDO.message")

par :

Dim cdomsg As MailItem
Set cdomsg = Outlook.CreateItem(olMailItem)

Voilà voilà, alors moi c'est "Outlook.CreateItem" car je me sers d'Outlook.

Pense à le remplacer par ta propre boîte mail.

Sinon voici mon code en son entier :

Sub Mail() 'envoie du mail si la VBA Private Sub est lancer
    Dim a As MailItem
    Set a = Outlook.CreateItem(olMailItem) 'utilisation d'Outlook pour l'envoie de l'email
    With a
        .To = "xxx@xxx.fr" 'destinataire
        .Subject = "xxx" 'Objet du mail
        .Attachments.Add ("N:\xxx\xxx.xlsm") 'chemin d'accès à la pièce jointe
        .Body = "xxx" 'Corps du texte
        .Send 'envoyer le mail
    End With
    ActiveWorkbook.Close True 'fermer le fichier en sauvegardant
    End If
End Sub

Merci.

Pour outlook j'ai effectivement réussi mais je cherche a envoyer un mail sans client .

Bonjour,

Il doit vous manquer la classe CDOSYS correspondante. Installer sur votre client le module Net Framework 3.5 et vérifier si cdosys.dll est alors bien présent dans c:\windows\system32.

j'ai effectivement rajouté la référence qui se trouve dans c:\windows\system32. mais quand je retourne sur cette référence elle pointe plus sur c:\windows\system32. mais sur mes documents Je pense que le problème vient peut être de la.

Bonjour à tous

Attention : l'envoi de mail CDO fonctionne bien je l'ai déjà expérimenté, mais attention au nombre de mails prévus et la fréquence d'envoi des mails... car perso mon fournisseur d'accès internet m'avais "blacklisté" mon IP et tous les mails que j'envoyais arrivaient dans les spam de mes destinataires...

il avait estimé que je faisais du spam... (envoi d'une centaine de mails en 1 minute, 2 fois par semaines....)

Fred

Merci pour ce retour je ferais attention quand j'y arriverai

Bonjour,

Un lien à consulter (impérativement).

http://www.rondebruin.nl/win/s1/cdo.htm

Cdlt

je vais me pencher la dessus.

j'ai tout essayé et je pense que le problème vient de la librairie...

cdo
Sub DEMO_EnvoiMailCDO()
Dim mMessage As Object
Dim mConfig As Object

Dim mChps

   Set mConfig = CreateObject("CDO.Configuration")
    mConfig.Load -1
    Set mChps = mConfig.Fields
    With mChps
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        'Adapter suivant votre serveur de mail. (exemple pour Gmail.)=> Hormail "smtp.live.com"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
        'En principe, 25 fonctionne avec tout les serveurs.
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

        'Vous pouvez essayer sans ces trois lignes
        'Mais si votre serveur demande une authentification,
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = "1"
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "*****@*****.*****"
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "******"
        'Si votre serveur demande une connexion sûre (SSL)
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = "true"
        .Update
    End With

    Set mMessage = CreateObject("CDO.Message")
    With mMessage
    Set .Configuration = mConfig
        .To = "*******@******.fr"
        .From = "******@******.com"
        .Subject = "Le sujet du mail"
        .TextBody = "Ce mail vous est envoyer pour tester la macros de lermite"
        'Pour ajouter une pièce jointe, un fichier, classeur, image etc.
        '.AddAttachment 'Chemin et nom complet du fichier à joindre
        .Send
    End With
    Set mMessage = Nothing

    'Libère les ressources
    Set mConfig = Nothing
    Set mChps = Nothing
End Sub

j'ai tout essayé et je pense que le problème vient de la librairie...

Effectivement votre problème vient bien de la bibliothèque "Microsoft CDO for Windows 2000" car le chemin d'accès devrait être :

c:\windows\system32\cdosys.dll

Avez-vous essayé de télécharger et d'installer "Net Framework 3.5" car cela pourrait régler votre problème ?

j'ai tout essayé et je pense que le problème vient de la librairie...

Effectivement votre problème vient bien de la bibliothèque "Microsoft CDO for Windows 2000" car le chemin d'accès devrait être :

c:\windows\system32\cdosys.dll

Avez-vous essayé de télécharger et d'installer "Net Framework 3.5" car cela pourrait régler votre problème ?

Je vais me rapprocher du service informatique de la boite. Merci bcp

Rechercher des sujets similaires à "envoie mail cdo"