【发布时间】:2017-02-15 08:33:24
【问题描述】:
我正在尝试通过 .net smtp 发送电子邮件。我收到这条消息: SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.1 客户端未通过身份验证
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("server", 587);
SmtpServer.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
SmtpServer.UseDefaultCredentials = false;
SmtpServer.EnableSsl = false;
SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
mail.From = new MailAddress(FromMail);
mail.To.Add("emailaddress");
mail.Bcc.Add("emailaddress");
mail.Subject = subject;
mail.Body = body;
mail.IsBodyHtml = true;
SmtpServer.Send(mail);
我认为问题是服务器位于 DMZ 中...任何人都知道如何解决这个问题?如果我们为用户分配域管理员权限,则电子邮件可以工作...出于安全原因,我们不想走那条路。
【问题讨论】:
-
EnableSsl = true- 错误表明您需要安全连接是吗? -
不一定,如果我将其设置为 false 并赋予我的网络凭据“域管理员”权限,则电子邮件通过 OK
-
可能是重复的stackoverflow.com/questions/20092414/… 另外,这听起来不像是代码问题,而更像是 smtp 服务器上的权限问题,然后是 @scrus24
-
"If we assign the user with domain admin rights, the emails work"表示这是一个权限错误。您需要检查您尝试发送电子邮件的用户帐户设置。我不确定我们能为您做些什么,因为我们不(也不能)知道您的 SMTP 或域用户和权限设置是如何设置的。 -
@user1666620 我们也不能发送匿名电子邮件(即使该框已选中)...这是否也相关?
标签: c# .net smtp smtpclient dmz