Forum - Problèmes liés à mes codes mis à disposition - SendMail CDO
[ 1 2 ] |
--------
le 12/04/2018 : 08:09
par possible924
visiteur
Je tente de comprendre,
J'aimerais me servir des deux dernières fonctions comme suggéré, mais je me pose la question comment faire pour l'attachement. dois faire ça :
'Si le serveur smtp par défaut n'est pas reconnu (clients mail non Microsoft), on pourra employer les fonctions ci-dessous. Function SendMailCDO(Sender As String, Receiver As String, _ Subject As String, BodyText As String, _ PièceJointe As String) Dim Cdo_Message As New CDO.Message Set Cdo_Message.Configuration = GetSMTPServerConfig() With Cdo_Message .From = Sender .To = Receiver .Subject = Subject .TextBody = BodyText .addAttachment = PièceJointe .Send End With Set Cdo_Message = Nothing End Function Function GetSMTPServerConfig() As Object Dim Cdo_Config As New CDO.Configuration Dim Cdo_Fields As Object Set Cdo_Fields = Cdo_Config.Fields With Cdo_Fields .Item(cdoSendUsingMethod) = cdoSendUsingPort .Item(cdoSMTPServer) = "smtp.free.fr" .Item(cdoSMTPServerPort) = 25 .Update End With Set GetSMTPServerConfig = Cdo_Config Set Cdo_Config = Nothing Set Cdo_Fields = Nothing End Function 'Syntaxe: 'Call SendMailCDO("Sender", "Receiver", "Subject", "BodyText", "PièceJointe")
Merci par avance pour la réponse
Pierre
--------
le 12/04/2018 : 08:13
par possible924
visiteur
Le problème est que :
Function SendMailCDO(Sender As String, Receiver As String, _ Subject As String, BodyText As String, _ PièceJointe As String) Dim Cdo_Message As New CDO.Message Set Cdo_Message.Configuration = GetSMTPServerConfig() With Cdo_Message .From = Sender .To = Receiver .Subject = Subject .TextBody = BodyText .addAttachment = PièceJointe .Send End With 'Syntaxe: 'Call SendMailCDO("Sender", "Receiver", "Subject", "BodyText", "PièceJointe")
.addAttachment = PièceJointe me revoie un message d'erreur : "Erreur de compilation, argument non facultatif"
--------
le 12/04/2018 : 08:20
par possible924
visiteur
Mais peut être que cela devrait marcher :
Function SendMailCDO(Sender As String, Receiver As String, _ Subject As String, BodyText As String, _ PièceJointe As String) Dim Cdo_Message As New CDO.Message Set Cdo_Message.Configuration = GetSMTPServerConfig() With Cdo_Message .From = Sender .To = Receiver .Subject = Subject .TextBody = BodyText .addAttachment (PièceJointe) .Send End With Set Cdo_Message = Nothing End Function 'Syntaxe: 'Call SendMailCDO("Sender", "Receiver", "Subject", "BodyText", "W:CheminMaFacture")
Je te souhaite une bonne journée Ici à Toulon, il fait un temps de chien
Pierre
--------
le 13/04/2018 : 20:13
par 3Stone
Administrateur
Bonjour,
Avec la fonction suivante et en respectant ce qui est dit et expliqué, tu as une méthode qui fonctionne parfaitement et sans autres manipulations.
Cordialement,
Pierre (3Stone)
--------
le 15/04/2018 : 10:01
par possible924
visiteur
Pierre,
Merci pour ce code.
J'ai toujours un problème avec l'attachement dans cette fonction :
Public PièceJointe As String Private Function GetSMTPServerConfig() As Object Dim Cdo_Config As New CDO.Configuration Dim Cdo_Fields As Object Set Cdo_Fields = Cdo_Config.Fields With Cdo_Fields .Item(cdoSendUsingMethod) = cdoSendUsingPort .Item(cdoSMTPServer) = DFirst("SMTP_Serveur", "T_Constantes") .Item(cdoSMTPServerPort) = DFirst("SMTP_Serveur_Port", "T_Constantes") .Update End With Set GetSMTPServerConfig = Cdo_Config Set Cdo_Config = Nothing Set Cdo_Fields = Nothing End Function Private Function SendMailCDO(Sender As String, Receiver As String, _ Subject As String, BodyText As String, PièceJointe) Dim Cdo_Message As New CDO.Message Set Cdo_Message.Configuration = GetSMTPServerConfig() Sender = DFirst("Email_Expéditeur", "T_Constantes") BodyText = DFirst("Corps_Message", "T_Constantes") With Cdo_Message .From = Sender .To = "pierre@foucaud.com" .Subject = Subject .TextBody = BodyText .addAttachment ("W:BasesIrisFacturesEnvoiMessagerieMessageries Le Dissez - Facture n° 17705 du 31 mars 2018 - STEPHANIE HALPERSON.pdf") '.addAttachment (PièceJointe) .Send End With Set Cdo_Message = Nothing End Function
Quand j'utilise :
.addAttachment ("W:BasesIrisFacturesEnvoiMessagerieMessageries Le Dissez - Facture n° 17705 du 31 mars 2018 - STEPHANIE HALPERSON.pdf")
ça marche très bien mais pas quand j'utilise la variable
Voilà comment je défini la valeur de la variable :
PièceJointe = "W:BasesIrisFacturesEnvoiMessagerie" & DLookup("FeM_PDF_Nom", "T_Factures_Envoi_Messagerie", "FeM_Facture_Numéro =" & FirstFactNuméro) Me.Test = PièceJointe
Je vérifie dans mon formulaire par Me.Test que la valeur de la variable est la bonne
comment puis-je régler ce problème
Bon dimanche
Pierre
--------
le 15/04/2018 : 13:51
par 3Stone
Administrateur
Bonjour,
Et si au lieu de ce barbare :
"W:BasesIrisFacturesEnvoiMessagerieMessageries Le Dissez - Facture n° 17705 du 31 mars 2018 - STEPHANIE HALPERSON.pdf"
tu essaies avec un nom plus conventionnel :
w:Document123456.pdf
cela fonctionne ?
Si oui, tu sais ce qu'il te reste à faire !
Note :
Un document doit être identifiable, mais pas être rédigé en bon français ou ressembler à une dissertation
Donc, des "n°" et et autres espaces n'ont rien à y faire. Même le mot "facture" est superflu. Un code qui commence par "Fxxxxx" est largement suffisant.
Cordialement,
Pierre (3Stone)
--------
le 15/04/2018 : 16:15
par possible924
visiteur
Je pensais que l'informatique état au service des utilisateurs et non l'inverse !
PièceJointe = "W:BasesIrisFacturesEnvoiMessagerie" & DLookup("FeM_PDF_Nom", "T_Factures_Envoi_Messagerie", "FeM_Facture_Numéro =" & FirstFactNuméro) Me.Test = PièceJointe .addAttachment (Me.Test)
Et là, ça marche ! Pour quelle raison Mystère et je préfèrerais me pas avoir recours à ce curieux artifice.
Je vais fignoler tout ça et peut être reprendre une partie du dernier code que tu as écrit our l'envoi avec Google. La partie de la gestion des erreurs.
Bonne soirée
Pierre
[ 1 2 ] |
Rectifier message Clôturer sujet Remonter