C# CDO电子邮件配置

C# CDO电子邮件配置,c#,email,configuration,cdo.message,C#,Email,Configuration,Cdo.message,我正在尝试使用CDO发送电子邮件。我想将设置更改为始终从具有特定用户、密码和发件人的特定smtp服务器发送。然而,当我试图更改配置时,我得到一个错误,即数据是只读的。如何更改消息的配置 Message msg = new Message(); IConfiguration config = msg.Configuration; config.Fields["smtpserver"] = "SERVER"; msg.Subje

我正在尝试使用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
,但这似乎被防火墙阻止了。我收到异常消息
无法连接到远程服务器:无法建立连接,因为目标计算机主动拒绝它{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();
            }

使用CDO是一项要求吗?您已经在使用C#,因此我建议将CDO代码移植到
System.Net.Mail

编辑:

由于在注释中听起来像是您在
System.Net.Mail
中遇到了配置问题,因此我将使用一些SysInternals工具(特别是)在您逐步执行CDO代码时监视您的连接。这样,您就可以看到代码用于连接的IP和端口


然后,有了这些信息,您应该能够使用正确的设置配置您的
System.Net.Mail
代码。

是否需要使用CDO?您已经在使用C#,因此我建议将CDO代码移植到
System.Net.Mail

编辑:

由于在注释中听起来像是您在
System.Net.Mail
中遇到了配置问题,因此我将使用一些SysInternals工具(特别是)在您逐步执行CDO代码时监视您的连接。这样,您就可以看到代码用于连接的IP和端口


然后,有了这些信息,您应该能够用正确的设置配置您的
System.Net.Mail
代码。

cdo?更像是cdon,我更喜欢使用System.Net.Mail,但防火墙似乎阻止了它。然而,CDO似乎没有被阻止。我假设CDO的直接交换使用是允许的。也许我的SMTP设置刚刚关闭。我现在也发布了上面的内容。您使用端口67有什么原因吗?SMTP的标准是25。在任何情况下,防火墙仅阻止IP/端口组合。除了配置不正确之外,我想不出CDO工作而System.Net.Mail不工作的原因。@mgnoonan我也尝试过端口25,但遇到了同样的问题。67被列为msdn上CDO.I配置的默认端口,所以我尝试了一下。为了澄清,我在上面添加了具体的例外情况。我不是100%确定我为什么会得到它,但这似乎是一个防火墙问题。cdo?更像是cdon,我更喜欢使用System.Net.Mail,但防火墙似乎阻止了它。然而,CDO似乎没有被阻止。我假设CDO的直接交换使用是允许的。也许我的SMTP设置刚刚关闭。我现在也发布了上面的内容。您使用端口67有什么原因吗?SMTP的标准是25。在任何情况下,防火墙仅阻止IP/端口组合。除了配置不正确之外,我想不出CDO工作而System.Net.Mail不工作的原因。@mgnoonan我也尝试过端口25,但遇到了同样的问题。67被列为msdn上CDO.I配置的默认端口,所以我尝试了一下。为了澄清,我在上面添加了具体的例外情况。我不能100%确定我为什么会得到它,但这似乎是一个防火墙问题。如果一个被防火墙阻止,两个都会被阻止。如果CDO未被阻止,则
.Mail
也不应被阻止。可能是配置错误,或者SMPT服务未在本地安装。@JoelEtherton CDO可以工作,但我无法更改配置。使用SMTP,我会收到一条异常消息,如果其中一条在防火墙上被阻止,则两条消息都将被阻止。如果CDO未被阻止,则
.Mail
也不应被阻止。可能是配置错误,或者SMPT服务未在本地安装。@JoelEtherton CDO可以工作,但我无法更改配置。使用SMTP,我会收到异常消息