2012-05-03 14 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

@JoelEtherton CDOは動作しますが、設定を変更することはできません。 SMTPを使用した場合、<<リモートサーバに接続できません:ターゲットマシンが積極的にそれを拒否したため、接続できませんでした "という例外メッセージが表示されます: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と構成の問題を抱えているように、それはコメントで聞こえるので、あなたはをステップとして、私はあなたの接続を監視するためのSysinternalsのツール(特にTcpView)の一部を使用しますCDOコード。こうすることで、コードがどのIPとポートを使用して接続しているかを確認できます。

この情報で武装すれば、正しい設定でSystem.Net.Mailコードを設定できるはずです。

+1

cdo?もっとcdon't amiriteのように – Snuffleupagus

+0

私は実際にSystem.Net.Mailを使いたいが、ファイアウォールはそれをブロックしているようだ。ただし、CDOはブロックされていないようです。私はCDOの直接的なExchangeの使用が許可されていると仮定しています。たぶん私のSMTPの設定はちょうどオフです。私は今も上記のものを投稿しました。 – steventnorris

+0

ポート67を使用している理由はありますか? SMTPの標準は25です。いずれの場合でも、ファイアウォールはIP /ポートの組み合わせのみをブロックします。私は、CDOが動作し、System.Net.Mailが正しくない構成以外の理由を考えることができません。 – mgnoonan

関連する問題