1

CDO を使用して電子メールを送信しようとしています。特定のユーザー、パス、および送信者を使用して、特定の smtp サーバーから常に送信するように設定を変更したいと考えています。ただし、構成を変更しようとすると、データが読み取り専用であるというエラーが表示されます。メッセージの構成を変更するにはどうすればよいですか?

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

を使用してみましSystem.Net.Mailたが、ファイアウォールでブロックされているようです。例外メッセージが表示されますUnable to connect to the remote server : No connection could be made because the target machine actively refused it {IP}:67

MailMessage msg = new MailMessage();
            msg.Subject = "TESTING";
            msg.From = new MailAddress("MYMAIL@MYMAIL.org");
            msg.To.Add(new System.Net.Mail.MailAddress("TOMAIL@TOMAIL.org"));
            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();
            }
4

1 に答える 1

1

CDO の使用は必須ですか? あなたはすでに C# を使用しているので、CDO コードを に移植することをお勧めしますSystem.Net.Mail

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

編集:

で構成の問題が発生しているようにコメントに聞こえるので、CDO コードをステップ実行するときSystem.Net.Mailに、いくつかの SysInternals ツール (特にTcpView ) を使用して接続を監視します。そうすれば、コードが接続に使用している IP とポートを確認できます。

System.Net.Mail次に、その情報を利用して、正しい設定でコードを構成できるはずです。

于 2012-05-03T14:43:25.230 に答える