Envoi d'un mail par l'application courrier

Bonjour,

Je souhaite envoyer un mail lorsqu'on clique sur un bouton de mon UserForm, j'y suis arrivée mais en passant par l'application Outlook or je souhaiterais l'ouvrir avec l'application Courrier et Calendrier.

J'ai essayé de plusieurs manières la seule qui fonctionne le mieux, pour l'instant, est en utilisant le hyperlien mais je n'arrive pas à remplir le body et le sujet du mail.

Voici mon code :

Private Sub CommandButton7_Click()

Dim R As Range
Dim R_LignE As Integer
Dim xOutMail As Object
Dim xMailBody As String

NomMailEntrD = "Mail Transporteur"
NomDonneeS = "DONNEES"
NomFichieR = ActiveWorkbook.Name
NomMail = "MAIL"

MailEntrD_Col = Workbooks(NomFichieR).Sheets(NomMail).Range("A:ZZ").Find(NomMailEntrD, LookIn:=xlValues, lookat:=xlWhole).Columm

Set R = Workbooks(NomFichieR).Sheets(NomMail).Range("A:ZZ").Find(what:=ComboBox3.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not R Is Nothing Then
    R_LignE = R.Row
    Workbooks(NomFichieR).Sheets(NomMail).Activate
    Workbooks(NomFichieR).Sheets(NomMail).Cells(R_LignE, MailEntrD_Col).Select
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End If
xMailBody = "Bonjour, " & vbNewLine & _
    "Nous avons la commande " & ncde.Value & " à vous livrer le " & ComboBox4.Value & "/" & ComboBox5.Value & "/" & TextBox37.Value & " pour " & total_pal.Value & " PAL - " & TextBox18.Value & " EUR / " & TextBox21.Value & " SOL. Pouvez-vous me donner une heure de livraison entre 8h et 12h?" & vbNewLine & _
    "Merci."
On Error Resume Next
xOutMail = Application.CreateItem(0) 'le problème vient d'ici en premier lieu d’après VBA
With xOutMail
    .To = ComboBox3.Value
    .CC = ""
    .BCC = ""
    .Subject = "Demande de RDV " & TextBox24.Value & " CDP DISTRIBUTION"
    .TextBody = xMailBody
End With
'On Error GoTo 0
Set xOutMail = Nothing
End Sub

Bonsoir,

Envoi d'un mail via VBA sans passer par Outlook, la seule alternative est d'utiliser la classe CDO où il faut déclarer le serveur de messagerie sortant avec tous ses paramètres ainsi que le compte utilisé.

NB : Votre code est relatif à l'envoi d'un mail par Outlook sauf que cette instruction :

xOutMail = Application.CreateItem(0)

est incorrecte car elle se réfère à une application OutlooK et non à l'application Excel.

L'instruction correcte est :

xOutMail = CreateObject("Outlook.Application").CreateItem(0)

Bonjour,

J'ai donc essayé avec la classe CDO mais ça ne fonctionne pas du tout, rien de s'ouvre.

J'ai mis des espaces au milieu dans les liens car sinon je ne peux pas envoyer...

Sub EnvoyerMail() 'ACTIVER MICROSOFT CDO FOR WINDOWS LIBRARY 2000 DANS REFERENCES 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. .Item("[http://schemas.microsoft. com/cdo/configuration/smtpserver]") = "smtp.contoso. 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]") = " " 'MON MAIL .Item("[http://schemas.microsoft. com/cdo/configuration/sendpassword]") = " " 'MON MOT DE PASSE '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 .From = " " .To = " " '.CC = 'destinataires en copie (CC) '.BCC = 'destinataires en copie cachée (CCI) .Subject = "Le sujet du mail" .TextBody = "Ce mail vous est envoyer pour tester la macros de lermite" End With Set mMessage = Nothing 'Libère les ressources Set mConfig = Nothing Set mChps = Nothing End Sub

J'ai donc essayé avec la classe CDO mais ça ne fonctionne pas du tout, rien de s'ouvre.

Je ne sais pas où vous avez pioché ce code mais c'est sûrement un code qui ne date pas d'hier.

1- Le serveur de messagerie sortant est toujours associé au fournisseur du compte mail. Le serveur "smtp.contoso. com" est donc parfaitement inapproprié

2- aujourd'hui, suite au renforcement des protections, aucun fournisseur de compte n'utilise plus le le port 25.

Les exemples les plus récents que vous trouverez dans ce Forum concernent des comptes Google (Gmail).

Rechercher des sujets similaires à "envoi mail application courrier"