2012-03-27 4 views
0

안녕하세요 이것은 IIS에서 전자 메일을 보내는 코드 조각이지만이 오류가 있습니다.
'deliveryMethod'속성 값을 구문 분석 할 수 없습니다. 이 내 코드입니다 SmtpDeliveryMethodTypeConverter은 선택 System.StringSMTP deliveryMethod

에서 변환 할 수 없습니다 : 오류는

MailMessage message = new MailMessage ("[email protected]", "[email protected]"); 
message.BodyEncoding = System.Text.Encoding.UTF8; 
message.SubjectEncoding = System.Text.Encoding.UTF8; 
message.Subject = "testing of mailing list"; 
message.Body = "hi hadi .this email is just for test."; 
message.IsBodyHtml = true; 

SmtpClient smtpClient = new SmtpClient("127.0.0.1"); 
smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis; 
smtpClient.Send(message); 

이 내 Web.config의이다 :

<system.net > 
    <mailSettings > 
     <smtp deliveryMethod="PickupDirectoryFromIis " > 
     <network host ="localhost" port ="25" defaultCredentials ="true "/> 
     </smtp> 
    </mailSettings> 
    </system.net> 

+2

여기에서 다루려고하는 문제를 반영하여 제목을 변경하십시오. – Kiril

답변

5

가있다 도와주세요 deliveryMethod="PickupDirectoryFromIis 뒤에 공백이 있으면 제거해야 할 수 있습니다.

+3

같은 "사실"적용 ... –

+0

나는 그것을 수정하고 "IIS 픽업 디렉터리를 가져올 수 없습니다."이 오류가 발생했습니다. –

+0

@ user1292316'PickupDirectoryLocation'을 설정하는 것을 잊었습니다 – Diamondo25

0

응용 프로그램에 이미 PickupDirectoryFromIis이 하드 코드 된 것을 감안할 때 구성 파일에서 제거하고 모든 것이 잘 될 것으로 생각됩니다. Diamondo25가 지적한 불량 공백은 근본 원인 일 수 있지만 어쨌든 명료하게하기 위해 한 곳에서 구성해야합니다. 따라서 web.config에서이 설정을 제거하지만 자격 증명에 대해 "true"에서 공백을 제거하십시오.

+0

sry ... 너무 빠릅니다 ... 당신 무의미한 config-entry (그리고 한 곳에서의 구성 뒤에있는 주요 이점 및/또는 아이디어)를 지적 할 때 너무 옳습니다. -하지만, 완전성을 위해 : 여기에서 실제 문제는 속성 값의 후행 공백입니다. 'deliveryMethod' –

+0

@AndreasNiedermair : 편집 중이 었습니다 - 예, 공간이 문제 였지만 왜 처음부터 두 번 포함시켜야합니까? 두 가치가 서로 다른 경우 혼란을 겪을 것입니다. –

+0

내 cmt를 잘 편집하고있었습니다 ... –

0

IIS를 실행하는 컴퓨터의 SMTP가 제대로 구성되지 않았거나 전혀 실행되지 않는다고 생각합니다. Inetpub 하위 폴더 중 하나에서 보낸 전자 메일을 볼 수 있습니다.

이드는 PickupDirectoryFromIis를 설정 했으므로 로컬 SMTP 서버가 이러한 SMTP를 가져 와서 다른 SMTP로 릴레이 함을 의미합니다.