2012-01-20 9 views
0

C# 서비스 검사기 프로그램이 있습니다. exe는 여러 인수 (예 : 확인하려는 서비스의 int 개수, 서비스 표시 이름의 문자열) 및 emailTo, emailFrom, emailServer 등과 같이 다수의 인수를 전달하는 박쥐 파일에서 시작됩니다. 서비스가 실행되고 있지 않으면 이메일이 전송됩니다. 이것은 이메일 부분에 대한 코드입니다 : 나는대로 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); 

"localhost"를 박쥐 파일에 전달하고 실행하면 내가 확인하고 서비스는 다음 실행되고 있지 않은 경우 이메일이 잘 보내고 모든 것이 작동합니다. 그러나 다른 서버에서 나는 다시 "localhost"를 내 emailServer로 사용하지만 박쥐 파일을 실행할 때. System.Net.Mail.Smtp.Exception [8012] 오류가 발생하고 전자 메일이 보내지지 않습니다. 이 문제는 내 문제의 원인이되는 프로그램 (서버 설정이 내 강력한 영역이 아님)이 아닌 서버에서 설정되는 것입니다.

감사합니다.

+1

함수 주위에'try ... catch (Exception ex)'를 사용하고'ex.Message'를 보여주십시오 ... – Marco

+1

서비스 계정이 smtp 서버에 액세스 할 수 있습니까? – KMan

답변

0

프로그램이 실패한 서버에서 전자 메일 서버가 실행되고 있습니까? localhost (즉, 프로그램이 실행되는 컴퓨터)으로 전자 메일을 보내려합니다. 해당 컴퓨터에서 SMTP 포트 25가 응답하지 않으면 전자 메일이 배달되지 않습니다.

emailServer의 경우 네트워크에서 전자 메일을 수락하고 처리 할 수있는 컴퓨터의 호스트 이름을 제공해야합니다. 일반적으로 해당 컴퓨터의 이름으로는 localhost을 사용하지 않습니다.

+0

고마워 Martin - 서버에 이메일 서버가 없으므로 프로그램을이 서버에서 실행할 수 없습니다. 감사. –

+0

전자 메일을 보내려면 로컬 전자 메일 서버가 필요하지 않습니다. 네트워크 어딘가에 전자 메일을 처리 할 수있는 서버가 있다고 가정하면 해당 서버를'emailServer'로 지정해야합니다. –

+0

내 회사의 메일 서버가 "mail.mycompany.com"이지만 문제는 외부 회사를위한 것인데 - 원격 데스크톱을 서버 (Windows 2003 Server)에 연결하면 로컬 호스트에 지쳐 버렸지 만 설정이 안된 것입니다. 나는 그들의 emailServer가 무엇인지 알지 못한다. 나는 나의 컴 파트먼트를 사용할 수 없다고 생각하고있다? –

관련 문제