web-dev-qa-db-fra.com

Impossible de se connecter au serveur distant C #

J'ai fait cette application console qui balaye sur un dossier pour les fichiers et les envoie par courrier électronique comme attachments.It fonctionne très bien dans ma machine locale. Mais lorsque j'essaie de l'exécuter à distance sur une autre machine (serveur de test), cela me donne une exception.

C'est une exception que je vois.

 innerException  {System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: An attempt was made to access a socket in a way forbidden by its access permissions *******:25
       at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
       at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
       --- End of inner exception stack trace ---
       at System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6)
       at System.Net.PooledStream.Activate(Object owningObject, Boolean async, GeneralAsyncDelegate asyncCallback)
       at System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback)
       at System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout)
       at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)
       at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)
       at System.Net.Mail.SmtpClient.GetConnection()
       at System.Net.Mail.SmtpClient.Send(MailMessage message)} System.Exception {System.Net.WebException}

Je ne sais pas pourquoi cela fonctionnerait sur mon ordinateur local et non sur le serveur. Est-ce parce qu'un compte Outlook n'est pas configuré sur le serveur?

Ceci est le code postal dans mon application -

public static void SendMailMessage(string file) 
{
    const string subject = "TESTING";
    const string body = "";

    string from = ConfigurationManager.AppSettings["from"];        
    string to = ConfigurationManager.AppSettings["to"];
    var message = new MailMessage(from, to, subject, body);
    message.Attachments.Add(new Attachment(file));
    var client = new SmtpClient("smtp.mail***.com")
    {
        DeliveryMethod = SmtpDeliveryMethod.Network,
        UseDefaultCredentials = true

    };

    try
    {
        client.Send(message);
        Console.WriteLine("Email Successfully sent!");

    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
    }
}
4
user2901683

* N'oubliez pas que nous devons ajouter des informations d'identification réseau:

 SmtpClient client = new SmtpClient();
        client.Credentials = new    System.Net.NetworkCredential("[email protected]", "patito12");
        client.Port = 587;
        client.Host = "smtp.gmail.com";
        client.EnableSsl = true;
        client.Send(mail);

parfois, l'erreur suivante: "Impossible de se connecter au serveur distant" est déclenchée car le port du serveur 587 est bloqué.

2
Elenasys

Le problème est que vous utilisez les informations d'identification par défaut sur le serveur distant, ce qui est refusé par le serveur distant, car il est impossible d'accéder aux informations d'identification par défaut dans un tel environnement. Essayez ceci cela fonctionnera.

 var client = new SmtpClient("smtp.mail***.com",port)
 {  
    NetworkCredentials = new NetworkCredentials("username","password")        
 };
 client.Send();
2
user2905764