Recently I was working with a customer (at his Windows XP) where his CDO app (CDOSEND.vbs – given below) is failing to send email and throws the error “CDO_E_FAILED_TO_CONNECT” (you can refer the below given Output also). We tried setting CONFIG parameters like user name, SLL, password – but it doesn’t help.

Code Snippet:

Option explicit
 
Dim iMsg
Dim iConf
Dim Flds
Dim strHTML
Dim strSmartHost
Dim strFrom
Dim strTo
 
Const cdoSendUsingPort = 2
 
If wscript.arguments.count <> 3 Then
   wscript.echo "Arguments must be: <smtp server> <sender address> <recipient address>"
Else
 
 strSmartHost = trim(wscript.arguments(0))
 strFrom = trim(wscript.arguments(1))
 strTo = trim(wscript.arguments(2))
 
 set iMsg = CreateObject("CDO.Message")
 set iConf = CreateObject("CDO.Configuration")
 
 Set Flds = iConf.Fields
 
 ' set the CDOSYS configuration fields to use port 25 on the SMTP server
 
 With Flds
 .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
 .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmartHost
 .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
 .Update
 End With
 
 ' build HTML for message body
 strHTML = "<HTML><BODY>" &_
 "<b>This is the test HTML message body</b></br>" &_
 "</BODY></HTML>"
 
 ' apply the settings to the message
 With iMsg
 Set .Configuration = iConf
 .To = strTo
 .From = StrFrom
 .Subject = "This is a test CDO message (Sent via Port 25)"
 .HTMLBody = strHTML
 .Send
 End With
 
 ' cleanup of variables
 Set iMsg = Nothing
 Set iConf = Nothing
 Set Flds = Nothing
 
End If

Output:

   1: CDO.Message.1 error '80040213'
   2:  
   3: The transport failed to connect to the server.
They were sending the mail using Port 25 and we made sure it’s not blocked by any AV solution. We tested sending mail using TELNET without any issues and collected NetMon logs for further analysis.
When we investigated further, we noticed that the specific machine had Outlook Express installed and a specific account profile was configured for it. We just deleted the profile entry from it.

Now we tried the above CDO app, it worked like a charm. Happy debugging!!