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# Discussion :

Ouverture client de messagerie


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 33
    Par défaut Ouverture client de messagerie
    Bonjour,

    Je souhaiterais ouvrir le client de messagerie (par defaut outlook) du pc client afin de pouvoir envoyer un mail depuis mon application qui est sur un serveur.

    j'ai trouvé une solution qui fonctionne trés bien sur mon ordinateur (là ou je test mon application avant de la mettre sur le serveur)mais le problème est que si je le met tel quel sur le serveur il me dit qu'il n'y a pas de client de messagerie par defaut (ce qui est logique il n'y en a pas )

    ce dessous le code de mon application :

    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
     
     
    using System.Diagnostics;
     
    protected void envois_mail(object sender, EventArgs e)
             {
     
                 string message;
     
                 message = "Bonjour";
                  string filename = "mailto:toto@test.com?subject=test&body=" + message; 
                 Process myProcess = new Process();
                 myProcess.StartInfo.FileName = filename;
                 myProcess.StartInfo.UseShellExecute = true;
                 myProcess.StartInfo.RedirectStandardOutput = false;
                 myProcess.Start();
     
             }
    l'erreur qui est renvoyé quand je le met sur le serveur est :
    Aucune application n’est associée au fichier spécifié pour cette opération


    Sauriez-vous comment faire? en passant avec des smtp mais je ne vois pas trop comment les gerer avec outlook.

    Cordialement
    Thomas

  2. #2
    Membre actif
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut
    Bonjour,

    Je ne comprends pas bien la démarche.
    En c# tu as tous les outils pour envoyer des mails sans passer par un client de messagerie.
    Tout est dans System.Net (ou System.Net.Mail ? je me souviens plus)
    De tete tu joues avec un smtpClient et tu passe à la methode Send un objet (je me souviens plus quel type) pour ton message.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 33
    Par défaut
    Oui j’ai bien vu cette methode mais le problème vient que je veux que ça vienne du client et non quelque chose par defaut, le smtp ne convient pas à mon application.
    C’est pour cela que j’essais d’utiliser le porcess.start() avec un mailto :…. Je voudrais ouvrir le logiciel de messagerie par defaut de la machine du client.

  4. #4
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    Salut!!

    brnf1 a tout fait raison, pourquoi se compliquer la vie alors que l'on peut faire simple:
    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
     
            using System.Net.Mail;
            private void Mail(string Obj, string Message)
            {
                string envoiDE = "toto@mail.fr";
                string envoiA = "quituveux@mail.fr";
                string objet = Obj;
                string contenuMail = Message;
                string serveurSMTP = "smtp.domaine.fr";
                string idSMTP = "toto@domaine.fr";
                string mdpSMTP = "hahaha";
     
                MailAddress from = new MailAddress(envoiDE);
                MailAddress to = new MailAddress(envoiA);
                MailMessage email = new MailMessage(from, to);
                email.Subject = objet;
                email.Body = contenuMail;
     
                    SmtpClient smtp = new SmtpClient(serveurSMTP, 587);
                    smtp.Credentials = new System.Net.NetworkCredential(idSMTP, mdpSMTP);
                    smtp.Send(email);
            }
    Edit:
    Citation Envoyé par thomaslouf Voir le message
    Oui j’ai bien vu cette methode mais le problème vient que je veux que ça vienne du client et non quelque chose par defaut, le smtp ne convient pas à mon application.
    Je ne vois pas ou se trouve le problème, tu places le nom du client dans l'objet et pour le smtp peut importe lequel tu utilises tant que l'authentification est correcte.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 33
    Par défaut
    je ne connais pas forcement le client, son nom de domaine et encore son mot de passe;

    c'est pour celà qu j'essaie de passer par sa boite mail. Car je ne vois pas comment recuperer ces informations

  6. #6
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    Citation Envoyé par thomaslouf Voir le message
    je ne connais pas forcement le client, son nom de domaine et encore son mot de passe;
    c'est pour celà qu j'essaie de passer par sa boite mail. Car je ne vois pas comment recuperer ces informations
    Tu n'as pas besoin de son smtp ni de son id ou mdp.
    Peu importe le smtp utilisé, que ca soit le tien ou celui du voisin, tant que celui-ci est valable. L'adresse d'envoi peut être fausse tant que le smtp est correct le mail partira et arrivera dans ta boîte de messagerie.
    En gros, si tu renseignes ton smtp, le programme fonctionnera
    PS: attention au port 25 (déconseillé ), même s'il nécessite pas d'authentification il est considéré comme spammer par de nombreux FAI. Je te conseil d'utiliser le port 587 ou le port 465.

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 33
    Par défaut
    Citation Envoyé par FrameBreak Voir le message
    Peu importe le smtp utilisé, que ca soit le tien ou celui du voisin, tant que celui-ci est valable.
    C'est pas vraiment comme celà que je voulais faire mais bon, maintenant j'ai un problème avec le smtp, il n'en veut pas

    je laisse tomber cette méthode, elle convient pas du tout à mon application, c'est pour renvoyer l'erreur et je souhaites connaitre l'utilisateur. Et laisser la possibilité à l'utilisateur d'envoyer ou non l'email depuis son client de messagerie par defaut. Seul point bloquant, ça ne fonctionne pas quand je le met sur mon serveur

  8. #8
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    Citation Envoyé par thomaslouf Voir le message
    C'est pas vraiment comme celà que je voulais faire mais bon, maintenant j'ai un problème avec le smtp, il n'en veut pas
    Tu est chez quel fournisseur?

    Citation Envoyé par thomaslouf Voir le message
    je laisse tomber cette méthode, elle convient pas du tout à mon application, c'est pour renvoyer l'erreur et je souhaites connaitre l'utilisateur. Et laisser la possibilité à l'utilisateur d'envoyer ou non l'email depuis son client de messagerie par defaut. Seul point bloquant, ça ne fonctionne pas quand je le met sur mon serveur
    Raison de plus si c'est pour renvoyer une erreur, invisible pour l'utilisateur. S'il y a une identification, tu as juste à la glisser dans l'objet..

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 33
    Par défaut
    Je suis chez bouygues.

    J'aimerais quand même utiliser la messagerie par defaut comme celà je pourrais re utiliser ce code ailleur dans mon application. et aussi essayer de comprendre mon erreur.
    Il doit exister une solution mais je ne vois pas comment faire, mon code est fonctionnel sur mon ordinateur mais pas sur le serveur.

  10. #10
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    Pour bouygue telecom le smtp : smtp.bouygtel.fr, pour bouygue bbox : smtp.bbox.fr.
    Les ports 25 sont ouverts (mais déconseillé) pour ce qui est du port 587 aucune idée

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 33
    Par défaut
    ce que j'essais d'utiliser c'est la methode avec System.Diagnostics.Process.Start(...) mais il me dit que :
    Aucune application n’est associée au fichier spécifié pour cette opération
    c'est le code qui est sur le serveur, si je le teste sur mon ordinateur ça fonctionne trés bien. Je veux pas envoyer un mail de façon automatique

  12. #12
    Membre actif
    Homme Profil pro
    Architecte C#
    Inscrit en
    Février 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte C#

    Informations forums :
    Inscription : Février 2003
    Messages : 78
    Par défaut
    Bonjour, si le code est sur un serveur web, un simple hyperlien avec "mailto:" fait l'affaire.

    Si il s'agit d'un serveur applicatif, il faut qu'il renvoie a ton client via une mécanique de callback une instruction EnvoyerMail(string adresse) et lancer le Process.Start("mailto:") dans ton client lors de l'appel de cette méthode.

    plus d'informations sur les callbacks :

    http://msdn.microsoft.com/en-us/magazine/cc163537.aspx
    http://www.dotnetcurry.com/ShowArticle.aspx?ID=721
    http://www.lelibre.net/index.php?pos...-un-webservice

    Bonne lecture

  13. #13
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 148
    Par défaut
    Oulala... Beaucoup de bruit pour pas grand chose !

    Try it

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    process.Start("mailto:"+monAdresseMail)

  14. #14
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 33
    Par défaut
    l'utilisation d'un simple "mailto:" ne fonctionne pas du tout, je vais essayer de regarder les callbacks mais cela me semble bien compliqué pour quelque chose qui devrait être simple.
    Merci pour les callbacks

  15. #15
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Si c'est une application sur un serveur, il n'y a généralement pas d'utilisateur dessus.
    Peux tu détailler un peu l'architecture, parceque de ce que je comprends tu essayes de faire quelque chose qui n'a pas de sens!

  16. #16
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 148
    Par défaut
    Citation Envoyé par thomaslouf Voir le message
    l'utilisation d'un simple "mailto:" ne fonctionne pas du tout, je vais essayer de regarder les callbacks mais cela me semble bien compliqué pour quelque chose qui devrait être simple.
    Merci pour les callbacks
    Je viens de tester à l'instant et ça fonctionne très bien...

  17. #17
    Membre actif
    Homme Profil pro
    Architecte C#
    Inscrit en
    Février 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte C#

    Informations forums :
    Inscription : Février 2003
    Messages : 78
    Par défaut
    Les callbacks, c'est ce que je t'ai proposé à cause de tes contraintes :

    - Le serveur "lance" la commande
    - l'utilisateur n'est pas sur le serveur.

    donc, la problématique est : "comment envoyer la commande à l'utilisateur alors qu'il n'est pas sur le serveur". d'autres façon existent, mais le callback me parait la plus simple et adaptée.

    Un dernier petit conseil :
    Selon le binding que tu utilise dans WCF, ne stocke pas ton callback, sert t'en pour notifier ton client lors d'un appel. Sinon, t'es bon pour implémenter aussi une mécanique de "signe de vie" avec reconnexion au service si signe de vie non reçu. Selon si ton client peut rater ou pas des informations, la reconnexion peut etre suivi d'un traitement un peu plus lourd de resynchronisation des données.

    Bref, amuse toi bien

Discussions similaires

  1. [PHP 5.2] Ouverture client messagerie + pièce jointe
    Par yoyo33fc dans le forum Langage
    Réponses: 8
    Dernier message: 22/03/2010, 14h40
  2. Ouverture client messagerie / mail en HTML
    Par Passarinho44 dans le forum ASP
    Réponses: 14
    Dernier message: 12/08/2008, 12h01
  3. Ouverture client messagerie
    Par Kassar dans le forum MFC
    Réponses: 4
    Dernier message: 30/05/2008, 12h23
  4. [avis] Quel client de messagerie ?
    Par Johnbob dans le forum Messagerie instantanée
    Réponses: 9
    Dernier message: 09/11/2004, 20h38
  5. Problème ouverture logiciel de messagerie
    Par David M dans le forum Access
    Réponses: 2
    Dernier message: 11/10/2004, 19h40

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