TBH IDK how it works  :D  It just does for me...Here is the source code in VBScript that I used:
code:
Dim iMsg
Set iMsg = CreateObject("CDO.Message")
Dim iConf 
Set iConf = CreateObject("CDO.Configuration")Dim Flds
Set Flds = iConf.Fields
With Flds
  ' assume constants are defined within script file
  .Item(cdoSendUsingMethod)       = 2 ' cdoSendUsingPort
  .Item(cdoSMTPServerName)        = "somehost@microsoftc.om"
  .Item(cdoSMTPConnectionTimeout) = 10 ' quick timeout
  .Item(cdoSMTPAuthenticate)      = cdoBasic
  .Item(cdoSendUserName)          = "username"
  .Item(cdoSendPassword)          = "password"
  .Item(cdoURLProxyServer)        = "server:80"
  .Item(cdoURLProxyBypass)        = "<local>"
  .Item(cdoURLGetLatestVersion)   = True
  .Update
End With
With iMsg
  Set .Configuration = iConf
      .To       = """User A"" <userA@microsoft.com>"
      .From     = """User B"" <userB@microsoft.com>"
      .Subject  = "Hows it going? I've attached my web page"
      .CreateMHTMLBody "http://mypage"
      .AddAttachment "C:\files\mybook.doc"
      .Send
End With
Now, that needed some tweaking and I couldn't get the ITEM() bits to work.
Here are the first two failed versions:
sendmail.k2k
code:
break on
cls; send email with COM
Dim $iMsg 
Dim $iConf 
Dim $Flds 
Dim $strHTML
Dim $strSmartHost
$cdoSendUsingPort = 2
$StrSmartHost = "smarthost"
$iMsg = CreateObject("CDO.Message")
@error ?
$iConf = CreateObject("CDO.Configuration")
@error ?
$Flds = $iConf.Fields
@error ?
; set the CDOSYS configuration fields to use port 25 on the SMTP server
$Flds.Item("sendusing")=2;=$cdoSendUsingPort
@error ?
; http://schemas.microsoft.com/cdo/configuration/ 
$Flds.Item("smtpserver")="smtp.ipass.ozemail.com.au" ;);=$strSmartHost
@error ?
$Flds.Item("smtpconnectiontimeout=10");=10
@error ?
$Flds.Update()
@error ?
; build HTML for message body
$strHTML = "<HTML>"
; apply the settings to the message
$iMsg.Configuration = $iConf
@error ?
$iMsg.To = "chrismat@ozemail.com.au" 
@error ?
$iMsg.From = "chrismat@ozemail.com"
@error ?
$iMsg.Subject = "This is a test CDOSYS message (Sent via Port 25)"
@error ?
$iMsg.Body = $strHTML
@error ?
$iMsg.Send()
@error ?
; cleanup of variables
$iMsg = ""
$iConf = ""
$Flds = ""
Sendmail2.k2k
code:
break on
?; send email with COM
;Sending a Message via CDO
;Reference the project with CDO for Exchage 2000 and ADO 2.5 libraries
     
;Sending Mail Message Using Exchange Server
Dim $oMessage
;Create a Message Object
$oMessage = CreateObject("CDO.Message")
vartypename($oMessage) ?
;Set the properties
$oMessage.To = "chrismat@ozemail.com.au"
$oMessage.From = "chrismat@ozemail.com"
$oMessage.TextBody = "This is a sample Body"
$oMessage.Subject = "This is a sample Subject"
;$oMessage.Configuration.Fields("CdoSendUsing") = 3
;$oMessage.Configuration.Fields.Update()
;$oMessage.AddAttachment ("c:\file1.txt")
;$oMessage.CreateMHTMLBody "http://www.microsoft.com"
$oMessage.Send()
@error ?
?
Normally, you would set the server and login information in the CDO.Configuration object, but when I tried every combination of 
$Flds.Item("sendusing") I couldn't make it work.  Often I would get an error 100 (Cannot create another system semaphore.) too.  I tried:
$Flds.Item("sendusing")=2
$Flds.Item("sendusing", 2)
$Flds.Item.sendusing=2
$Flds.Item.sendusing()=2
and others that I have not kept.
BTW 2 is SMTP and 3 is Exchange (i think).  Have a look at that MSDN link and follow it down to the Messenging section.  I suspect that one of the above lines worked and I ended up setting the parameters and they were remembered.
I only tried this for the novelty and didn't delve too deeply into the workings :}
HTH
cj
[This message has been edited by cj (edited 26 June 2001).]