IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Envoi de mail en utilisant CDO


Sujet :

C++Builder

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut Envoi de mail en utilisant CDO
    Bonjour,

    J'ai traduit sous C++ Builder un des nombreux exemples relatifs à l'envoi de mail avec CDO.

    Le programme fonctionne, mais je n'ai pas réussi à traduire la partie relative à l'objet CDO.Configuration.

    Le code sur lequel je bute est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        CONST cdoURL = "http://schemas.microsoft.com/cdo/configuration/" 
        set cdoC = CreateObject("CDO.Configuration") 
     
        Set cdoF = cdoC.Fields 
        With cdoF 
        .Item(cdoURL & "sendusing") = 2 
        .Item(cdoURL & "smtpserver") = SMTPServer 
        .Item(cdoURL & "smtpconnectiontimeout") = 10  
        .Update 
        End With
    Le début ne pose pas de problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            Variant cdoC,cdoF;
     
            cdoC = Variant::CreateObject("CDO.Configuration");
            cdoF = cdoC.OlePropertyGet("Fields");
    Mais je coince sur la suite.
    J'ai essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cdoF.OlePropertySet("http://schemas.microsoft.com/cdo/configuration/sendusing",2);
    mais cela provoque une erreur à l'exécution.

    Auriez vous une idée de la manière de procéder ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    On n'est jamais aussi bien servi que par soi-même. A force de chercher, j'ai trouvé la solution.

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut josse95:
    Perso j'essayerais quelque chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cdoF.OlePropertySet("Item", "cdoURL" & "sendusing", 2);
    Pour le & a voir si il est utile?
    J'arrive trop tard!

  4. #4
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Ce serait sympat pour les autres que tu donne ta solution!

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Effectivement, voilà donc l'exemple d'une fonction (sans la gestion des exceptions) qui envoie un mail au format HTML avec une pièce jointe à une liste de destinataires via CDO:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #include <utilcls.h>
     
    /*
     * txt: message au format texte (utilisé si la messagerie du destinataire ne gère pas le HTML
     * html: message au format HTML
     * subject: sujet du message
     * from: adresse de l'expéditeur
     * dest: liste de destinataires (ex: "\"Marc\" <marc@wanadoo.fr>,\"Thierry\" <thierry@wanadoo.fr>")
     * smtpserver: adresse du serveur SMTP (ex: smtp.orange.fr)
     * pjointe: chemin de la pièce jointe
    */
     
    void TForm1::envoi_mail(char *txt,char *html,char *subject,char *from,
        char *dest,char *smtpserver,char *pjointe)
    {
        Variant cdoM,cdoC,cdoF;
        AnsiString cdoURL="http://schemas.microsoft.com/cdo/configuration/";
     
        cdoM = Variant::CreateObject("CDO.Message");
        cdoC = Variant::CreateObject("CDO.Configuration");
     
        cdoF = cdoC.OlePropertyGet("Fields");
        cdoF.OlePropertySet("Item",(cdoURL + "sendusing").c_str(),2);
        cdoF.OlePropertySet("Item",(cdoURL + "smtpserver").c_str(),smtpserver);
        cdoF.OlePropertySet("Item",(cdoURL + "smtpserverport").c_str(),25);
        cdoF.OleProcedure("Update");
     
        cdoM.OlePropertySet("Configuration",cdoC);
     
        cdoM.OlePropertySet("To",dest);
        cdoM.OlePropertySet("From",from);
        cdoM.OlePropertySet("Subject",subject);
        cdoM.OlePropertySet("TextBody",txt);
        cdoM.OlePropertySet("HTMLBody",html);
        cdoM.OleProcedure("AddAttachment",pjointe);
     
        cdoM.OleProcedure("Send");
     
        cdoF = Unassigned;
        cdoC = Unassigned;
        cdoM = Unassigned;
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Problème d'envoie de mail html avec CDO
    Par lololebricoleur dans le forum VBA Access
    Réponses: 1
    Dernier message: 11/11/2013, 14h21
  2. [FAQ] Envoi de mail en SMTP, CDO
    Par SfJ5Rpw8 dans le forum Vos Contributions VBScript
    Réponses: 16
    Dernier message: 04/01/2010, 16h50
  3. Réponses: 4
    Dernier message: 19/03/2007, 12h03
  4. Envoi un mail via CDO
    Par Chromatic dans le forum Access
    Réponses: 19
    Dernier message: 11/01/2007, 11h59
  5. Envoi de mail grace a l'objet CDO.Message
    Par vinze11 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 12/08/2005, 08h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo