ASP Web Based Email Using Microsoft's CDONTS

Started by sukishan, Aug 20, 2009, 02:46 PM

Previous topic - Next topic


If you are reading this page then I shall assume that you already know a little bit about ASP and running ASP applications.

The download to this tutorial has 4 working examples of Web Wiz Email Form's (CDONTS) which you can use to allow your web site visitors to send their comments or enquiries to your e-mail address or send e-mails to their own friends form your site.

However, I not going to go into how the form is written as it uses standard HTML and JavaScript to capture the users details. Instead I'm going to concentrate on the actual methods and properties the CDONTS NewMail object uses to format and then send the email.

CDONTS stands for 'Collaboration Data Objects for Windows NT Server' and as the name suggest it is for NT, sorry Win9x users you don't have this component. The CDONTS component is installed when you install IIS on NT4 and Windows 2000. Although the component will run on Windows XP, Microsoft have decided to remove the component from IIS 5.1 on Windows XP, so you will have to track down a copy of the cdonts.dll and register it on the IIS web server.

To use this component to send e-mail you also need the SMTP Server that ships with IIS 4 or 5 installed on the web server. The SMTP server is usually installed by default with the standard IIS installation.

First we need to create the variables that we are going to be using in this script.

'Dimension variables
Dim objCDOMail      'Holds the CDONTS NewMail Object 

Next we need to create an instance of the 'CDONTS NewMail' object on the server.

'Create the e-mail server object
Set objCDOMail = Server.CreateObject("CDONTS.NewMail") 

Once the 'NewMail' object has been created on the server we can use various properties and methods of the 'NewMail' object to build the e-mail.

First we are going to use the 'From' property to let the recipient of the e-mail know who the e-mail is from. If you leave this property out or do not have a properly format e-mail address the e-mail will fail.

'Who the e-mail is from
objCDOMail.From = "" 

Now we need to place a string value representing the e-mail address of the person you want to receive the e-mail into the 'To' property of the 'NewMail' object.

'Who the e-mail is sent to
objCDOMail.To = "" 

The next property 'Cc' holds the e-mail address of the people you wish to receive Carbon Copies of the e-mail.

You can place one or more recipient e-mail addresses separated by either a comma (,) or a semicolon (;). Make sure all the e-mail address are properly formatted or the e-mail will fail.

This property can be left out if you don't want any carbon copies of the e-mail sent.

'Who the carbon copies are sent to
objCDOMail.Cc = ";" 

The 'Bcc' property holds the e-mail address of the people you wish to receive Blind Copies of the e-mail. The formatting of the e-mail addresses is the same as for the 'Cc' property above.

Again if you don't want to send any blind copies of the message you can leave this property out.

'Who the blind copies are sent to
objCDOMail.Bcc = ";" 

In the next line we use the 'Subject' property to set the subject of the e-mail.

'Set the subject of the e-mail
objCDOMail.Subject = "Enquiry sent from my web site" 

As well as sending plain text e-mail's you can also format the body of the e-mail using HTML. The default is Text but if you wish to format the e-mail using HTML then you will need to use the 'BodyFormat' property with the integer value of '0' for HTML or '1' for Text.

If you leave this property out the e-mail will be sent as plain text format.

'Set the e-mail body format (0=HTML 1=Text)
objCDOMail.BodyFormat = 0 

If you wish to use HTML formatting in the e-mail, as well as setting the 'BodyFormat' property above to HTML, you will also need to set the 'MailFormat' property to MIME. Again this property uses and integer value of '0' for MIME and '1' for Text.

The default is text so if your e-mail is text only you can leave this property out.

'Set the mail format (0=MIME 1=Text)
objCDOMail.MailFormat = 0 

The next property were covering is the 'Body' property. This property holds the main part of the e-mail with the message you are sending.

If you have set the 'BodyFormat' property to HTML and the 'MailFormat' to MIME then you can use HTML to format your e-mail message. 'eg. <h2>Hello</h2>
This is my e-mail in HTML format'.

If you want to send the e-mail as text then you can just enter text instead. 'eg. Hello This is my e-mail in Text format'.

'Set the main body of the e-mail
objCDOMail.Body = "<h2>Hello</h2>
This is my e-mail in HTML format

The 'Importance' property tells the mail messaging system when to schedule delivery of the e-mail.

For this property there is 3 different integer values, 0 - Low, the e-mail will be sent during times of low system use, 1 - Normal, the message is sent at regular delivery times, 2 - High, the system will attempt to send the message immediately.

If this property is left out the default is Normal.

'Importance of the e-mail (0=Low, 1=Normal, 2=High)
objCDOMail.Importance = 1   

Once all the properties for the e-mail are set we can now send the e-mail using the 'Send' property.

'Send the e-mail

Finally once the e-mail has been sent we can close the server object releasing server resources.

'Close the server object
Set objCDOMail = Nothing

There are other methods and properties of the 'NewMail CDONTS' object but to keep things simple I have tried to cover the most common properties needed to send an e-mail from your web site.
A good beginning makes a good ending