Sending Email
You can send an email in an Active Server Pages (ASP) script by using a built-in mailing object named CDONTS.NEWMAIL. Fortunately for you, this object does all the dirty work of properly formatting your messages and communicating with Internet mail servers. To send an email, you simply set the appropriate parameters for this object and invoke its SEND method. The general steps to sending an email in an ASP script are as follows:
- Create the mailing object.
- Set the delivery parameters.
- Set the message parameters.
- Send the message.
- Delete the mailing object.
Let's examine the details of each step.
Step 1: Creating the Mailing Object
You create the mailing object the same way you create the database object we've used in my earlier articles. Use the CreateObject() method in the server object, passing the name of the mailing objectCDONTS.NEWMAILas a string parameter (see Listing 1).
Listing 1 - Creating the Mailing Object
<% set mail=server.CreateObject("CDONTS.NEWMAIL") %>
The value that the CreateObject() method returns is assigned to a variable named mail.
Step 2: Setting the Delivery Parameters
You need to let the mailing object know the email address of your intended recipient as well as your own email address, which you can do by setting the values of the mailing object's .to and .from parameters, respectively. Both parameters expect a string value representing a fully-qualified email address. So, for example, if fred@flintstone.com wanted to send an email to barney@rubble.com, you would set the delivery parameters as shown in Listing 2.
Listing 2 - Setting the Delivery Parameters
<% set mail=server.CreateObject("CDONTS.NEWMAIL") ' ' Set delivery parameters ' mail.from="fred@flintstone.com" mail.to ="barney@rubble.com" %>
Don't forget to replace these sample email addresses with valid addresses in your own code.
In addition to the .from and .to parameters, the mailing object also has .cc and .bcc parameters for sending copies and blind copies of the email message, respectively. If you have multiple recipients for your message, put all their email addresses in the same string, separated by semicolons, like this:
"barney@rubble.com;betty@rubble.com;bamm-bamm@rubble.com"
Both .cc and .bcc are optional parametersif you don't need them, you don't set them.
With the delivery parameters set, you can now set the message parameters.
Step 3: Setting the Message Parameters
The most important parts of an email message are its subject line and the actual message, which correspond to the mailing object's .subject and .body parameters, respectively. Both parameters expect strings as values. For example, suppose you want to send an email with a subject of "Hello," and "Hello World!" as a message. The code would look like Listing 3.
Listing 3 - Setting the Message Parameters
<% set mail=server.CreateObject("CDONTS.NEWMAIL") ' ' Set delivery parameters ' mail.from="fred@flintstone.com" mail.to ="barney@rubble.com" ' ' Set message parameters ' mail.subject = "Hello" mail.body= "Hello World!" %>
Not difficult at all. With the subject and message body set, the last major step is to send the message.
Step 4: Sending the Message
You send a message by invoking the mailing object's send method as shown in Listing 4.
Listing 4 - Sending the Message
<% set mail=server.CreateObject("CDONTS.NEWMAIL") ' ' Set delivery parameters ' mail.from="fred@flintstone.com" mail.to ="barney@rubble.com" ' ' Set message parameters ' mail.subject = "Hello" mail.body= "Hello World!" ' ' Send the mail ' mail.send %>
That's it! Your mail is sent to the recipient. The final step is to delete the mailing object, freeing up any memory it uses in your web server. If you don't delete the mailing object and you send a lot of messages, your server's memory may get used up and your site's performance will degradeso delete that mailing object!
Step 5: Deleting the Mailing Object
You delete the mailing object by setting its variable to nothing (see Listing 5).
Listing 5 - Deleting the Mailing Object
<% set mail=server.CreateObject("CDONTS.NEWMAIL") ' ' Set delivery parameters ' mail.from="fred@flintstone.com" mail.to ="barney@rubble.com" ' ' Set message parameters ' mail.subject = "Hello" mail.body= "Hello World!" ' ' Send the mail ' mail.send ' ' Delete the mailing object ' set mail=nothing %>
Running Your Mailing Script
That's it for the "meat" of the mailing script. To run your mailing script, follow these steps:
Save your script, giving it a name with an ASP extension (for Active Server Pages). We'll use hellomail.asp.
Upload the file to your web server. For this example, we'll use our hacker phrases site, ProfessorF.
Open your browser and enter the address of your ASP script in the browser's address box. For this example, that's http://www.ProfessorF.com/hellomail.asp.
Your browser should show something like Figure 2.
Figure 2 Running the mailing script (hellomail.asp).
Note that the browser window is blank. You really ought to print a message indicating that the mail was sent successfully. To do so, add HTML to the end of your ASP script that displays a simple "Mail Sent" message. One way to do this is shown in Listing 6.
Listing 6 - Displaying a "Mail Sent" Message in the Browser
<% set mail=server.CreateObject("CDONTS.NEWMAIL") ' ' Set delivery parameters ' mail.from="fred@flintstone.com" mail.to ="barney@rubble.com" ' ' Set message parameters ' mail.subject = "Hello" mail.body= "Hello World!" ' ' Send the mail ' mail.send ' ' Delete the mailing object ' set mail=nothing %> <HTML> <HEAD> <TITLE>Hello World Mailing Program</TITLE> </HEAD> <BODY> Mail Sent! </BODY> </HTML>
To test this new version of your mailing script, save the new version of the script, upload it to your web server, and open it in your browser (see Figure 3).
Figure 3 Displaying a message after sending mail.
The mailing recipient should see a message similar to Figure 4. (Note that I blanked out the To: field.)
Figure 4 The message displayed in the recipient's mailing program.
As you can see, sending an email message via an ASP script is a straightforward process. In our example, we sent a simple one line message, "Hello World." How do you sent multiple-line messages? We cover this important topic in the next section.