System.Net.Mail在生产服务器上不起作用

时间:2019-06-29 19:40:22

标签: c# .net asp.net-web-api smtpclient

我知道这个问题已经问过几次了,但是我的情况却大不相同。 我有一个Web API项目,该项目具有一种用于向用户发送电子邮件以确认其注册的操作方法。该代码在我的本地计算机和所有其他本地计算机上运行良好。第一次部署后,发送电子邮件功能正常工作,直到某天突然停止工作。在将Web API代码附加到生产服务器IIS后,代码中的没有异常在日志文件中没有发现异常,一切似乎都很好。我再次检查了生产服务器上是否已启用SMTP功能。

进一步的故障排除:

  1. 我已经关闭了防火墙(没有成功)。
  2. 为了解决问题,我制作了一个简单的C#控制台应用程序,该应用程序使用相同的配置发送虚拟邮件,但也没有成功(它在本地工作得很好,但是在生产服务器上没有成功)。 / li>
  3. 我尝试了here提出的解决方案,但也没有成功。

这是我正在使用的示例代码:

            MailMessage mail = new MailMessage();
            mail.From = new System.Net.Mail.MailAddress(fromMail);

            // The important part -- configuring the SMTP client
            SmtpClient smtp = new SmtpClient();
            smtp.Port = 587;   // [1] You can try with 465 also, I always used 587 and got success
            smtp.EnableSsl = true;
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network; // [2] Added this
            smtp.UseDefaultCredentials = false; // [3] Changed this
            smtp.Credentials = new NetworkCredential(fromMail, fromPassword);  // [4] Added this. Note, first parameter is NOT string.
            smtp.Host = SMTPServer;


            //recipient address
            mail.To.Add(new MailAddress(toMail));

            //Formatted mail body
            mail.IsBodyHtml = true;


            mail.Body = body;
            mail.Subject = subject;
            smtp.Send(mail);
            return true;

我使用smtp.office365.com作为SMTP服务器客户端。

我还有最后一个问题:

  

System.Net.Mail是否限制每封邮件发送的邮件数量   日月年?还是有可能服务器已经   被阻止发送电子邮件?

0 个答案:

没有答案