actif  Sujet n° 804

le 11/04/2018 : 16:33
par possible924

Anonyme

visiteur

Bonjour,

Dans les deux dernières fonctions proposées, je ne vois pas comment attacher la pièce jointe

(J'espère que ma question est à la bonne place).

A plus

Pierre

Poster une réponse Haut  

Réponse n° 1
--------
le 11/04/2018 : 17:12
par 3Stone

3Stone

Administrateur


Citation :

je ne vois pas comment attacher la pièce jointe

Voir juste la fonction au dessus !

AddAttachment ("c:/cheminfichier.ext")

Un peu de curiosité, que diable wink

Cordialement,

Pierre (3Stone)

Poster une réponse Haut  
Réponse n° 2
--------
le 12/04/2018 : 08:09
par possible924

Anonyme

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

Poster une réponse Haut  
Réponse n° 3
--------
le 12/04/2018 : 08:13
par possible924

Anonyme

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"

Poster une réponse Haut  
Réponse n° 4
--------
le 12/04/2018 : 08:20
par possible924

Anonyme

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

Poster une réponse Haut  
Réponse n° 5
--------
le 13/04/2018 : 20:13
par 3Stone

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)

Poster une réponse Haut  
Réponse n° 6
--------
le 15/04/2018 : 10:01
par possible924

Anonyme

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

Poster une réponse Haut  
Réponse n° 7
--------
le 15/04/2018 : 13:51
par 3Stone

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  wink

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)

Poster une réponse Haut  
Réponse n° 8
--------
le 15/04/2018 : 16:15
par possible924

Anonyme

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

Poster une réponse Haut  
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message
Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter  
Catégories de discussion  Forum