Partage
  • Partager sur Facebook
  • Partager sur Twitter

envoyer des mail avec c#

    4 août 2010 à 12:09:35

    salut,

    j'ai essayer de faire une application en c# qui a pour but est d'envoyer des mail.
    j'ai essayer avec ce code mais il m'affiche toujours "Echec d'envoi du courrier"
    j'ai fait des recherches dans des différent forum mais j'ai trouver des choses paraille :(

    private void button1_Click(object sender, EventArgs e)
            {
                MailMessage email = new MailMessage();
                email.From = new System.Net.Mail.MailAddress("source@gmail.com");
                email.To.Add(new MailAddress("destination@gmail.com"));
                email.IsBodyHtml = true; 
                email.Subject = "objet du mail";
                email.Body = "  contenu du mail";
                System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
                smtp.Host = "smtp.gmail.com";
                smtp.Credentials = new System.Net.NetworkCredential("source", "mot-de-passe");
                try
                {
                    smtp.Send(email);
                    MessageBox.Show("email est envoyer");
                }
                catch (SmtpException ex)
                {
                    MessageBox.Show(ex.Message);
                } 
              
              
            }
    

    merci pour votre repenses :)
    • Partager sur Facebook
    • Partager sur Twitter
      4 août 2010 à 13:03:35

      Port 25 bloqué par le FAI ?
      • Partager sur Facebook
      • Partager sur Twitter

      Blond, bouclé, toujours le sourire aux lèvres...

        4 août 2010 à 13:12:32

        j'ai déja changer le numéro de port mais c'est le même résultat qui s'affiche :(
        exemple:(smtp.Port = 5005;)
        • Partager sur Facebook
        • Partager sur Twitter
          4 août 2010 à 13:17:01

          Haha, non mais faut aussi que ce soit un port sur lequel il y a un daemon SMTP qui écoute, tu peux pas prendre n'importe quel port au hasard :D
          • Partager sur Facebook
          • Partager sur Twitter

          Blond, bouclé, toujours le sourire aux lèvres...

            4 août 2010 à 13:25:22

            Chez moi, cette ligne suffit (pas besoin de spécifier ni credentials, ni port) :
            SmtpClient smtpClient = new SmtpClient("smtp.free.fr");
            Mais ça dépend peut-être du FAI.

            Sinon, il y a toujours MSDN:

            public static void CreateTestMessage1(string server, int port)
            {
            	string to = "jane@contoso.com";
            	string from = "ben@contoso.com";
            	string subject = "Using the new SMTP client.";
            	string body = @"Using this new feature, you can send an e-mail message from an application very easily.";
            	MailMessage message = new MailMessage(from, to, subject, body);
            	SmtpClient client = new SmtpClient(server, port);
            	// Credentials are necessary if the server requires the client 
            	// to authenticate before it will send e-mail on the client's behalf.
            	client.Credentials = CredentialCache.DefaultNetworkCredentials;
            
            	try
            	{
            		client.Send(message);
            	}
            	catch (Exception ex)
            	{
            		Console.WriteLine(
            			"Exception caught in CreateTestMessage1(): {0}",
            			ex.ToString());
            	}
            }
            


            Au pire tu essaies avec le port par défaut (donc tu n'en spécifies pas) et avec les credentials par défaut:
            SmtpClient client = new SmtpClient(server);
            client.Credentials = CredentialCache.DefaultNetworkCredentials;
            
            • Partager sur Facebook
            • Partager sur Twitter
              4 août 2010 à 13:44:05

              même avec le port par défaut et avec les credentials par défaut ça ne fonctionne pas :(
              • Partager sur Facebook
              • Partager sur Twitter
                4 août 2010 à 13:52:13

                je ne sais pas comment le connetre
                • Partager sur Facebook
                • Partager sur Twitter
                  4 août 2010 à 14:08:58

                  1ère solution:

                  Va sur http://www.monadresseip.com/ pour savoir ton IP publique.
                  Va ensuite sur http://www.dnsstuff.com/ et entre ton IP dans IPWHOIS Lookup et tu connaîtras ton FAI en regardant à côté de "descr: ".


                  2ème solution:

                  Va sur http://www.speedtest.net/, fais le test, et dis-nous ce qui est écrit en dessous de ISP (Internet Service Provider).
                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 août 2010 à 14:38:59

                    Citation : enarouge

                    même avec le port par défaut et avec les credentials par défaut ça ne fonctionne pas :(


                    Avec telnet tu peux voir si c'est bien le port 25 qui est bloqué :
                    telnet smtp.gmail.com 25

                    Si ça timeout, il y a de fortes chances pour que ce soit le FAI qui te bloque.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Blond, bouclé, toujours le sourire aux lèvres...

                      4 août 2010 à 14:45:23

                      Le serveur SMTP sert juste à envoyer les messages, normalement il n'y a pas besoin de s'authentifier avec son login/pass pour y accéder sauf s'il est en SMTP-Auth.

                      Pour te connecter au serveur SMTP de gmail (SSL) :
                      IP : smtp.gmail.com
                      PORT : 465
                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 août 2010 à 14:57:22

                        J'aimerais quand même savoir quel est son FAI. Parce que je ne vois pas pourquoi il utilise smtp.gmail.com et pas le smtp de son FAI...
                        • Partager sur Facebook
                        • Partager sur Twitter
                          4 août 2010 à 15:04:47

                          Citation : Narvarth

                          Parce que je ne vois pas pourquoi il utilise smtp.gmail.com et pas le smtp de son FAI...


                          Bah, la réponse me semble évidente, quand on ne sans pas quel FAI on a, un risque pas d'utiliser son SMTP.
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Blond, bouclé, toujours le sourire aux lèvres...

                            4 août 2010 à 15:30:09

                            % This is the AfriNIC Whois server.

                            % Note: this output has been filtered.

                            % Information related to '41.224.128.0 - 41.224.255.255'

                            inetnum: 41.224.128.0 - 41.224.255.255
                            netname: PLANET-ADLG
                            descr: ADSL LIGHT Customers
                            country: TN
                            admin-c: LD822-AFRINIC
                            tech-c: LD822-AFRINIC
                            status: ASSIGNED PA
                            mnt-by: ATI-MNT
                            source: AFRINIC # Filtered
                            parent: 41.224.0.0 - 41.231.255.255

                            role: ATI LIR DEP
                            address: 13 rue Jugurtha Mutuelle-ville
                            address: 1002 Tunis - Tunisia
                            phone: +216 71 846 100
                            fax-no: +216 71 846 600
                            e-mail: ***@ati.tn
                            admin-c: PA1317-AFRINIC
                            tech-c: KS903-AFRINIC
                            tech-c: WS939-AFRINIC
                            tech-c: AL2284-AFRINIC
                            nic-hdl: LD822-AFRINIC
                            mnt-by: ATI-MNT
                            remarks: data has been transferred from RIPE Whois Database 20050221
                            source: AFRINIC # Filtered

                            • Partager sur Facebook
                            • Partager sur Twitter
                              4 août 2010 à 15:39:01

                              @LoupSolitaire:
                              Je me suis mal exprimé, je comprends qu'il fasse ça vu qu'il ne connaît pas son FAI. Mais ça me paraissait bizarre d'utiliser n'importe quel SMTP pour envoyer des mails.
                              En tout cas, je pense qu'avec celui de son FAI il aura moins de soucis.

                              @enarouge:
                              Bizarre, moi j'ai plus de détails. Là je sais pas quel est ton FAI. Tente la solution n°2 stp !
                              • Partager sur Facebook
                              • Partager sur Twitter
                                4 août 2010 à 15:45:21

                                Sinon :
                                http://www.tunitech.net/forum/topic/48 [...] as-sur-linux/

                                J'ai trouvé Agence Tunisienne d'Internet comme FAI via une petite recherche, je sais pas trop si c'est fiable, mais ça peut se tester.
                                • Partager sur Facebook
                                • Partager sur Twitter

                                Blond, bouclé, toujours le sourire aux lèvres...

                                  4 août 2010 à 16:21:27

                                  C'est bien ce que pensais LoupSolitaire.

                                  Essaie smtp.Host = "193.95.67.14"; au lieu de smtp.Host = "smtp.gmail.com"; et dis-nous si ça marche.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    4 août 2010 à 16:35:25

                                    il ne m'affiche plus le message précédent"Echec d'envoi du courrier" mais il m'envoie ce message d'erreur"le serveur ne prend pas en charge les connexions sécurisées "
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      4 août 2010 à 16:38:13

                                      Alors essaie en enlevant cette ligne : smtp.Credentials = new System.Net.NetworkCredential("source", "mot-de-passe"); !
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        4 août 2010 à 16:47:52

                                        il m'envoie encore ce message d'erreur: "le serveur ne prend pas en charge les connexions sécurisées"
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          4 août 2010 à 16:59:13

                                          Essaie ça : smtp.EnableSsl = false; (où smtp est ton SmtpClient).


                                          ps: ça n'a rien à voir mais ça m'a fait rire:

                                          Citation : signature de BuRner

                                          C/C++/C# : #include <BuRner>


                                          En C# c'est using... :-°
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            4 août 2010 à 17:08:35

                                            un nouveau message d'erreur :

                                            "Echec de la transmission.la réponse du serveur était : 5.7.1
                                            <destination@gmail.com>:Relay access denied"

                                            avec destination@gmail.com c'est mon adresse destination
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              4 août 2010 à 17:14:35

                                              Citation : Narvarth

                                              Alors essaie en enlevant cette ligne : smtp.Credentials = new System.Net.NetworkCredential("source", "mot-de-passe"); !


                                              Je pense que c'était une bêtise de ma part. L'authentification n'a pas de lien avec les "connexions sécurisées". Si je ne dis pas de bêtise, "sécurisées" = "cryptées" et non pas "sans authentification"...

                                              Donc essais en remettant les credentials.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                4 août 2010 à 17:17:50

                                                le message précédent c'est en remettant les credentials. :)
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  4 août 2010 à 17:26:21

                                                  Citation : enarouge

                                                  "Echec de la transmission.la réponse du serveur était : 5.7.1
                                                  <destination@gmail.com>:Relay access denied"


                                                  Ce SMTP ne fais pas relai, donc c'est mort, faut en utiliser un autre.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter

                                                  Blond, bouclé, toujours le sourire aux lèvres...

                                                    4 août 2010 à 17:27:07

                                                    Alors je ne sais pas.

                                                    Mais es-tu sûr que ce sont les bons credentials ?

                                                    S'ils sont corrects, essaie avec smtp.Credentials = CredentialCache.DefaultNetworkCredentials; .
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      5 août 2010 à 9:39:20

                                                      même avec des credentials par défaut on a le même résultat
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        30 octobre 2013 à 13:34:29

                                                        Le port de SMTP est 587.

                                                        Donc 

                                                         SmtpClient stpc = new SmtpClient("smtp.gmail.com", 587);

                                                                stpc.Credentials = new System.Net.NetworkCredential("Votre adresse GMAIL", "le mot de passe");

                                                                stpc.EnableSsl = true;

                                                                stpc.Send(mail);

                                                        Et normalement sa dois marcher :)

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          30 octobre 2013 à 13:38:45 - Message modéré pour le motif suivant : Doublon


                                                          envoyer des mail avec c#

                                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                          • Editeur
                                                          • Markdown