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 :

Conception serveur mails


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 610
    Par défaut Conception serveur mails
    mon mini projet est de créer un serveur mail pour cela j'ai défini un protocole pour la communication entre le serveur et le récepteur
    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
    nsiString protocole[10]={
                            "ouvrircompte",
                            "fermercompte",
                            "nouvaucompte",
                            "Envoyermessage",
                            "Consultation",                 
                            "Lireunmessage",
                            ""};
     
     int last_requst=0;
     
      enum Requsts{                 Ouvrircompte=0,
                                    Fermercompte,
                                    Nouvauxcompte,
                                    Envoyermessage,
                                    Consultation,
                                    Lireunemessage };
    alors eu lieu de le serveur reçu un mot 'ouvrircompte' il reçu '0' ensuite il la décode avec son programme . ensuite j'ai defini les button 'connecter' et 'deconnecter' pour la socket;ensuite j'ai créer des procedure pour 'créer un mail'
    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
    void __fastcall TClient::Button5Click(TObject *Sender)
    {
     
    if(this->Edit1->Text.Trim().Length()==0)
            MessageBox(0,"le champ de nom est vide ! ","Nom de compte vide",0);
    else
    if(this->Edit2->Text!=this->Edit3->Text)
            MessageBox(0,"mot de pass incorrect","Erreur",0);
    else
    if(this->Edit2->Text.Trim().Length()==0)
             MessageBox(0," specifez une mot de pass S.V.P  ","Mot de pass",0);
    else
             NouvauxCompte();
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     void TClient::NouvauxCompte()
     {
     last_requst=Nouvauxcompte;
     AnsiString nom,pass,requtte,separa="|";
     nom=this->Edit1->Text;
     pass=this->Edit2->Text;
     requtte=protocole[Nouvauxcompte]+separa+nom+separa+pass+separa;
     this->ClientSocket1->Socket->SendText(requtte);
    }
    et une procedure 'envoyé'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void TClient::EnvoyerMessage()
     {
     last_requst=Envoyermessage;
     AnsiString nom,dest,requtte,message,separa="|";
     message=this->Memo1->Text;
     nom=this->Edit4->Text;
     dest=this->Edit6->Text;
     requtte=protocole[Envoyermessage]+separa+nom+separa+dest+separa+message;
     this->ClientSocket1->Socket->SendText(requtte);
    }
    mais j'ai besoin d'une procédure qui ma permis de 'aficher la liste des message
    avez-vous une idée comment puis-je la faire?

  2. #2
    Membre expérimenté 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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mais j'ai besoin d'une procédure qui ma permis de 'aficher la liste des  message avez-vous  une idée comment puis-je la faire?
    j'ai pas très bien compris ?

    tu veus enregistrer tout les message pour les lire plus tard ? ou
    juste les afficher ?

    utilise un Memo et copie la date et l'heure devant chaque message.

    Memo->line->add( message )

    @+

  3. #3
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 610
    Par défaut
    bonjour,
    je veux enregistrer tout les message pour les lire plus tard, alors il faut créer une autre base de donné pour chaque client qui contient la date de reception , l'@ de destinaire ensuite le message

  4. #4
    Membre expérimenté 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
    Par défaut
    recherche le mot DBGRID , ou recherche après mon pseudo

    stock tout en séquentiel ou alors créer 3 tables :

    Client - Message - TypeMessage

    tu devras utilise le composant DataSource , Sql , Table

    je t'oriente a toi te jouer.

  5. #5
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 610
    Par défaut
    bonjour,
    merci pour ta reponse j'ai déja créer une table 'compte' contien 2 champs 'nom','mot_passe',j'ai utilisé les composants DataSource , Sql , Table mais dans le programme serveur puisque si lui qui créer les base le client ne fait pas la création des BD , alors premièrement il faut écrire une procédure qui permet de sauvegarder les message de ce client dans le programme serveur et dans le programme client il faut ecrir 2 procedure une permet 'afficher tout les message' et l'autre permet de 'charger un message ' pour le lire, j'ai attaché ce message par l'interface de serveur et de client

  6. #6
    Membre expérimenté 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
    Par défaut
    salut,

    j'ai pas très bien compris ce que tu veux !!

    explique moi ton projet et je te le créer avec des commentaires.

    si c'est ce que je pense, ça me prendra 25min a le faire sans les contraintes d'intégrités ( validation )

    ce que j'ai compris :

    1°) utilisateurs qui se connecte au programme via un code.

    2°) stocker des messages par utilisateurs venant de ???

    3°) recherche des messages selon utilisateurs/date et inversement

    4°) programme réseau : Serveur/client

    a bientot

  7. #7
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 610
    Par défaut
    bonjour, je suis trés heureuse puisque il y a quelqu'un interecer

  8. #8
    Membre confirmé
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut serveur mail
    J’ai du mal à vous suivre !!!
    Comme vous avez marché sur la voix de créer un serveur et des clients pour quoi ne pas utilisé des accès a une base de donnée situé dans le serveur et tu peux même faire tout dedans (les noms des utilisateurs, les mots de passe…etc.), et comme ca tu peux enregistrer les emails des clients et les consultés plu tard. Ce que tu dois faire c’est voir le développement des bases de données avec interbase…ça va beaucoup t’aider.

  9. #9
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 610
    Par défaut
    Citation Envoyé par Bily.sdi Voir le message
    salut,
    si c'est ce que je pense, ça me prendra 25min a le faire sans les contraintes d'intégrités ( validation )

    ce que j'ai compris :

    1°) utilisateurs qui se connecte au programme via un code.

    2°) stocker des messages par utilisateurs venant de ???

    3°) recherche des messages selon utilisateurs/date et inversement

    4°) programme réseau : Serveur/client

    a bientot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    je veux créer un programme serveur qui accede a ce serveur les client soit pour créer des compte soit pour consulter leur message alors on a besoin de
    1- fonction recherche qui recherche si ce nom existe ou non
    2-fonction ajouter information de client dans la table(nom, mot_passe)
    3- fonction de créer une autre table pour chaque client contient les champ(nom,message,date_res)
    j'ai expliqué le probleme pourquoi tu m'aide pas

  10. #10
    Membre expérimenté 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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     j'ai expliqué le probleme pourquoi tu m'aide pas
    !!

    bref, tu préfère une connexion réseau via odbc ou socket ?
    comme tu débute il préférable d'utiliser une connexion odbc !

    donc : pour commencer

    1°) un serveur qui stock les données des clients et leurs messages
    2°) les utilisateurs se connecte avec un programme client et visualise leur message.

    Après on verra pour la création de table par client

    Création d'une table en utilisant le composant Table
    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
     
    void TForm1::CreateBD(AnsiString TableName)
    {
     
      AnsiString Directory;
      GetCurrentDirectory(200,Directory);
     
      Directory = Directory + "\\USER\\" + TableName;
     
      if (!DirectoryExists(Directory))
      CreateDirectory(Directory.c_str(),NULL);
     
      Table->Active = false; // Le composant Table ne doit pas être actif
     
      // En premier, description de la table qui doit être nommée
      Directory = Dir;
      Directory = Directory + "\\USER\\" + TableName;
     
      Table->DatabaseName = Directory;
      Table->TableType = ttParadox;
      Table->TableName = TableName;
     
      // Ensuite description des champs
      Table->FieldDefs->Clear();
      TFieldDef *pNewDef;
     
      pNewDef = Table->FieldDefs->AddFieldDef();
      pNewDef->Name = "IDUSER";
      pNewDef->DataType = ftString;
      pNewDef->Size = 10;
     
      pNewDef = Table->FieldDefs->AddFieldDef();
      pNewDef->Name = "NAME";
      pNewDef->DataType = ftString;
      pNewDef->Size = 20;
     
      pNewDef = Table->FieldDefs->AddFieldDef();
      pNewDef->Name = "ID_MSG";
      pNewDef->DataType = ftString;
      pNewDef->Size = 5;
     
      pNewDef = Table->FieldDefs->AddFieldDef();
      pNewDef->Name = "ETAT";
      pNewDef->DataType = ftString;
      pNewDef->Size = 3;
     
      Table->CreateTable();
     
    }
    votre table est créer dans le dossier \\USER

    hibate_allah , j'essaierai de te faire cela pour ce week end
    entre temps cherche de ton coté aussi.

  11. #11
    Membre expérimenté 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
    Par défaut
    voici quelque un poste d'explication pour la creation et l'acces a une base de donnée via odbc :

    http://www.developpez.net/forums/sho...highlight=odbc

    pour les socket

    un bon exemple ici venant de ce site je pense : appchat

    je te dirais quoi en mp hibate_allah

    @+

    voici ce que je t'es poste en mp , ca peut intéresser d'autres programmeur
    alors je le poste ici aussi

    1-comment ajouter dans la table d'utilisateurs un nouveau utilisateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
       Table1->Append();
       Table1->Edit();
     
       Table1->FieldByName("Name")->Value="Vegeta";
       Table1->FieldByName("PC")->Value="PC";
       Table1->FieldByName("Start")->Value="Start";
       Table1->FieldByName("Stop")->Value="Stop";
     
       Table1->Post(); 
       Table1->Refresh();
    comment effectuer la recherche
    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
     
      AnsiString a;
      a = "Select * from BD where " ;  espace blanc 
      a = a + "Name = 'Vegeta' ";    
      Query1->SQL->Clear();
      Query1->SQL->Add(a);
      Query1->ExecSQL();
     
      ou alors : ceci ne donne que le 1er enregistrement 
      trouver
     
      TLocateOptions Option;
       if(Table1->Locate("Name","Vegeta",Option)==true)
       {
         NOM->Text =      
         Table2->FieldByName("Name")->AsString;
       }

Discussions similaires

  1. Serveur mail: fonction sendmail
    Par calfater dans le forum Réseau
    Réponses: 2
    Dernier message: 11/01/2007, 02h05
  2. Serveur mail : j'ai pris la mauvaise direction ?
    Par Michaël dans le forum Réseau
    Réponses: 4
    Dernier message: 28/10/2005, 13h05
  3. Monter un serveur mail...
    Par Michaël dans le forum Réseau
    Réponses: 5
    Dernier message: 02/10/2005, 11h44
  4. Conf DNS pour serveur mail avec IP dynamique ?
    Par ovh dans le forum Réseau
    Réponses: 9
    Dernier message: 14/06/2004, 22h55
  5. [VB.NET] Authentification sur serveur mail ?
    Par Webman dans le forum ASP.NET
    Réponses: 2
    Dernier message: 26/05/2004, 19h24

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