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# SMTP:中继错误_C#_Email_Smtp_Windows Server 2008 - Fatal编程技术网

C# SMTP:中继错误

C# SMTP:中继错误,c#,email,smtp,windows-server-2008,C#,Email,Smtp,Windows Server 2008,我正在创建一个从服务器ip而不是SMTP发送电子邮件地址的电子邮件客户端,我编写了以下代码: SmtpClient server = new SmtpClient("50.23.128.66"); MailMessage msg = new MailMessage("from@yahoo.com", "tome@yahoo.com", "subject", "body"); server.Send(msg); 但当我运行它时,我得到了一个错误: 未处理的异常:System.Net.Mail.S

我正在创建一个从服务器ip而不是SMTP发送电子邮件地址的电子邮件客户端,我编写了以下代码:

SmtpClient server = new SmtpClient("50.23.128.66");
MailMessage msg = new MailMessage("from@yahoo.com", "tome@yahoo.com", "subject", "body");
server.Send(msg);
但当我运行它时,我得到了一个错误:

未处理的异常:System.Net.Mail.SmtpFailedRecipientException:邮箱不可用。服务器响应为:5.7.1中继被拒绝。 在System.Net.Mail.SmtpTransport.SendMail(MailAddressSender,MailAddressColl 区段收件人、字符串传递通知、SmtpFailedRecipientException和异常)

*顺便说一下,我正在使用Windows Server 2008*
我将smtp服务器配置为localhost和端口25,但我不知道这是什么错误。

如果您使用localhost来依赖电子邮件,您应该使用127.0.0.1或localhost,而不是您在代码中发布的ip地址。

如果您使用localhost来依赖电子邮件,您应该使用127.0.0.1或localhost,而不是您在代码中发布的ip地址。

中继是SMTP服务器用于验证是否应该路由来自特定发件人的电子邮件的方法。“开放中继”意味着没有身份验证,SMTP服务器将发送任何人发送的电子邮件。这不是一个好的做法,在这个特定的SMTP服务器上可能有一些机制来进行身份验证,例如用户名和密码,甚至是发送者的IP地址。请与SMTP服务器的管理员联系,了解需要什么。我认为您至少需要设置用户名和密码,而您在代码示例中没有设置用户名和密码。

中继是SMTP服务器用于验证是否应该从特定发件人路由电子邮件的方法。“开放中继”意味着没有身份验证,SMTP服务器将发送任何人发送的电子邮件。这不是一个好的做法,在这个特定的SMTP服务器上可能有一些机制来进行身份验证,例如用户名和密码,甚至是发送者的IP地址。请与SMTP服务器的管理员联系,了解需要什么。我认为您至少需要设置用户名和密码,而您在代码示例中没有这样做。

当您发送
someone@foo.com
通过
bar.com
SMTP服务器发送电子邮件,您正在使用
bar.com
服务器作为邮件中继。如果
bar.com
服务器未配置为中继邮件,则它将拒绝不属于其自己域的SMTP尝试,或拒绝其上的用户。换句话说,这不是编程错误,而是服务器错误,您应该检查服务器配置。当您发送
someone@foo.com
通过
bar.com
SMTP服务器发送电子邮件,您正在使用
bar.com
服务器作为邮件中继。如果
bar.com
服务器未配置为中继邮件,则它将拒绝不属于其自己域的SMTP尝试,或拒绝其上的用户。换句话说,这不是编程错误,而是服务器错误,您应该检查服务器配置。也许更适合serverfault.com.yes,但我在该服务器上有3个IP,我想在发送电子邮件时切换IP,这样我就不会成为垃圾邮件发送者谁说通过切换IP,你不会被标记为垃圾邮件发送者?是的,但我在那个服务器上有3个IP,我想在发送电子邮件时切换IP,这样我就不会成为垃圾邮件发送者谁说通过切换IP,你就不会被标记为垃圾邮件发送者?比那更复杂。