2011-09-12 2 views
0

Windows 서비스에서 전자 메일을 보내는 동안 위의 오류가 발생합니다. 귀하의 제안은 대단히 감사하겠습니다.IIS 픽업 디렉터리를 가져올 수 없습니다. (Windows 서비스에서)

SmtpClient smtpClient = new SmtpClient(); 
MailMessage mailMsg = this.ComposeMailMessage(); 
smtpClient.Send(mailMsg); 

구성

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]" deliveryMethod="Network"> 
      <network host="smtpsvr.mycompany.com" port="25" defaultCredentials="true" /> 
     </smtp> 
    </mailSettings> 
</system.net> 
+0

기회처럼 될 것입니다, 픽업 디렉토리의 이름을 저장하는 IIS 메타베이스에 액세스 할 수 없습니다 귀하의 웹 사이트를 운영하고, 이것이입니다 과정 오류의 일반적인 원인. – bzlm

답변

0

아마 내 당신이 검색하는 대답은 아니지만,이 (피 IIS)를 시도 :

try 
{ 
    // To 
    MailMessage mailMsg = new MailMessage(); 
    mailMsg.To.Add(to_Address); 

    // From 
    MailAddress mailAddress = new MailAddress(from_address); 
    mailMsg.From = mailAddress; 

    // Subject and Body 
    mailMsg.Subject = subject; 
    mailMsg.Body = body; 

    // Init SmtpClient and send 
    SmtpClient smtpClient = new SmtpClient(smtp_server, port); 
    // System.Net.NetworkCredential credentials = 
    // new System.Net.NetworkCredential(smtp_user, smtp_pwd); 
    // smtpClient.Credentials = credentials; 

    smtpClient.Send(mailMsg); 
} 
catch (Exception ex) 
{ 
    Console.WriteLine(ex.Message); 
} 
+0

답장을 보내 주셔서 감사합니다.하지만 Windows 서비스의 코드는 다른 당사자가 관리하며 다른 환경에서는 정상적으로 작동합니다. –

0

을 당신은 아마려면 SmtpClient를 설정해야 수동으로 PickupDirectory.

Cannot get IIS pickup directory

+0

사실 SMTP 서버가 별도의 서버이기 때문에 deliverMethod로 "네트워크"를 사용하고 싶습니다. –

0

이 프로그램에 다음 행을 추가하십시오 :

는 루카스 Pokorny의 대답에 그 작업을 수행하는 방법의 예입니다. 이 줄에는 바탕 화면에서 IIS Admin 및 SMTP 서비스가 실행 중이어야합니다.

smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis; 

그래서이

SmtpClient smtpClient = new SmtpClient(); 
MailMessage mailMsg = this.ComposeMailMessage(); 
smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis; 
smtpClient.Send(mailMsg); 
관련 문제