2017-03-05 1 views
0

Ich versuche, eine E-Mail von meiner Website zu senden."Kann nicht mit dem Remote-Server verbinden" Fehler

dies ist mein Code:

public string SendEmail() 
    { 
    string sMessage; 
    SmtpClient smtpClient = new SmtpClient("mail.test.com",25); 
    MailMessage message = new MailMessage(); 
    try 
     { 
     smtpClient.Credentials = new System.Net.NetworkCredential("web", "test1234", "myDomain"); 
     MailAddress fromAddress = new MailAddress("[email protected]", "web"); 

     message.From = fromAddress; 
     message.To.Add("[email protected]"); 
     message.Subject = "test"; 
     message.Body = "TEST"; 
     message.IsBodyHtml = true; 
     smtpClient.EnableSsl = false; 
     smtpClient.Send(message); 
     sMessage = "Email sent."; 
     } 
     catch (Exception ex) 
     { 
      sMessage = "Coudn't send the message!\n " + ex.Message; 
     } 
     return ""; 
    } 

Aber ich die folgende Fehlermeldung erhalten:

"Unable to connect to the remote server"

Die Daten (Hostname, Port, Anmeldeinformationen) korrekt ist, ich es in eine gesichtete einige SMTP-Checker (für ex this one) und es hat gut funktioniert.

versuchte ich alles, was ich online gefunden:

smtpClient.UseDefaultCredentials = false; 
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 

Und verschiedene Häfen aber nichts half, habe ich den Fehler erhalte.

Was mache ich etwas falsch? Fehle ich etwas?

+0

Haben Sie die Firewall überprüft? – Sybren

+0

@Sybren ja, ich habe überprüft, es ist offen für Port 25. – user3378165

Antwort

0

Statt:

smtpClient.Credentials = new System.Net.NetworkCredential("web", "test1234", "myDomain"); 

Versuch:

smtpClient.Credentials = new System.Net.NetworkCredential("emailaddress", "password"); 

Hier ist ein Beispiel für eine Aufgabe, die ich verwende, E-Mail senden:

public Task SendEmail(string email, string subject, string body) 
{ 
try 
{ 
var mailClient = new SmtpClient 
{ 
Host = "mail.mydomain.com", 
Credentials = new NetworkCredential("[email protected]", "mypasword"), 
Port = myport, 
DeliveryMethod = SmtpDeliveryMethod.Network 
}; 

var msg = new MailMessage("from email", email, subject,body) {IsBodyHtml = true}; 
mailClient.Send(msg); 

return Task.FromResult(0); 
} 
catch (Exception ex) 
{ 
return null; 
} 
} 
0

ich gleiches Problem. Konsolenanwendungen verwenden den System-Proxy, aber Web-Anwendungen nicht ... Sie könnten die Proxy-Attribute Ihres Client-Service-Objekts nicht festlegen. Mein Problem ist auf diese Weise gelöst. Ich wünschte, es wäre hilfreich.

0

Mit ähnlichen Muster ruft mein Restclient die Service-API, der Dienst beim Debuggen erfolgreich aufgerufen, aber nicht auf den veröffentlichten Code arbeiten. Fehler war: Verbindung zum Remote-Server konnte nicht hergestellt werden.

Innere Ausnahme: System.Net.Sockets.SocketException (0x80004005): Es kann keine Verbindung hergestellt werden, da der Zielcomputer aktiv es serviceIP verweigert: 443 bei System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, Socket Socket) bei System.Net.ServicePoint.ConnectSocketInternal (Boolean connectFailure, Socket s4, Socket s6, Socket & Buchse, IPAddress & Adresse, ConnectSocketState Zustand, IAsyncResult asyncResult, Exception & Ausnahme)

Auflösung: den Proxy-Set in der Webkonfiguration.

<system.net> 
    <defaultProxy useDefaultCredentials="true"> 
     <proxy proxyaddress="http://proxy_ip:portno/" usesystemdefault="True"/> 
    </defaultProxy> 
</system.net> 
Verwandte Themen