Envoyer un mail avec pièce jointe via windows mail et non outlook
Bonjour à tous,
Je me permets d'ouvrir ce sujet car je patauge un peu dessus et je lis plein de chose mais aucune ne semble répondre à mon interrogation.
Contexte :
J'ai un tableau dans lequel j'ai des données client dont leur adresse mail.
Lorsque je suis sur cette feuille et que je clique sur la cellule contenant l'adresse mail, j'ai bien un nouveau mail qui se créait depuis Windows mail (que j'ai associé à ma messagerie Gmail - je n'ai pas outlook). Donc a priori aucun problème pour envoyer des mails "depuis Excel" sans paramétrage particulier.
Là où cela se complique, c'est que lorsque je souhaite créer une macro me permettant d'envoyer un mail à un client, avec un objet, corps du mail et une pièce jointe (pdf, qui n'est pas le classeur ou la feuille Excel mais bien un fichier indépendant), impossible.
De ce que j'ai lu, je dois passer par des CDO (mais étant novice, je ne sais pas trop ce que c'est, et j'avoue avoir tenté, mais Gmail "m'engueule" et ne veut pas...), mais je trouve cela étrange étant donnée que sans macro l'ouverture de mail fonctionne très bien...
Sinon avec la méthode mailto j'arrive bien à générer mon nouveau mail (avec destinataire, objet et corps), mais impossible de mettre de pièce jointe...
Voila, j'espère que mon sujet est assez clairement expliqué et qu'une bonne âme pourra m'aider.
Merci par avance :)
Bonjour KarelleS et
Vous pouvez peut-être essayer comme cela
Sub Test()
' Appel de la fonction
Call SendMail("bob@hotmail.com", "Mon sujet", "Mon Contenu")
End Sub
Public Function SendMail(strDestinataire As String, strSujetMail As String, strContenuMail As String) As Boolean
' Cette procédure retourne FALSE en cas d’erreur d’expédition‘ Gestion des erreurs dans cette procédure
On Error GoTo SendMail_Err
Dim i As Long
' L'utilisation de l'objet CDO nécessite d'ajouter une référence dans votre projet VBA
' Cet ajout se fait généralement par le menu « OUTILS-Références » de votre application Office
' Microsoft CDO for Windows 2000 Library
Dim objEmail As New CDO.Message
With objEmail.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 ' port utilisé
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'S'authentifier
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = "true"
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "account@gmail.com" ' Si autentifié le nom d'utilisateur
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "***************" ' Si authentifié le mot de passe
.Update
End With
With objEmail
.From = "monmail@gmail.com"
.To = strDestinataire
.Subject = strSujetMail
.HTMLBody = strContenuMail
.AddAttachment "C:\dossier\fichier.xls"
.Send
End With
SendMail = True
Set objEmail = Nothing
Exit Function
SendMail_Err:
MsgBox Err.Description
SendMail = False
End Function@+
Merci beaucoup Bruno.
Malheureusement ça ne fonctionne pas. Voici le message que j'ai :
et de plus, j'ai une alerte par mail de Gmail :
Pourquoi suis-je obligée de me réidentifier dans la fonction étant donnée que lorsque je suis directement sur la page Excel et que je clique sur l'adresse mail cela (l'ouverture d'un mail avec comme destinataire l'adresse mail) fonctionne bien ?
Re,
Sécurité Google, iIl faut utiliser un mot de passe pour application à créer sur votre espace, sinon cela ne fonctionnera pas
@+
