簡體   English   中英

“無法連接到遠程服務器”錯誤

[英]“Unable to connect to the remote server” Error

我正在嘗試從我的網站發送電子郵件。

這是我的代碼:

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("web@test.com", "web");

         message.From = fromAddress;
         message.To.Add("test@gmail.com"); 
         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 "";
    }

但我收到以下錯誤:

“無法連接到遠程服務器”

數據(主機名、端口、憑據)是正確的,我在幾個 SMTP 檢查器(例如這個)中檢查了它並且它工作正常。

我嘗試了我在網上找到的所有內容:

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

和不同的端口,但沒有任何幫助,我不斷收到錯誤消息。

我做錯了什么? 我錯過了什么嗎?

代替:

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

嘗試:

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

這是我用來發送電子郵件的任務示例:

public Task SendEmail(string email, string subject, string body)
 {
 try
 {
 var mailClient = new SmtpClient
 {
 Host = "mail.mydomain.com",
 Credentials = new NetworkCredential("email@mydomain.com", "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;
 }
 }

我有同樣的問題。 控制台應用程序使用系統的代理,但 Web 應用程序不使用...您可能會錯過設置客戶端服務對象的代理屬性。 我的問題就是這樣解決的。 希望它會有所幫助。

使用類似的模式,我的其余客戶端正在調用服務 API,該服務在調試時成功調用,但無法處理已發布的代碼。 錯誤是:無法連接到遠程服務器。

內部異常:System.Net.Sockets.SocketException (0x80004005):無法建立連接,因為目標機器主動拒絕它 serviceIP:443 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&異常)

解決方法:在 Web 配置中設置代理。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM