在服务器上运行程序时出现邮件异常

本文关键字:异常 服务器 运行 程序 | 更新日期: 2023-09-27 18:20:57

我有一个C#服务检查器程序。exe是从一个bat文件开始的,该文件还传递了许多参数(例如,要检查的服务数量的int计数、服务显示名称的字符串),以及emailTo、emailFrom、emailServer等,就好像服务没有运行一样,将发送一封电子邮件。这是电子邮件部分的代码:

MailMessage mail = new MailMessage(emailFrom, emailTo);
SmtpClient SMTP = new SmtpClient(emailServer);
if (emailUser != "")
{
    SMTP.Credentials = new NetworkCredential(emailUser, emailPass);
}
mail.Subject = "The " + service + " service has stopped running";
mail.Body = "Please take a look into the " + 
            service + " service and think about restarting.";
SMTP.Send(mail);

因此,在一台服务器上,我在bat文件中使用emailServer作为传入的"localhost",当它运行时,如果我正在检查的服务没有运行,那么电子邮件就会正常发送,一切正常。然而,在另一台服务器上,我再次使用"localhost"作为我的emailServer,但当我运行bat文件时。我收到一个错误System.Net.Mail.Smtp.Exception[8012],并且没有发送电子邮件。这是不是服务器上没有设置的东西,而不是导致我问题的程序(服务器配置不是我的强项)。

谢谢。

在服务器上运行程序时出现邮件异常

您的程序出现故障的服务器上是否正在运行电子邮件服务器?您正在尝试向localhost(即执行程序的计算机)发送电子邮件。如果该计算机上的SMTP端口25没有响应,则不会发送您的电子邮件。

对于emailServer,您必须提供网络中能够接受和处理电子邮件的计算机的主机名。通常情况下,您不会使用localhost作为该计算机的名称。