Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;无法连接到远程服务器";错误_C#_Email_Smtp - Fatal编程技术网

C# &引用;无法连接到远程服务器";错误

C# &引用;无法连接到远程服务器";错误,c#,email,smtp,C#,Email,Smtp,我正在尝试从我的网站发送电子邮件 这是我的代码: public string SendEmail() { string sMessage; SmtpClient smtpClient = new SmtpClient("mail.test.com",25); MailMessage message = new MailMessage(); try { smtpClient.Credentials = new System.

我正在尝试从我的网站发送电子邮件

这是我的代码:

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");
尝试:

以下是我用来发送电子邮件的任务示例:

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应用程序不。。。您可能无法设置客户端服务对象的代理属性。我的问题就这样解决了。希望它会有帮助。

使用类似的模式,我的rest客户端正在调用服务API,调试时成功调用了服务,但没有处理已发布的代码。 错误是:无法连接到远程服务器

内部异常:System.Net.Sockets.SocketException(0x80004005):无法建立连接,因为目标计算机主动拒绝它的服务IP:443 位于System.Net.Sockets.Socket.DoConnect(端点端点快照,SocketAddress SocketAddress) 在System.Net.ServicePoint.ConnectSocketInternal(布尔连接失败、套接字s4、套接字s6、套接字和套接字、IPAddress和address、ConnectSocketState状态、IAsyncResult asyncResult、异常和异常)

解析:在Web配置中设置代理

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


你检查防火墙了吗?@Sybren是的,我检查过了,它对端口25开放。
<system.net>
    <defaultProxy useDefaultCredentials="true">
      <proxy proxyaddress="http://proxy_ip:portno/" usesystemdefault="True"/>
    </defaultProxy>
</system.net>