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 3429Const 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 commaobjMessage.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 urlobjMessage.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) authenticationobjMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = _
"YourLogin@YourDomain.com"' The password used to authenticate
' to an SMTP server using authenticationobjMessage.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 configurationobjMessage.Configuration.Fields.Update' Use to show the message.
' MsgBox objMessage.GetStream.ReadText' Send the message.objMessage.Send