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 :

Envoi de mail


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de kumo
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Par défaut Envoi de mail
    bonjour,
    je voulais savoir, j'ai une appli delphi qui crée un fichier txt dans lequel on ecrit des choses.
    Je voudrais qu'a la fin, on clique sur un bouton valider par exemple et qu'un mail soit envoyé a la personne dont le mail a été saisi dans la textbox nommée "LeMail" par exemple avec le document txt en pièce jointe.
    J'ai vu qu'il y a avit le composant TNMSMTP mais je sais pas l'utiliser.
    Qu'elqu'un pourrait-il m'aider?

    Merci

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 094
    Par défaut
    Tient, j'ai fait cela basé sur le composant indy de Delphi 7, je n'ai pas le temps d'élaguer le code, mais tu devrait vite comprendre ...

    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    class function TepcConfigController.SendReport(ConfigSMTP: TStrings = nil): Boolean;
     
      function CheckConfig(ParamList: TStrings): Boolean;
      var
        I: Integer;
      begin
        Result := ParamList.Count = 6;
        if Result then
        begin
          Result := (ParamList.IndexOfName('HOST') >= 0)
                and (ParamList.IndexOfName('PORT') >= 0)
                and (ParamList.IndexOfName('USERNAME') >= 0)
                and (ParamList.IndexOfName('PASSWORD') >= 0)
                and (ParamList.IndexOfName('EXP') >= 0)
                and (ParamList.IndexOfName('DEST') >= 0);
          if Result then
            Result := TryStrToInt(ParamList.Values['PORT'], I);
        end;
      end;
     
      function SpaceToEndLine(const S: string): string;
      var
        iStr: Integer;
      begin
        SetLength(Result, Length(S));
        for iStr := 1 to Length(S) do
          if S[iStr] = ' ' then
            Result[iStr] := #13
          else
            Result[iStr] := S[iStr];
      end;
     
    var
      ParamSMTP: string;
      IdMessage: TIdMessage;
      IdSMTP: TIdSMTP;
      IsLineConfig: Boolean;
    begin
      IsLineConfig := not Assigned(ConfigSMTP);
      Result := not IsLineConfig or GetParam('/SMTP', 'p', ParamSMTP);
      if Result then
      begin
        if IsLineConfig then
          ConfigSMTP := TStringList.Create();
        try
          if IsLineConfig then
            ConfigSMTP.Text := SpaceToEndLine(ParamSMTP);
          Result := CheckConfig(ConfigSMTP);
          if Result then
          begin
            IdSMTP := TIdSMTP.Create(nil);
            try
              IdSMTP.AuthenticationType := atLogin;
              IdSMTP.Host := ConfigSMTP.Values['HOST'];
              IdSMTP.Port := StrToInt(ConfigSMTP.Values['PORT']);
              IdSMTP.UserName := ConfigSMTP.Values['USERNAME'];
              IdSMTP.Password := ConfigSMTP.Values['PASSWORD'];
              IdSMTP.Connect();
              Result := IdSMTP.Connected;
              if Result then
              begin
                IdMessage := TIdMessage.Create(IdSMTP); // Libération par Owner
                IdMessage.From.Address := ConfigSMTP.Values['EXP'];
                IdMessage.Recipients.EMailAddresses := ConfigSMTP.Values['DEST'];
                IdMessage.Subject := '[MAINTENANCE] Rapport du Config Controller';
                IdMessage.Date := Now();
                IdMessage.CharSet := 'ISO-8859-1';
                IdMessage.ContentType := 'text/plain';
                IdMessage.Body.Text := GetReport();
                TIdAttachment.Create(IdMessage.MessageParts, GetReportFile()); // Libération par Collection
     
                IdSMTP.Send(IdMessage);
              end;
            finally
              IdSMTP.Disconnect;
              IdSMTP.Free();
            end;
          end;
        finally
          if IsLineConfig then
            ConfigSMTP.Free();
        end;
      end;
    end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé Avatar de kumo
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Par défaut
    sauf que moi je suis sur delphi 5, voici le code que j'utilise et il met le message d'erreur suivant: "Echec de connection a l'hôte. Adresse distante nulle"...je sais pas de quel paramètre ça vient, du nom du serveur smtp ou d'e l'identifiant internet
    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
    procedure TForm9.ValiderClick(Sender: TObject);
    begin
    form9.smtp.connect;
     
    form9.smtp.host:=nomserv.text;
    form9.smtp.PostMessage.FromName :=nomemet.Text;
    Form9.smtp.UserID :=ident.Text;
    Form9.smtp.PostMessage.Subject :='TP'+form2.numtp.text+'Groupe'+form2.numGroup.text;
    Form9.smtp.PostMessage.ToAddress.Add(mail.Text);
    form9.smtp.PostMessage.Attachments.AddStrings(ListeFichiers.Items);
    Form9.smtp.PostMessage.Body.Assign(Memo1.Lines);
     
    form9.smtp.SendMail ;
     
    form9.smtp.disconnect;
     
     
     
    end;

  4. #4
    Membre confirmé Avatar de kumo
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Par défaut
    Bon ben c'est bon j'ai trouvé la solution, Merci

  5. #5
    Membre émérite Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Par défaut
    Citation Envoyé par kumo Voir le message
    Bon ben c'est bon j'ai trouvé la solution, Merci
    Pourriez vous nous faire part de la solution que vous avez trouvé?

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

Discussions similaires

  1. Envoi de mail au format html
    Par Mephyston dans le forum C++Builder
    Réponses: 2
    Dernier message: 22/01/2004, 12h29
  2. Envoi de mail au format Rich-Text
    Par LineLe dans le forum ASP
    Réponses: 4
    Dernier message: 29/10/2003, 16h27
  3. envoi de mail avec attachement de fichier
    Par GMI3 dans le forum Modules
    Réponses: 2
    Dernier message: 24/09/2003, 11h22
  4. Outlook ne se ferme pas après un envoi de mail
    Par Joke dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/06/2003, 17h32
  5. envoi de mail, protocol SMTP langage C
    Par Heimdall dans le forum Développement
    Réponses: 2
    Dernier message: 23/05/2003, 11h22

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