【发布时间】:2017-05-04 21:13:54
【问题描述】:
我有一个 VBScript 文件来发送电子邮件它工作正常,但是当我创建一个具有相同 CDO 设置的 C# 程序 (.Net 4.5) 时
传输无法连接到服务器。
请检查我的 C# 有什么问题。
VBScript:
Dim objMessage
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = Subj
objMessage.From = Sender
objMessage.To = Receivers
objMessage.TextBody = Body
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = ServerName
objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 2
objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = ""
objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = ""
objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
objMessage.Configuration.Fields.Update
objMessage.Send
C#:
using System.Net.Mail;
...
CDO.Message objMessage = new CDO.Message();
objMessage.Subject = Subj;
objMessage.From = Sender;
objMessage.To = Receivers;
objMessage.TextBody = Body;
ADODB.Field FieldSMTPSendUsing = objMessage.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/sendusing"];
FieldSMTPSendUsing.Value = 2;
ADODB.Field FieldSMTPServer = objMessage.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/smtpserver"];
FieldSMTPServer.Value = ServerName;
ADODB.Field FieldSMTPServerPort = objMessage.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/smtpserverport"];
FieldSMTPServerPort.Value = 25;
ADODB.Field FieldSMTPconnectiontimeout = objMessage.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"];
FieldSMTPconnectiontimeout.Value = 60 ;
ADODB.Field FieldSMTPauthenticate = objMessage.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"];
FieldSMTPauthenticate.Value = 2;
ADODB.Field FieldSMTPsendusername = objMessage.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/sendusername"];
FieldSMTPsendusername.Value = "";
ADODB.Field FieldSMTPsendpassword = objMessage.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"];
FieldSMTPsendpassword.Value = "";
ADODB.Field FieldSMTPusessl = objMessage.Configuration.Fields["http://schemas.microsoft.com/cdo/configuration/smtpusessl"];
FieldSMTPusessl.Value = false;
objMessage.Configuration.Fields.Update();
objMessage.Send();
【问题讨论】:
-
您没有在 C# 代码中使用 CDO。
-
你能解释一下吗?