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 dans une appli


Sujet :

C++Builder

  1. #1
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut Envoi de mail dans une appli
    Bonjour,
    J'ai parcouru la F.A.Q et le forum assez longuement et je n'ai trouvé de réponse qui me satisfasse vraiment... dans la F.A.Q j'ai trouvé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute (Handle, "open", "mailto:adresse@provider.ex?subject=Titre_du_message&body=Corps du message", 0, 0, SW_SHOWNORMAL);
    Ce la permet d'envoyer un mail mais pas de mettre une pièce jointe.
    Dans mon cas c'est important
    J'ai trouvé également ceci :
    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
    43
    44
    45
    46
    47
    48
     
    if(TIdSMTP1->Connected())
    	TIdSMTP1->Disconnect();
     
    if(!TIdSMTP1->Connected()){
    	TIdSMTP1->Host               = "217.0.116.152";
    	TIdSMTP1->Port               = 25;
    	TIdSMTP1->UserId             = "???";
    	TIdSMTP1->Password           = "password";
     
    	if((TIdSMTP1->UserId.Trim().Length() == 0) && (TIdSMTP1->Password.Trim().Length() == 0)){
    		TIdSMTP1->AuthenticationType = atNone;
    	}else{
    		TIdSMTP1->AuthenticationType = atLogin;
    	}
     
            TIdSMTP1->Connect();
    }
     
    if(Form1->TIdSMTP1->Authenticate()){
    	obj_TIDMessage                             = new TIdMessage(this);
    	obj_TIDMessage->From->Address              = "add@mail.fr";
    	obj_TIDMessage->From->Name                 = "Name";
    	obj_TIDMessage->ReplyTo->EMailAddresses    = "add@mail.fr";
     
    	obj_TIDRecipientList                       = new TIdEMailAddressList(obj_TIDMessage->Recipients);
    	obj_TIDRecipientList->Add();
    	obj_TIDRecipientList->EMailAddresses       = "add@mail.fr";
     
    	obj_TIDMessage->Recipients                 = obj_TIDRecipientList;
    	obj_TIDMessage->Subject                    = "Demande de mise à jour";
     
    	for(int i=0; i<10; i++){
    		obj_TIDMessage->Body->Add("Ligne " + String(i));
    	}
     
    	obj_TIDAttachment                          = new TIdAttachment(obj_TIDMessage->MessageParts, "c:\\monfichier.pdf");
    	obj_TIDAttachment->ContentType             = "monfichier.pdf";
     
    	TIdSMTP1->Send(obj_TIDMessage);
    	obj_TIDMessage->Clear();
    }else{
    	ShowMessage("Erreur d'authentification");
    }
     
    TIdSMTP1->Disconnect();
    TIdSMTP1->Free();
    obj_TIDMessage->Free();
    Mon problème c'est que je ne sais pas comment mettre en place ce code ci-dessus (librairie à rajouter ?)
    Si quelqu'un connait un moyen d'envoyer un mail avec un texte très court, une adresse prédéfinie et une pièce jointe très petite je suis preneur.(du même style que le shell... mais avec une pièce jointe)
    Merci par avance pour votre aide.
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  2. #2
    Membre actif Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Points : 206
    Points
    206
    Par défaut
    Slt , je pense que tu sera content

    utilise 2 composants : TOpenDialogue et TNMSMTP1

    Pour la connexion Connexion/Déconnexion
    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
     
     
    if (NMSMTP1->Connected)
     { NMSMTP1->Disconnect();
       Label9->Caption= " Déconnecter ";
     }
     else
     {
      NMSMTP1->Host = Edit1->Text;
      NMSMTP1->UserID = Edit2->Text;
      NMSMTP1->Connect();
      Label9->Caption= " Connecter";
     }
     
    }
    pour l'envoi de l'email

    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
    
     if (NMSMTP1->Connected)
     {
      NMSMTP1->SubType = mtPlain;
      NMSMTP1->PostMessage->FromAddress = Edit3->Text;
      NMSMTP1->PostMessage->FromName = Edit5->Text;
      NMSMTP1->PostMessage->ToAddress->Text = Edit4->Text;
      NMSMTP1->PostMessage->Body->Text = Memo4->Text;
    
      // renvoi tout les  chemins et noms des fichiers se trouvant dans la liste
      NMSMTP1->PostMessage->Attachments->Text = ListBox1->Items->Text;
    
      NMSMTP1->PostMessage->Subject = Edit8->Text;
      NMSMTP1->PostMessage->LocalProgram = Edit6->Text;
      NMSMTP1->SendMail();
      ShowMessage("Message envoyez vers " + Edit4->Text);
     //====================================
     // obligatoire pour l'envoie
       NMSMTP1->Disconnect();
       Label9->Caption= " Deconnectez ";
     //====================================
     }
     else
      ShowMessage("Vous devez vous connecter avant d'envoyer votre message");
    pour le code qui doit se trouver derrière le bouton permettant de sélectionner les pièces jointes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
      OpenDialog1->Execute();
     ListBox1->Items->Add(OpenDialog1->FileName);
    Aucune librairie etc..

    Dans Host :
    tu dois mettre le nom du serveur smtp de ton fournisseur d'accès Internet

    dans UserId : Ton code fournis par ton fournisseur d'accès Internet


    Bonne route

  3. #3
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    merci bcp pour toutes ces information, ce code me parait vraiment excellent, cependant je reste un peut perplexe...
    Apparemment ce code fait partie d'une fenêtre que tu as déjà construite. Donc qui fonctionne je suppose... Mon problème c'est que j'aimerais savoir si cela fonctionne avec hotmail? en effet quand je fait le test avec un compte hotmail je rentre ces informations la :
    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
    if (NMSMTP1->Connected)
     {
      NMSMTP1->SubType = mtPlain;
      NMSMTP1->PostMessage->FromAddress = "monhotmail@hotmail.fr";
      NMSMTP1->PostMessage->FromName = "monhotmail";
      NMSMTP1->PostMessage->ToAddress->Text = "hotmaildestinataire@hotmail.fr";
      NMSMTP1->PostMessage->Body->Text = Memo_resultat_test->Text;
     
      // renvoi tout les  chemins et noms des fichiers se trouvant dans la liste
      NMSMTP1->PostMessage->Attachments->Text = ListBox1->Items->Text;
     
      NMSMTP1->PostMessage->Subject = "Demande de licence";
      NMSMTP1->PostMessage->LocalProgram = "???";
      NMSMTP1->SendMail();
      ShowMessage("Message envoyez vers ");
     //====================================
     // obligatoire pour l'envoie
       NMSMTP1->Disconnect();
     //====================================
     }
     else
      ShowMessage("Vous devez vous connecter avant d'envoyer votre message");
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm_test_version::NMSMTP1AttachmentNotFound(
          AnsiString Filename)
    {
    if (NMSMTP1->Connected)
     { NMSMTP1->Disconnect();
    //   Label9->Caption= " Déconnecter ";
     }
     else
     {
      NMSMTP1->Host = "localhost";
      NMSMTP1->UserID = "monhotmail@hotmail.fr";
      NMSMTP1->Connect();
    Hors lorsque je test ce code la je me retrouve avec le message d'erreur qui m'indique de me connecter.
    Comment puis-je contourner ce problème? où est ce que les champs ne sont pas bien remplis??? dans quel cas si tu pouvais me donner des exemples ça serai cool, c'est la première fois que je m'occupe d'un module mail.

    Merci bcp en tout cas!
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  4. #4
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 76
    Points : 59
    Points
    59
    Par défaut
    Au dernière nouvelle Micro$oft a désactivé tout fonctionnement de logiciel tier pour l'envoie d'email avec un compte hotmail. Outlook ne peut plus le faire. Et Thunderbird y arrive avec un plugin qui ne fait qu'ouvrir une page html la lire pour l'affiche dans l'interface du logiciel. Il te faudra donc une adresse qui accepte l'envoie et réception par serveur SMTP / POP3 pour utiliser ce code.

  5. #5
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    J'ai pris note de cette information.
    Je me suis donc mis en tête de faire le test avec un compte free...
    voici le code que je met pour la connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      NMSMTP1->Host = "smtp.free.fr";
      NMSMTP1->UserID = "l.solczynski";
      NMSMTP1->Connect();
    Mais cela ne fonctionne pas.
    Quelqu'un pourait il me dire pourquoi cela bloque.
    Je précise, le message qui apparait c'est que je ne suis pas connecté.
    Merci par avance.
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  6. #6
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Il te manque le password pour pouvoir te connecter
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  7. #7
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    En effet mais je n'arrive pas à trouver la fonction qui me permettrai de le rentrer.
    NMSMTP1->???
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  8. #8
    Membre actif Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Points : 206
    Points
    206
    Par défaut
    NMSMTP1->UserID = ton password

    je l'ai mis dans ce post !

  9. #9
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 76
    Points : 59
    Points
    59
    Par défaut
    Derniére petite info, en général les serveur SMTP refuse une connection si la personne n'as pas une IP appartenant au propriétaire du serveur SMTP. Plus clairement si on as une livebox et qu'on essaye d'envoyer un mail avec un serveur free ce sera refusé. Pareil si une freebox essaye d'envoyer sur le SMTP d'orange. Il faut une connections de free pour envoyer par le smtp de free... etc

    PS on peut le vérifier en tenter d'envoyer une message avec telnet.

  10. #10
    Membre actif Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Points : 206
    Points
    206
    Par défaut
    c'est exact, cela permet au provider ( fournisseur d'acces Internet )

    de couper la boite email de leur client qui envoi des spam !

    le telnet te servira juste a tester si le serveur smtp est actif ou non

    @+

  11. #11
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Si le UserID correspond au password, dans quelle propriété se trouve le nom de connexion?
    Quand on cherche à se connecter sur son webmail il faut un nom de connexion et un mot de passe...
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  12. #12
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 76
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par Bily.sdi Voir le message
    le telnet te servira juste a tester si le serveur smtp est actif ou non
    Il peut servir aussi pour constater le message d'erreur au refus de connection. La comunication avec un serveur SMTP se fesant en ASCII telnet convient parfaitement.

  13. #13
    Membre actif Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Points : 206
    Points
    206
    Par défaut
    OUI Traxsilver, j'aurai du enlever le mot JUSTE

    mais il faudra commprendre le msg d'erreur !

    je ne sais pas si il il renvoi un code numérique ou un vrais message ?

    mais bon, il faut utiliser le serveur smtp de son fournisseur !!
    @+

  14. #14
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Re bonjour,
    Je me permet de revenir sur ce post, car j'aitrouvé une solution qui pourait convenir à certains... Au lieu d'insérer une pièce jointe j'ai cherché à intégrer les données du fichiers dans le corp du text du mail... j'ai concaténé le texte que je voulais avec le reste du shellexecute...
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String Text = monmemo->lines->text;
    String Mail =  "mailto:mail@mail.fr?subject=Information de mise à jour&body=" + Text ;
     
      ShellExecute (Handle, "open", Mail.c_str() , 0, 0, SW_SHOWNORMAL);
    Voila...
    Bon courage à tous
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

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

Discussions similaires

  1. Mailjet : une start-up Nantaise envoie l’e-mailing dans le Cloud
    Par Gordon Fowler dans le forum Cloud Computing
    Réponses: 19
    Dernier message: 10/12/2012, 12h54
  2. Envois d'un e-mail dans une application web JEE 6
    Par sarsar88 dans le forum JSF
    Réponses: 0
    Dernier message: 25/08/2011, 15h29
  3. Envoi par mail d'une page html (dans corps de texte)
    Par Lili120 dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 04/02/2011, 09h08
  4. Problème d'envoi de mail dans une application web
    Par BNacer dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 11/12/2009, 22h22
  5. Envoie de mail dans une page jsp
    Par ze veritable farf dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 29/06/2006, 11h34

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