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

Windows Forms Discussion :

Création de messagerie en c#


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Par défaut Création de messagerie en c#
    Bonjour à tous,
    Je créé actuellement un logiciel de messagerie, dans lequel je peux envoyer des messages et les recevoir (sur le principe d'Outlook).
    Les nouveaux messages apparaissent dans une listview, pour les recevoir j'utilise une classe Popmail, que vous trouverez en pièce jointe.

    Je voudrais savoir comment afficher le contenu d'un message, (que j'aurais sélectionné au préalable dans la listview), dans un textbox, grâce à cette classe, dans mon formulaire accueil dont vous trouverez le code joint. Merci de m'éclairer
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Traite l'évènement SelectedIndexChanged de la ListView. Ensuite tu récupères l'index du message sélectionné, et tu affiches le corps de ce message dans la TextBox

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Par défaut le corp du texte
    Comme je le précise, le problème est que je ne sais pas comment récupérer le corps du texte à l'aide de la classe pour l'afficher ensuite dans la textbox

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Tartuffe245 Voir le message
    Comme je le précise, le problème est que je ne sais pas comment récupérer le corps du texte à l'aide de la classe pour l'afficher ensuite dans la textbox
    Ben dis donc, il faudrait apprendre à lire un code ...

    D'après ce que je vois dans le code, la classe PopMail a une propriété Bodies, qui est une collection des corps du message en différents formats (texte, HTML...). Cette collection contient des objets de type BodyMessage, avec une propriété Body (texte du message) et une propriété BodyFormat qui indique le format. Par exemple, si tu as un objet mail de type PopMail, pour afficher dans la console son texte dans tous les formats disponibles, tu peux faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach(BodyMessage body in mail.Bodies)
    {
        Console.WriteLine("Format : {0}", body.BodyFormat);
        Console.WriteLine("Texte  : {0}", body.Body);
        Console.WriteLine();
    }

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Par défaut
    tomlev, tu affiches dans un affichage console hors, je suis en application Windows. J'ai lu la classe, j'avais vu le type body, mail, mais comme c'est un arraylist je ne sais pas comment l'utiliser, pour l'afficher dans la textbox!

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Justement mon code te montre comment accéder à l'ArrayList (avec une boucle foreach). Après tu n'as plus qu'à reprendre body.Body pour le mettre dans une TextBox. Tu peux aussi accéder directement à un élément de l'ArrayList par son index. Mais comme ça renvoie une référence d'Object et non de BodyMessage, il faut faire un cast :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BodyMessage body = (BodyMessage) (mail.Bodies[0]);
    Soit dit en passant, il existe maintenant des Collections beaucoup plus pratiques que l'ArrayList, comme List<T> ou Dictionary<K, V>. En l'occurrence, j'aurais utilisé un Dictionary<MailFormat, string> pour associer un corps de texte à son format (sans utiliser la classe BodyMessage).

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Par défaut
    Bonjour,
    Cela ne fonctionne pas du tout ! Je ne sais pas quoi faire, demain je passe mon oral et si je tombe dessus je suis morte !
    Là c'est la total déprime, je ne pensais pas que ça aller m'embêter autant, cette classe popmail n'est pas d'un grand secours, le contenu des mails je n'arrive toujours pas à l'afficher! Personne ne peut m'aider ! S'il vous plaît, c'est presque une question de vie ou de mort!

  8. #8
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    Mail inutile, mais si tu es aussi "perdu" fasse à un tel problème c'est que soit tu n'es pas faite pour l'informatique (programmation), soit ton cours n'a pas été à la hauteur soit ... euh.. je prefère me taire

    Ici, on donne de l'aide au gens, on n'est pas en mesure par contre de se substituer à leur capacité de reflexion ni en mesure de faire les examens à leur place !

    Désolé... mais je pense qu'à un problème, nous essayons de donner une solution ou plusieurs après, si la personne n'arrive pas à comprendre la solution suggérée, on ne pourra pas en faire beaucoup plus.. et surtout pas si tu nous "mets" le couteau sous la gorge en pretextant une question de "vie ou de mort"...

    The Monz, Toulouse

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Pourtant cette classe semble assez simple à utiliser...
    Voilà en gros ce que je ferais :
    Dans ta form, tu mets
    - des textbox pour le serveur, le login et le mot de passe
    - un bouton pour déclencher la connexion et la récupération des mails
    - une ListBox (plus pratique qu'une listView parce que tu peux utiliser la propriété DataSource) où tu affiches les sujets des mails
    - un contrôle WebBrowser pour afficher le corps des messages (pour pouvoir afficher les mails en HTML)

    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
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
     
            PopMailsCollections pop;
     
            private void buttonConnecter_Click(object sender, EventArgs e)
            {
                // Connexion et récupération des messages
                pop = new PopMailsCollections(textBoxServer.Text, textBoxLogin.Text, textBoxPassword.Text);
     
                // Remplissage de la ListBox
                listBoxMessages.DataSource = pop.MailCollections;
                listBoxMessages.DisplayMember = "Subject";
            }
     
            private void listBoxMessages_SelectedIndexChanged(object sender, EventArgs e)
            {
                // Affichage du message sélectionné
                PopMail mail = listBoxMessages.SelectedValue as PopMail;
                if (mail != null && mail.Bodies.Count > 0)
                {
                    webBrowserBody.DocumentText = ((BodyMessage)mail.Bodies[0]).Body;
                }
                else
                {
                    webBrowserBody.DocumentText = "Aucun message à afficher";
                }
            }
        }
    EDIT:
    Je sais pas où tu as trouvé ce code, mais j'ai testé ça marche pas... ça récupère le sujet, l'expéditeur, le destinataire, mais pas le code du message
    A mon avis le parser est prévu pour un format spécifique de messages, pas pour le cas général

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Par défaut
    bonjour tomlev ,
    Tu es mon sauveur, ça marche nickel je te remercie sincèrement de ton aide !
    L'affichage du contenu marche, le seul problème c'est l'entête des messages qui est popmail je sais plus quoi, mais bon le principale c'est que ça marche !
    Merci !!!!!!

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    ben c'est bizarre, chez moi l'affichage du corps du message ne marche pas... enfin, si ça marche pour toi, tant mieux !

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

Discussions similaires

  1. outlook - date création messagerie
    Par fkrlali dans le forum Outlook
    Réponses: 0
    Dernier message: 25/06/2015, 15h41
  2. Réponses: 0
    Dernier message: 08/02/2011, 23h01
  3. Création de messagerie instatannée
    Par soussoujoel dans le forum WinDev
    Réponses: 2
    Dernier message: 01/07/2009, 14h59
  4. création d'un client messagerie
    Par lonycc dans le forum ASP
    Réponses: 2
    Dernier message: 22/02/2007, 15h19
  5. Création image BMP
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 16h04

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