使用NTLM以C#发送电子邮件

时间:2018-07-05 06:57:47

标签: c# email smtp ntlm

我需要使用NTLM发送电子邮件,目前,我正在使用以下代码发送电子邮件

SmtpClient objSmtpClient;
        System.Net.NetworkCredential objNetworkCredential;
        objSmtpClient = new SmtpClient("10.xxx.xxx.xxx", 587);
        objSmtpClient.EnableSsl = true;
        objNetworkCredential = new System.Net.NetworkCredential(userName, password);
        try
        {
            string to = txtto.Text;
            MailMessage objMailMessage = new MailMessage();
            objMailMessage.From = new MailAddress("from@email.com", "sendername");
            objMailMessage.To.Add(new MailAddress("to@email.com"));
            objMailMessage.Subject = "subject";
            objMailMessage.Body = "body";
            objMailMessage.IsBodyHtml = true;
            objSmtpClient.EnableSsl = true;
            objSmtpClient.UseDefaultCredentials = true;
            objSmtpClient.Credentials = objNetworkCredential;
            objSmtpClient.Send(objMailMessage);
        }
        catch (Exception ex)
        {
         MessageBox.Show(ex.Message + " INNER EXCEPTION > "+ex.InnerException +" DATA > "+ex.Data);  
        }

如果我尝试将端口更改为25并将EnableSSL设置为false,则上述代码将起作用,但是当我尝试使用587发送并将EnableSSL设置为true时,它将无效。

我遇到以下错误,有时会收到无效的证书错误。

SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:5.7.1客户端未通过身份验证。

我也收到此错误

enter image description here 我认为问题出在身份验证上,我该如何强制使用NTLM

我与IT团队进行了交谈,他们在我的电脑上安装了一个工具来检查电子邮件,并使用该工具成功发送了电子邮件。

以下是他在该工具中应用的设置

enter image description here

有人可以帮忙吗

1 个答案:

答案 0 :(得分:0)

我正在测试,我遇到了同样的问题,我通过禁用SSL安全性对其进行了修复

SC.EnableSsl = false;