none
Envoi e-mail RRS feed

  • Discussion générale

  • Bonjour , je me tourne vers vous car après avoir récupérer plusieurs codes permettant d'envoyer des mails en C# je n'y parvient toujours pas , en effet le délai d'attente est chaque fois dépassé , j'ai essayé de le fixer assez haut mais rien n'y fait, le programme ne fonctionne pas , des idées? 

    Un des programmes testés:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Net.Mail;
    
    namespace mail6
    {
        class Program
        { 
            public const string GMAIL_SERVER = "smtp.gmail.com";
             
            public const int PORT = 587;
    
            static void Main(string[] args)
            {
                try
                {
                    SmtpClient mailServer = new SmtpClient(GMAIL_SERVER, PORT);
                    mailServer.EnableSsl = true;
    
                     
                    mailServer.Credentials = new System.Net.NetworkCredential("******@gmail.com", "*******");
                                    
                    string from = "******@gmail.com";
                     
                    string to = "**********@gmail.com";
    
                    MailMessage msg = new MailMessage(from, to);                
                    msg.Subject = "test envoi message";                
                    msg.Body = "test.";
                    Console.WriteLine("Envoi du message . . . ");
                    mailServer.Send(msg);
                    Console.WriteLine("Message envoyé ");
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Le message n'a pas été envoyé \n \n \n " + ex);
                }
    
                Console.ReadKey();
            }
        }
    }  
        
    

    J'ai également essayé de changer le port mais rien ne change.

    Merci.

    mercredi 9 septembre 2015 15:53

Toutes les réponses

  • Bonjour,

    Je vous confirme que votre code fonctionne. Je vous dirais de contrôler vos credentials ? Pouvez-vous fournir le contenu de l'exception si malgré cela l'exception est toujours remontée ?

    mercredi 9 septembre 2015 18:38
  • Les credentials sont corrects , voici le contenu de la console une fois le délai d'attente dépassé.

    J'avoue ne pas comprendre car tout me semble correct.

    Envoi du message . . .
    Le message n'a pas été envoyé


     System.Net.Mail.SmtpException: Le délai d'attente de l'opération a expiré.
       à System.Net.Mail.SmtpClient.Send(MailMessage message)
       à mail6.Program.Main(String[] args) dans c:\users\hugo\documents\visual studi
    o 2015\Projects\mail6\mail6\Program.cs:ligne 34

    mercredi 9 septembre 2015 19:09
  • Bonjour,

    Bizarre car cela m'a l'air correct.

    Est ce que le port 587 est bien ouvert sur votre réseau ?


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    jeudi 10 septembre 2015 06:38
  • Bonjour,

    J'ai tenté de vérifier l'état du port , il semble ouvert .

    J'ai tenté d'ajouter une nouvelle règle concernant ce port mais une nouvelle erreur survient :

    Envoi du message . . .
    Le message n'a pas été envoyé


     System.Net.Mail.SmtpException: Échec d'envoi du courrier. ---> System.Net.WebEx
    ception: Impossible de se connecter au serveur distant ---> System.Net.Sockets.S
    ocketException: Une tentative de connexion a échoué car le parti connecté n'a pa
    s répondu convenablement au-delà d'une certaine durée ou une connexion établie a
     échoué car l'hôte de connexion n'a pas répondu 64.233.167.109:587
       à System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddres
    s socketAddress)
       à System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socke
    t s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, I
    AsyncResult asyncResult, Exception& exception)
       --- Fin de la trace de la pile d'exception interne ---
       à System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object own
    er, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6
    )
       à System.Net.PooledStream.Activate(Object owningObject, Boolean async, Genera
    lAsyncDelegate asyncCallback)
       à System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate
    asyncCallback)
       à System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDe
    legate asyncCallback, Int32 creationTimeout)
       à System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)
       à System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)
       à System.Net.Mail.SmtpClient.GetConnection()
       à System.Net.Mail.SmtpClient.Send(MailMessage message)
       --- Fin de la trace de la pile d'exception interne ---
       à System.Net.Mail.SmtpClient.Send(MailMessage message)
       à mail6.Program.Main(String[] args) dans C:\Users\hugo\Documents\Visual Studi
    o 2015\Projects\mail6\mail6\Program.cs:ligne 34

    Une idée?

    jeudi 10 septembre 2015 08:56
  • Bonjour,

    Votre compte gmail est securisé ?

    Avez-vous testé avec un autre compte ?

    Cordialement,


    Cordialement,

    vendredi 11 septembre 2015 15:03
  • Bonjour, hld29,

    Le thread est-il toujours d'actualité?
    Je vous remercie par avance de votre retour.

    Cordialement,
    Teodora

    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 30 septembre 2015 23:49
    Modérateur