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 d'un mail automatiquement


Sujet :

C++Builder

  1. #1
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut Envoi d'un mail automatiquement
    Bonjour à vous,
    Dans mon application je gère aussi les garanties des pc de mon parc informatique. Dans cette application je rentre la date d'achat de mon matériel et la date de fin de la garantie, ce que je voudrais faire c'est lorsque l'on arrive à 1 mois avant la fin de garantie c'est envoyer un mail automatiquement sans que l'on est à remplir au responsable du parc disant que la garantie est pratiquement terminée pour ce poste. Je vous remercie par avance de l'aide que vous pourrez m'apporter.

  2. #2
    Membre actif

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Points : 262
    Points
    262
    Par défaut yop
    Salut,
    Il y a des composants et des exemples fournis avec C++ Builder. Le composant s'appelle : NMSMTP et l'exemple se trouve ici : C:\Program Files\Borland\CBuilder6\Examples\FastNet\SMTP
    Sinon, tu peux utiliser aussi le groupe de composants Indy qui se trouve ici : http://www.indyproject.org/download/Files/Indy9.html
    Cordialement,
    MaTHieU_
    Embarcadero RAD Studio XE / Microsoft Windows 7 Édition Intégrale (64 bits)

  3. #3
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut
    J'ai déjà regardé l'exemple de builder mais comme bien souvent je trouve que ces exemples sont vraiment complexe et non commenter dans le code. Pour moi ce n'est pas évident à comprendre avec cela. Surtout que c'est en anglais. Je cherche juste à faire un truc simple c'est envoyer un mail avec un message enregistrer à toujours la même personne (administrateur du parc) lorsq'une machine arrive en fin de garantie. Merci de vos réponses.

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Salut,
    avec le composant TNMSMTP (dans FastNet) tu peux envoyer un mail de la manière suivante :

    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
     
          // Connexion Si on n'est pas connecté
          if (!FormMail->NMSMTP1->Connected)
          {
             // Initialisation
             FormMail->NMSMTP1->Host   = config_->host_;   // Hote distant
             FormMail->NMSMTP1->Port   = config_->port_;   // Port : 25
             FormMail->NMSMTP1->UserID = config_->userId_; // identifiant : facultatif
             FormMail->NMSMTP1->Connect();
          }
     
          // Si on est connecté
          if (FormMail->NMSMTP1->Connected)
          {
             // Adresse électronique de l'expéditeur du message
             FormMail->NMSMTP1->PostMessage->FromAddress = config_->adresseExp_;
             // Nom de l'expéditeur du message électronique.
             FormMail->NMSMTP1->PostMessage->FromName    = config_->nomExp_;
             // Insertion de l'adresse de destination
             FormMail->NMSMTP1->PostMessage->ToAddress->Add(config_->adresseDest_);
     
             // Titre du mail
             FormMail->NMSMTP1->PostMessage->Subject = config_->titre_;
             // Insertion de toutes les lignes du corps de l'e-mail
             int nbLignes = config_->corps_->Count;
             for (int i = 0; i < nbLignes; ++i)
                FormMail->NMSMTP1->PostMessage->Body->Add(config_->corps_->Strings[i]);
     
             // Attachements de tous les fichiers à joindre au mail
             int nbFichiers = config_->fichiers_->Count;
             for (int i = 0; i < nbFichiers; ++i)
                NMSMTP1->PostMessage->Attachments->Add(config_->fichiers_->Strings[i]);
     
             // Envoi du mail
             FormMail->NMSMTP1->SendMail();
     
              // Déconnexion
              FormMail->NMSMTP1->Disconnect();
           }
    où FormMail est la form contenant le composant TNMSMTP

  5. #5
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut
    Merci Lydie, je pense qu'au va y arriver avec ta solution, donc j'ai remplie tout les champs de NMSMTP1 dans l'inspecteur de objets. Mais malheureusement cela ne compile pas, j'ai l'erreur suivante symbol _config non définie, que faire ??
    Merci de l'aide.

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Oui, désolé j'ai fait un copier/coller d'une partie de mon code.
    config_ est une instance de classe que j'ai créé.
    À la place de config_-> met la configuration que tu veux.

    Je met les attributs de la config pour les types :

    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
     
          /** Chemin vers le fichier d'intialisation    */
          String chemin_;
     
          /** Hote de connexion                             */
          String host_;
          /** Port de connexion                              */
          int port_;
          /** Identifiant de l'utilisateur                    */
          String userId_;
     
          /** Adresses electroniques des destinataires  */
          TStringList* adresseDest_;
          /** Adresse electronique de l'exediteur          */
          String adresseExp_;
          /** Nom de l'expéditeur                                */
          String nomExp_;
     
          /** Liste des fichiers à attacher au mail          */
          TStringList* fichiers_;
          /** Titre du mail                                           */
          String titre_;
          /** Corps du texte                                        */
          TStringList* corps_;
    J'espère que c'est un peu plus clair

  7. #7
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut
    Cela veut dire quoi ??
    config_ est une instance de classe que j'ai créé.
    Comment déclarer config_??

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Ce que je veux dire c'est qu'il suffit de remplacer les config_->... par les valeurs souhaitées

    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
     
          // Connexion Si on n'est pas connecté 
          if (!FormMail->NMSMTP1->Connected) 
          { 
             // Initialisation 
             FormMail->NMSMTP1->Host   = "195.60.31.12";   // Hote distant 
             FormMail->NMSMTP1->Port   = 25;               // Port : 25 
             FormMail->NMSMTP1->UserID = "Moi";            // identifiant : facultatif 
             FormMail->NMSMTP1->Connect(); 
          } 
     
          // Si on est connecté 
          if (FormMail->NMSMTP1->Connected) 
          { 
             // Adresse électronique de l'expéditeur du message 
             FormMail->NMSMTP1->PostMessage->FromAddress = "toto@caramail.com"; 
             // Nom de l'expéditeur du message électronique. 
             FormMail->NMSMTP1->PostMessage->FromName    = "Moi"; 
             // Insertion de l'adresse de destination 
             FormMail->NMSMTP1->PostMessage->ToAddress->Add("titi@hotmail.com"); 
     
             // Titre du mail 
             FormMail->NMSMTP1->PostMessage->Subject = "Titre du mail"; 
             // Insertion de la ligne du corps de l'e-mail 
             FormMail->NMSMTP1->PostMessage->Body->Add("Contenu du mail");
     
             // Attachement du fichier à joindre au mail 
             NMSMTP1->PostMessage->Attachments->Add("Fichier.txt"); 
     
             // Envoi du mail 
             FormMail->NMSMTP1->SendMail(); 
     
             // Déconnexion 
             FormMail->NMSMTP1->Disconnect(); 
           }
    Ca devrait marcher

  9. #9
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut
    Merci beaucoup Lydie cela fonctionne très bien, il reste juste un dernier détail pour que j'aimerais savoir, j'ai mis tout mon code dans un bouton afin pour testé que mon message parte lorsque je clique sur ce bouton là tout fonctionne très bien. Mon problème c'est si je reclique sur ce bouton sans quitter l'application et bien là mon message part toujours mais dans le body le message est doubler, si je recommence tripler .... Alors que si je ferme l'application après chaque appui sur le bouton et que je relance mon application je n'ai as ce problème. Comment résoudre cela ??
    Merci vraiment beaucoup de toute cette aide sans laquelle mon application n'aurais pas fonctionner sur cette partie.

  10. #10
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Oui, c'est normal à chaque Add, la donnée est rajouté à la suite des autres déjà insérées. Il faut donc vider la structure avant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       // Vide les informations précédements insérées
       FormMail->NMSMTP1->PostMessage->ToAddress->Clear();
       FormMail->NMSMTP1->PostMessage->Body->Clear();
       FormMail->NMSMTP1->PostMessage->Attachments->Clear();

  11. #11
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut
    Merci vraiment beaucoup car ta soulution fonctionne très bien et n'est pas lourde pour le code. Merci beaucoup.

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

Discussions similaires

  1. [SP-2010] Envoi d'e-mail automatique
    Par swann7 dans le forum SharePoint
    Réponses: 6
    Dernier message: 18/08/2010, 13h08
  2. [MediaWiki] Envoi d'e-mails automatiques
    Par jadey dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 26/08/2009, 13h58
  3. envoie d'un mail automatique
    Par pythfred dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/06/2008, 16h10
  4. envoi d'un mail automatiquement
    Par jonnyboy dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 09/07/2007, 10h39
  5. [Upload] Envoi d'un mail automatique...
    Par FredMines dans le forum Langage
    Réponses: 7
    Dernier message: 26/03/2006, 17h13

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