2012-01-20 5 views
0

У меня есть программа проверки сервисов на 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], и письмо не отправляется. Это что-то, что не настроено на сервере, а не программа, вызывающая мою проблему (конфигурация сервера не моя сильная область).

Спасибо.

+1

Использовать 'try ... catch (Exception ex)' вокруг вашей функции и показать нам 'ex.Message' пожалуйста ... – Marco

+1

Имеет ли учетная запись службы доступ к SMTP-серверу? – KMan

ответ

0

Есть ли сервер электронной почты, работающий на сервере, где сбой вашей программы? Вы пытаетесь отправить электронное письмо на адрес localhost (то есть на компьютер, на котором выполняется ваша программа). Если SMTP-порт 25 не отвечает на этом компьютере, ваше электронное письмо не будет доставлено.

Для emailServer вам необходимо указать имя хоста компьютера в своей сети, способное принимать и обрабатывать электронную почту. Обычно вы не используете localhost для имени этого компьютера.

+0

Спасибо Мартин - только что выяснили, что на сервере нет сервера электронной почты, поэтому программа не сможет работать на этом сервере. Благодарю. –

+0

Для отправки электронной почты вам не нужен локальный сервер электронной почты. Предполагая, что у вас где-то в вашей сети есть сервер, который может обрабатывать электронную почту, вы должны указать этот сервер как 'mailServer'. –

+0

Я знаю, что почтовый сервер моих компаний «mail.mycompany.com», но проблема в том, что это для внешней компании - я удаленный рабочий стол на своем сервере (Windows 2003 Server), и я устал localhost, но он не настроен - и Я не знаю, что такое их почтовый сервер, и я предполагаю, что я не могу использовать свои компании? –

Смежные вопросы