【发布时间】:2014-05-23 22:07:36
【问题描述】:
我整天都在研究这个问题,我束手无策!我根本无法让我的 smtp 服务器与我的 Windows 用户进行身份验证 - 我做错了什么?我不断收到错误:
SMTP 服务器需要安全连接,或者客户端没有 认证。服务器响应是:5.7.3 客户端没有 已认证
我的 smtp 设置为在访问选项卡中将身份验证设置为 集成 Windows 身份验证:
我的中继限制设置为仅以下列表,并且我已将 127.0.0.1 添加到列表中。我还选中了允许所有成功通过身份验证的计算机进行中继,而不管上面的列表:
其他所有内容仍设置为其默认值。我的代码说:
var objMessage = new MailMessage("fromEmail@sometest.com", "toEmail@gmail.com");
// format subject and message
objMessage.Subject = "testing email";
objMessage.Body = "blah blah";
using (var client = new SmtpClient())
{
client.Host = "127.0.0.1";
client.Port = 25;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("SMTPuser", "mypassword");
client.Send(objMessage);
}
我已经在机器上创建了一个标准的 Windows 用户 SMTPuser 并使用匹配的密码。我很困惑。此 Windows 身份验证应该如何工作?我做错了什么假设?为什么我只有在所有安全级别都设置为匿名时才能发送?
我要做的就是向任何域发送邮件(我不需要接收邮件),并且显然可以保护我的服务器免受垃圾邮件发送者使用它来发送垃圾邮件。目前,唯一合法的访问应该来自本地主机。从我所做的研究来看,我似乎可以通过将所有内容设置为匿名来完成我想要的,但随后将连接限制为 127.0.0.1 并将中继限制限制为 127.0.0.1 - 对吗?我即将求助于它,但我真的很想了解它是如何工作的,尤其是在我可能希望有一天远程访问 smtp 服务器的情况下。
我是否认为我可以设置一个服务器,让任何可以通过我的 SMTPuser Windows 登录进行身份验证的人都能够使用我的 smtp 服务器向任何域发送电子邮件?
【问题讨论】:
标签: security authentication smtp