У меня есть программа проверки сервисов на 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);
Так на одном сервере, я использую emailServer как «локальный» прошел в в файле летучей мыши и, когда он работает, если сервис, который я проверяю не работает, то электронная почта отправляется отлично, и все работает. Однако на другом сервере я снова использую «localhost» в качестве моего почтового сервера, но когда я запускаю файл bat. Я получаю сообщение об ошибке System.Net.Mail.Smtp.Exception [8012], и письмо не отправляется. Это что-то, что не настроено на сервере, а не программа, вызывающая мою проблему (конфигурация сервера не моя сильная область).
Спасибо.
Использовать 'try ... catch (Exception ex)' вокруг вашей функции и показать нам 'ex.Message' пожалуйста ... – Marco
Имеет ли учетная запись службы доступ к SMTP-серверу? – KMan