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- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
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
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
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).