You don't need to fiddle with those godawful schema strings as shown above. Just set a reference to the proper library (since you really want early binding anyway) and you have proper named constants for all of them at your fingertips.
In VB you can use the bang (!) syntax to shorten the typing even a hair more.
Instead of the clunky:
You can simply write:
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "firstname.lastname@example.org"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "yourpasswordhere"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
.Item("http://schemas.microsoft.com/cdo/configuration/connectiontimeout") = 100
!cdoSMTPUseSSL = True
!cdoSMTPAuthenticate = cdoBasic
!cdoSendUserName = "email@example.com"
!cdoSendPassword = "yourpasswordhere"
!cdoSMTPServer = "smtp.gmail.com"
!cdoSendUsingMethod = cdoSendUsingPort
!cdoSMTPServerPort = 465
!cdoSMTPConnectionTimeout = 100
If the code is to be VBScript, it's a question of your script host. For WSH you can write the script as a .WSF instead of a naked .VBS file, which also allows you to specify a reference to the CDO library and get those handy named constants. For ASP you can put the reference in global.asa to gain the same thing. Of course you're still stuck with late binding.
Since you have no bang operator though, you'll need to spell out the full .Item(x) syntax, using the constants for x as appropriate:
.Item(cdoSMTPUseSSL) = True
.Item(cdoSMTPAuthenticate) = cdoBasic
.Item(cdoSendUserName) = "firstname.lastname@example.org"
.Item(cdoSendPassword) = "yourpasswordhere"
.Item(cdoSMTPServer) = "smtp.gmail.com"
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServerPort) = 465
.Item(cdoSMTPConnectionTimeout) = 100
Maybe the funniest thing is the idea that .Net can do this! The equivalent in the .Net Framework namespaces is a COM-interop wrapper over exactly this same CDO for Windows library. Hah.