2010-05-24 2 views
1

Windows 서비스에서 메일을 보내려고하면 "Failure sending mail"메시지가 표시됩니다.Windows 서비스 (Windows Forms 응용 프로그램에서 작동)를 통해 전자 메일을 보낼 때 "Failure sending mail"오류가 발생합니다.

동일한 코드가 Windows 양식 응용 프로그램에서 작동합니다.

Windows 서비스가 로컬 시스템 계정으로 실행되고 있습니까?

이 문제를 해결할 수 있도록 도와주세요.

SmtpClient smtp = new SmtpClient("XXXX", 25); 
MailAddress from = new MailAddress("[email protected]","DRMUpdater"); 
MailAddress to = new MailAddress("[email protected]","DRM"); 
MailMessage email = new MailMessage(from, to); 
email.Subject = "DRMShell Updation Failed for user: " + userName; 
email.Body = String.Empty; 
smtp.Send(email); 
+0

코드를 게시하거나 – mxmissile

+0

오류 메시지를 작성하려면 smtp에 TLS 인증이 필요합니까? –

답변

0

그것은 당신의 SMTP 서버에 인증이 필요하다고 가능 : 여기

이메일을 보내는 코드? 그리고 귀하의 일반 계정에서는 정상이지만, Local System 인증에 실패합니다.

계정에서 서비스가 실행되도록 설정하거나 연결 중에 특정 자격 증명을 지정하여이 방법을 시도해 볼 수 있습니다. UseDefaultCredentials 속성을 false으로 설정하고 Credentials 속성에 새 NetworkCredential을 생성하여 자격 증명을 변경할 수 있습니다.

+0

안녕하세요 mxmissile, 메일을 보내려는 코드를 찾으십시오. SmtpClient smtp = new SmtpClient ("XXXX", 25); MailAddress from = 새 MailAddress ("[email protected]", "DRMUpdater"); MailAddress = 새 MailAddress ("[email protected]", "DRM"); MailMessage email = 새 MailMessage (보낸 사람, 보내는 사람); email.Subject = "DRMShell 업데이트 실패 :"+ userName; email.Body = String.Empty; smtp.Send (email); . – user348725

+0

안녕하십니까, Windows 서비스가 관리자 관련 활동을 수행하고 있습니다. 서비스 계정을 변경할 수 있습니다. 하지만 테스트 용 계정이 변경됩니다. 하지만 런타임에 계정을 변경할 수 있습니까? – user348725

+0

정확히 무엇을 의미하는지 모르지만 위에서 언급 한대로'SmtpClient.Credentials' 속성을 사용하면 런타임에 원하는 자격 증명을 제공 할 수 있어야합니다. 그렇지 않으면 새 계정을 만들고 해당 계정에 대한 관리자 권한을 부여하고 이메일을 보낼 권한이 있는지 확인하십시오. –

관련 문제