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

Web & réseau Delphi Discussion :

Comment envoyer un état par email en Delphi ?


Sujet :

Web & réseau Delphi

  1. #1
    Candidat au Club
    Inscrit en
    Février 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Comment envoyer un état par email en Delphi ?
    Salut tout le monde!
    Beh voilà! je bosse présentement sur un projet concernant la gestion des consultants d'une banque. D'après le cahier des charges, mon application doit pouvoir enregistrer les consultants qui proposent leurs offres à la boîte. de plus, et c'est ce qui est ma préoccupation, l'application doit pouvoir éditer des lettres types de réponse et les envoyer à un consultant donné par email. Mon projet est sous Delphi 7 Edition Entreprise.Et je ne sais vraiment pas comment réaliser cette fonctinnalité dans mon application. Veuillez bien me guider je vous prie!
    Boris

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Je te propose trois pistes :
    - tout coder via les composants Indy par exemple
    - utiliser des composants tiers dédiés
    - t'appuyer sur MS-Office

    Maintenant c'est une question de temps et de moyens, comme tjr

  3. #3
    Candidat au Club
    Inscrit en
    Février 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 7
    Points : 4
    Points
    4
    Par défaut envoyer un état par email en delphi
    Merci Laurent!
    J'ai visité la fag sur l'utilisation des composants Indy que j'ai essayé! Mais j'ai un message d'erreur du genre 'Echec de connexion à l'hôte'. Et je ne sais à quel se trouve l'erreur à corriger!
    Par ailleurs, pourrais-tu me donner plus de précisions sur l'utilisation des composants tiers dédiés ou sur comment m'appuyer sur MS Office pour que je les éssaye aussi ou même m'aider à corriger l'erreur de connexion sur le host?

  4. #4
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Une solution simple également, consiste

    - imprimer dans du PDF avec certains composants (comme le supposait Laurent j'imagine)

    - ou, sans aucune modification de code, installer une imprimante PDF, il en existe des gratuites comme CutePDF Writer (ce que j'utilise pour plusieurs de mes users ca fonctionne parfaitement)

    Pour ouvrir directement une fenêtre d'envoie de mail avec le fichier joint (pour que ce soit transparent pour l'utilisateur), j'utilise Win2PDF (payant) car il est facilement paramétrable pour établir une telle fonction.
    - le prog imprime dans un fichier temporaire PDF, emplacement défini via le programme pour Win2PDF
    - l'ouverture du mail récupère ce fichier connu du programme et le joint, avec un modèle de texte... (et même mieux, si ton appli est une base concervant l'Email, le user n'a presque plus rien à faire...)
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut Re: envoyer un état par email en delphi
    Citation Envoyé par Borisam
    Mais j'ai un message d'erreur du genre 'Echec de connexion à l'hôte'.
    Désolé je ne connais pas les composants Indy.
    Citation Envoyé par Borisam
    Par ailleurs, pourrais-tu me donner plus de précisions sur l'utilisation des composants tiers dédiés ou
    Là il faut chercher sur le NET ou reposer une question dédié.
    Citation Envoyé par Borisam
    comment m'appuyer sur MS Office
    Voir ce tuto associé à la FAQ pour le détail d'opération
    http://lfe.developpez.com/PasWord/

    Je t'ai donné tes pistes d'approche technique pas des solutions.
    Par exemple celle avec Office implique que ta solution soit déployée sur un parc machine possédant Office et avec la même version si possible.
    Ce qui implique des problématiques de MAJ de ton soft ou au moins de revalidation lors de migration de version d'Office...

  6. #6
    Candidat au Club
    Inscrit en
    Février 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 7
    Points : 4
    Points
    4
    Par défaut envoyer un état par email en delphi
    Salut les amis!
    Et merci infiement pour l'aide que vous apportez au monde du de la programmation!
    Voilà j'ai essayé de revoir mon code mais problème persiste avec cette fois le message suivant: " le projet envoiemail.exe a provoqué une classe d'exception EIdProtocoleReplyError avec le message 'borisgaz_AT_yahoo.fr....relayindg denied"
    voici mon code:
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      IdMessage: TIdMessage;
      IdSMTP: TIdSMTP;
      Message: TStrings;
    begin
      IdMessage := TIdMessage.Create(nil); //création dynamique du composant
      IdSMTP1.Host:='GW.ECOWAS-FUND.ORG';
      IdMessage.From.Address := 'kgerard_comlan_AT_yahoo.fr';
     
      //Ces deux lignes peuvent-être répétées autant de fois que vous désirez 
      //d'adresse de réponse et/ou de destinataire
      IdMessage.ReplyTo.Add.Address := 'kgerard_comlan_AT_yahoo.fr';
      IdMessage.Recipients.Add.Address := 'borisgaz_AT_yahoo.fr' ;
     
      IdMessage.Subject := 'Essai';
     
      IdMessage.ContentType := 'multipart/alternative'; //Message " découpé " en plusieurs parties
     
      Message := Memo1.Lines; //par exemple… il faut juste que ce soit un TStrings !
     
      //Ici on va créer les différentes parties du message
      //Au cas où le client ne gère pas les messages HTML :
      With TIdText.Create(IdMessage.MessageParts, Message) Do
      Begin
        ContentType := 'text/plain';
        Body.Insert(0, 'Ce message est un message HTML... Configurez votre client de courrier électronique' +
       'pour le visionner de manière appropriée');
      end;
     
      //Ajout du message au format HTML (en supposant que Message contient du HTML) :
      with TIdText.Create(IdMessage.MessageParts, Message) do
        ContentType := 'text/html';
     
      //Et maintenant, l'ajout des pièces jointes :
      //Le tableau de strings Fichiers doit être remplis avec les chemins complets des fichiers à inclure
      //for i := Low(Fichiers) to High(Fichiers) do
        //TIdAttachment.Create(IdMessage.MessageParts, Fichiers[i]);
     
      //On passe ensuite à l'envoi du message:
      IdSMTP:= TIdSMTP.Create(nil) ; //Création dynamique du composant
     
      IdSMTP.Port := 25; //Le port SMTP standard…
      IdSMTP.Host := 'GW.ECOWAS-FUND.ORG';  //Le serveur auquel se connecter
     
      //Ensuite on se connecte et on envoit le message, en gérant les erreurs, tant qu'à faire !
     
     Try
     
        Try
          IdSMTP.Connect;
          IdSMTP.Send(IdMessage);
        except
          on e: exception do MessageDlg(e.Message, mtError, [mbOK], 0);
        end; 
      finally
        IdSMTP.Disconnect;
        IdSMTP.Free;
        IdMessage.Free;
      end;
     
    end ;
    Je vous rappelle que c'est ma première fois d'utiliser les composants Indy. Alors je me dis soit je les utilise pas proprement soit ce n'est le moyen idéal pour résoudre mon problème.
    Svp éclairez moi!

  7. #7
    Candidat au Club
    Inscrit en
    Février 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Salut Tic Tac Toe!
    Merci pour tes propositions! Je les trouvent fort intéressantes et j'ai même téléchargé w2pdf_setup! ilest intéressant mais je sais pas comment m'en servir! Tu peux m'y aider pour mon applic?

  8. #8
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Si ce setup correspond à Win2PDF (editeur Dane Prairie),

    Il est possible de définir, sans demande à l'utilisateur, le fichier destination PDF de l'impression. Il suffit en effet, juste avant l'impression d'alimenter la clef suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
         with TRegistry.Create do try
         RootKey := HKEY_CURRENT_USER;
         if OpenKey( '\Software\Dane Prairie Systems\Win2PDF\', True ) then
            begin
            WriteString( 'PDFFileName', SFichier );
            CloseKey;
            end;
         finally Free end;
    Cet clef est effacée par Win2PDF après impression je crois, pour qu'à la prochaine édition, les choses redeviennent normales, à savoir demander un nom de fichier.

    Donc dans l'ordre:
    - Choisir l'imprimante PDF par programme
    - Alimenter la clef avec le nom de fichier de ton choix
    - Démarrer l'impression -> ton fichier est créé sans dialogue avec l'utilisateur
    - Envoyer le mail avec le fichier joint récemment créé

    Pour l'envoie de mail, je ne peux pas t'aider du coté indy j'ai jamais utilisé. J'ai ma propre fonction qui permet d'envoyer un mail avec email, sujet, corps de texte modèle et fichier(s) joint(s) via le gestionnaire de mail standard, unité 'mapi'.
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  9. #9
    Candidat au Club
    Inscrit en
    Février 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 7
    Points : 4
    Points
    4
    Par défaut envoyer un état par email en delphi
    Salut Tic Tac Toe!
    j'ai mené des recherches du côté de TsendMail tout le week end durant mais je ne sais avec quel composant l'utiliser. Autrement dit ma question est de savoir quel composant renferme le TsendMail?

  10. #10
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Je ne connais pas TSendMail et je ne suis pas sur que c'est le composant qu'il te faut. Je n'ai pas vu dans l'aide qu'on pouvait lui joindre des fichiers.

    Il faut te faire une fonction d'envoie de mail avec fichier joint.
    Je crois que dans les FAQ/Sources il y a une rubrique pour cela.
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  11. #11
    Candidat au Club
    Inscrit en
    Février 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Coucou à tous!
    ça y est j'ai la solution à mon problème! Le code est bon le problème était au niveaux du serveur! Merci encore à tous vous êtes sympas sur developpez.com!

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

Discussions similaires

  1. comment envoyer un pdf par email
    Par nouha_79 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/07/2007, 11h09
  2. Comment gérer des services par programmation avec Delphi ?
    Par isachat666 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 18/12/2005, 18h54
  3. envoi d'un état par email à partir d'un formulaire
    Par claudio-esco dans le forum Access
    Réponses: 7
    Dernier message: 09/12/2005, 11h05

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