2016-05-21 1 views
0

私はそれが正常に動作した電子メールを送信するVBScriptファイルを持っているでは動作しませんが、私は同じCDOの設定でC#プログラム(.NET 4.5)を作成したとき、私はCDOは、VBScriptで動作しますが、C#

を得ました

トランスポートはサーバーに接続できませんでした。

私の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(); 
+0

C#コードではCDOを使用していません。 –

+0

説明してください。 – Alex

答えて

0

C#でCDOを使用しないでください。メッセージの作成にはMailMessageクラスを使用し、メッセージの送信にはSmtpClientクラスを使用します。

MailMessage message = new MailMessage(Sender, Receivers, Subj, Body); 

SmtpClient client = new SmtpClient(ServerName); 

try { 
    client.Send(message); 
} catch (Exception ex) { 
    Console.WriteLine("Cannot send message."); 
} 
+0

申し訳ありませんが、CDOの何が問題ですか?私たちはVBA/VBS/VB6の年齢にそれを使用しました。 – Alex

+0

2つのコードスニペットを比較するとわかりませんか? –

+0

Afriad - いいえ CDOは現在推奨されているメーリング方法 – Alex

関連する問題