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 :

[c#, WinForms]Envoyer un mail


Sujet :

Windows Forms

  1. #1
    Membre éclairé Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Points : 881
    Points
    881
    Par défaut [c#, WinForms]Envoyer un mail
    Bonjour,
    j'essaie d'envoyer un mail par Smtp en WinForms.

    J'essaie pour cela d'adapter le code WebForms (qui fonctionne bien) : http://faqcsharp.developpez.com/inde...#netw_sendmail

    Je galère sur la partie smtp.

    En WebForms ça fonctionnait comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    string utilisateur = "toto@titi.net";
                    string password = "MonmotDePasse";
                    string serveur = "serveur.tutu.net";
     
                    SmtpMail = new System.Net.Mail.SmtpClient(serveur);
     
                    SmtpMail.SmtpServer = serveur;
                    email.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
                    email.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", utilisateur);
                    email.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpaccountname", utilisateur);
                    email.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", password);
     
                    SmtpMail.Send(email);
    Il y a bien un objet SmtpClient en WinForms
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SmtpMail = new System.Net.Mail.SmtpClient(serveur);
    Mais je n'arrive pas à lui associer compte, serveur et mot de passe.

    Quelqu'un aurait-il une idée ?

    Merci
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  2. #2
    Membre du Club Avatar de ferradji
    Inscrit en
    Septembre 2005
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 121
    Points : 64
    Points
    64
    Par défaut
    essayes d'ajouter la référence et tu utilise

    dans l'entete ,

    et tu rentres ce 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
     
    MailMessage mail = new MailMessage();   
     
                        mail.From = xxxx;
                        mail.To = xxxxx;
                        mail.Subject = xxxxx;
                        mail.Body = xxxxxxx;
                        mail.Subject = xxxxxx;
                        mail.Body = xxxxxxx;
    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");    
    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", lis_util[0].InnerText);
     mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", lis_pass[0].InnerText);
       SmtpMail.SmtpServer = "smtp.yahoo.fr";// utiliser le serveur de yahoo par exemple
     
      SmtpMail.Send(mail); // envoyer
    et ça marche tres bien normalement !

  3. #3
    Membre éclairé Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Points : 881
    Points
    881
    Par défaut
    Merci ferradji,
    a priori cette solution ne cause pas d'erreur.

    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
    email.From = new System.Net.Mail.MailAddress(MyExpediteur, MyExpediteur);
                    email.To.Add(new System.Net.Mail.MailAddress(MyDestinataire, MyDestinataire));
                    email.CC.Add(new System.Net.Mail.MailAddress(MyCC, MyCC)); 
                    email.Subject = MyObjet;
                    //email.IsBodyHtml = HTML;
                    email.IsBodyHtml = true;
     
                    email.Body = MyMailMessage;
     
     
                    string utilisateur = "xxx@xxx.net";
                    string password = "xxxxx";
                    string serveur = "xxx.xxx.net";
     
                    System.Net.Mail.SmtpClient SmtpMail = new System.Net.Mail.SmtpClient(serveur);
     
                    email.Headers.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
                    email.Headers.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", utilisateur);
                    email.Headers.Add("http://schemas.microsoft.com/cdo/configuration/smtpaccountname", utilisateur);
                    email.Headers.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", password);
     
                    SmtpMail.Send(email);
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  4. #4
    Membre éclairé Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Points : 881
    Points
    881
    Par défaut
    Je rectifie, en fait les lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    email.Headers.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
                    email.Headers.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", utilisateur);
                    email.Headers.Add("http://schemas.microsoft.com/cdo/configuration/smtpaccountname", utilisateur);
                    email.Headers.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", password);
    Génèrent l'erreur :
    Un caractère non valide a été trouvé dans le nom de l'en-tête
    en pas à pas exception levée dès le premier email.Headers.Add; idem pour le second.

    J'essaie de m'inspirer de l'échange http://www.developpez.net/forums/showthread.php?t=49493

    En WinForms je n'accède pas aux objets System.Web.Mail mais aux objets System.Net.Mail qui ne me permettent pas d'accéder à l'attribut Fields pour pouvoir associer les qui permettent de déclarer utilisateur et mot de passe du serveur de messagerie.

    je pense que mon souci vient de là mais je n'arrive pas à le résoudre ....

    En revanche en WebForms asp.net j'arrivais bien à accéder aux objets System.Web.Mail ....

    Si quelqu'un a une idée ...

    Ou bien y a-t-il une autre manière avec les objets System.Net.Mail de déclarer compte, utilsiateur et mot de passe du serveur smtp ? Je cherche sur le web et je ne trouve pas, à chaque fois la méthode Fields de System.Web.Mail est utilisée ...
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  5. #5
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 134
    Points : 2 241
    Points
    2 241
    Par défaut
    Bonjour,

    Si quelqu'un a encore le problème ...

    L'envoi de mail est fiabilisé avec les extensions MailKit, et MimeKit, à installer avec le gestionnaire NuGet.
    Même Microsoft conseille de s'en servir.

    On en parle là :
    https://www.developpez.net/forums/d2152205/dotnet/langages/csharp/winforms-envoyer-mail

    À tester sur un site ASP.Net

Discussions similaires

  1. envoyer un mail avec mon programme
    Par shrek dans le forum C++Builder
    Réponses: 8
    Dernier message: 06/12/2006, 12h27
  2. [VB6] Comment envoyer un mail HTML par Winsocks ?
    Par hedgehog dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/05/2004, 10h04
  3. [Debutant(e)]envoyer un mail en jsp
    Par SegmentationFault dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 19/01/2004, 18h28
  4. configurer sql pour envoyer des mails
    Par arwen dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/07/2003, 15h28

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