Previous Topic

Next Topic

Book Contents

Book Index

Home Page

Sending E-Mail with Microsoft CDO

With Windows 2000, Microsoft introduced Collaborative Data Object (CDO). The Microsoft CDO API allows sending e-mail using SMTP servers and with very little resource/memory overhead.

The sample code below shows how it's done - this code is intended for the more advanced programmer and is only a starting point. Be sure to modify all of the SMTP servers, passwords, and e-mail addresses to fit your system.

More information can be found in MSDN's CDO documentation: http://msdn.microsoft.com/library/en-us/cdosys/html/_cdosys_messaging.asp

'Sending a text email using authentication against a remote SMTP server
' Sample code submitted by Clint Baldwin, +1 (918) 671 3429
Const cdoSendUsingPickup = 1
Const cdoSendUsingPort = 2
Const cdoAnonymous = 0
' Use basic (clear-text) authentication.
Const cdoBasic = 1
' Use NTLM authentication
Const cdoNTLM = 2 'NTLM

' Create the message object.
Set objMessage = CreateObject("CDO.Message")
'Set the from address this would be your email address.
objMessage.From = """Your Name""<Youremail@YourDomain.com>"
' Set the TO Address separate multiple address with a comma
objMessage.To = "SomeEmail@YourDomain.com"
' Set the Subject.
objMessage.Subject = "An Email From Active Call Center."
' Now for the Message Options Part.

' Use standared text for the body.
objMessage.TextBody = _
"This is some sample message text.." & _
vbCRLF & _
"It was sent using SMTP authentication."

' Or you could use HTML as:

' objMessage.HTMLBody = strHTML

' ATTACHMENT : Add an attachment Can be any valid url
objMessage.AddAttachment("file://C:\Program Files\Active Call Center\Examples\Goodbye.wav")

' This section provides the configuration information for the SMTP server.
' Specifie the method used to send messages.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = _
cdoSendUsingPort

' The name (DNS) or IP address of the machine
' hosting the SMTP service through which
' messages are to be sent.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"smtp.YourServer.com" ' Or "mail.server.com"

' Specify the authentication mechanism
' to use.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = _
cdoBasic

' The username for authenticating to an SMTP server using basic (clear-text) authentication
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = _
"YourLogin@YourDomain.com"

' The password used to authenticate
' to an SMTP server using authentication
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = _
"Password"

' The port on which the SMTP service
' specified by the smtpserver field is
' listening for connections (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = _
25

'Use SSL for the connection (False or True)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = _
False

' Set the number of seconds to wait for a valid socket to be established with the SMTP service before timing out.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = _
60

' Update configuration
objMessage.Configuration.Fields.Update

' Use to show the message.
' MsgBox objMessage.GetStream.ReadText

' Send the message.
objMessage.Send

See Also

How to Send E-Mail from a Macro

Sending E-Mail with a COM Compliant Client

Reading E-Mail from a COM Compliant Client

Sending E-Mail from a Simple Mail Client