2012-05-03 5 views
1

CDO를 사용하여 전자 메일을 보내려고합니다. 특정 사용자, 패스 및 보낸 특정 smtp 서버에서 항상 보내도록 설정을 변경하고 싶습니다. 그러나 구성을 변경하려고하면 데이터가 읽기 전용이라는 오류가 발생합니다. 메시지 구성을 변경하는 방법에 대해 어떻게 생각하십니까?CDO 전자 메일 구성

Message msg = new Message(); 
      IConfiguration config = msg.Configuration; 
      config.Fields["smtpserver"] = "SERVER"; 
      msg.Subject = "TEST"; 
      msg.From = "[email protected]"; 
      msg.To = "[email protected]"; 
      msg.TextBody = "TESTING"; 
      msg.Send(); 

은 내가 System.Net.Mail를 사용하여 시도했지만, 그 방화벽 차단 될 것으로 보인다. 나는

MailMessage msg = new MailMessage(); 
      msg.Subject = "TESTING"; 
      msg.From = new MailAddress("[email protected]"); 
      msg.To.Add(new System.Net.Mail.MailAddress("[email protected]")); 
      msg.Body = "dubbly doo"; 

      SmtpClient client = new SmtpClient(); 
      client.Host = "HOST"; 
      client.Port = 67; 
      client.EnableSsl = true; 
      client.Credentials = new NetworkCredential("USERNAME", "PASSWORD", "DOMAIN"); 
      client.DeliveryMethod = SmtpDeliveryMethod.Network; 
      try 
      { 
       client.Send(msg); 
      } 
      catch(SmtpException e) 
      { 
       Console.Write(e.InnerException.Message+":"+e.InnerException.InnerException.Message); 
       Console.ReadLine(); 
      } 
+0

방화벽에서 차단 된 경우 둘 다 차단됩니다. CDO가 차단되지 않으면'.Mail'도 차단되어서는 안됩니다. 아마도 잘못 구성되었거나 SMPT 서비스가 로컬에 설치되지 않았을 수 있습니다. –

+0

@JeelEtherton CDO는 작동하지만 구성을 변경할 수 없습니다. SMTP를 사용하여 << 원격 서버에 연결할 수 없습니다 : 대상 컴퓨터가 적극적으로 거부했습니다 (IP) : 67 >> – steventnorris

답변

1

Unable to connect to the remote server : No connection could be made because the target machine actively refused it {IP}:67이 CDO에게 요구 사항을 사용하는 예외 메시지가? 이미 C#을 사용하고 있으므로 CDO 코드를 System.Net.Mail으로 이식하는 것이 좋습니다.

http://msdn.microsoft.com/en-us/library/dk1fb84h.aspx

편집 :이 코멘트에 소리 때문에 당신이 System.Net.Mail와 구성에 문제가있는 것처럼

, 당신이 단계별로 연결을 모니터링 시스 인 터널 도구 (특히 TcpView)의 일부를 사용합니다 CDO 코드. 그렇게하면 코드가 연결에 사용하는 IP와 포트를 볼 수 있습니다.

그 정보로 무장 한 다음 올바른 설정으로 System.Net.Mail 코드를 구성 할 수 있어야합니다.

+1

cdo? more cdon't amirite – Snuffleupagus

+0

실제로 System.Net.Mail을 사용하고 싶지만 방화벽이 차단하고있는 것으로 보입니다. 그러나 CDO가 차단 된 것 같지 않습니다. CDO의 직접적인 Exchange 사용이 허용되는 것으로 가정합니다. 어쩌면 내 SMTP 설정이 꺼져있을 수도 있습니다. 위의 내용도 게시했습니다. – steventnorris

+0

포트 67을 사용하는 이유가 있습니까? SMTP 표준은 25입니다. 어떤 경우에도 방화벽은 IP/포트 조합 만 차단합니다. CDO가 작동하고 System.Net.Mail이 잘못된 구성이 아닌 다른 이유를 생각할 수 없습니다. – mgnoonan

관련 문제