A New Forms Solution Using ASP

By Vince Barnes

Part 2

Return to Part 1

First, let me add a little additional thought to the mix. I mentioned in the introductory paragraph that email forms are frequently used to send messages back to the webmaster and are sometimes used as a mechanism for capturing data, bypassing the need for a local database. This is the point I'd like to touch on again; it appears to have piqued the curiosity of more than a few readers!

It is easy enough to imagine the kinds of data that can usefully be captured on a form. "Tell me who you are", "tell me what you like", "tell me what I can do for you", "tell me what you want from me"; these are all good examples. It is very convenient to simply add this data to a local database, for whatever later processing you have in mind, but it is not always that easy. Not every host will make a database available to you, at least, not for free! If you could capture the data another way, and get it back to your own computer where you could put it into a database yourself, that might be a good workable solution.

If you format all the captured data into the body of an email and send it to yourself, you could cut and paste the data either directly into a database (depending on the capabilities of your database management system) or into a text file for later import into your database (which almost every DBMS can do.) Since you as the programmer are completely responsible for the format of your email, you can determine how you need it to look. It's also worth remembering that when you capture your data in this way, your email box becomes a back-up for your data!

This solution uses Microsoft's Collaboration Data Objects (CDO) for NT Systems (CDONTS). CDONTS is a library designed to enable SMTP (Simple Mail Transport Protocol -- email) messaging. It is usually installed on NT or W2K systems, but should it be missing, it can be installed by adding the SMTP feature to the Internet Information Services (IIS) on the server (your host will understand this - or at least, they should!)

Here is the example:

<%@ Language=VBScript %>
Dim sEmailAddr, sMsg

On Error Resume Next

sEmailAddr = Request.Form("EmailAddress")
If Len(sEmailAddr) > 0 Then
If InStr(1,sEmailAddr,"@") > 0 Then
Call SendEmail
sMsg = "Please enter a valid email address."
End If
End If
If Err.number <> 0 Then
sMsg = Err.Description
End If

Sub SendEmail()

Dim oMail

On Error Resume Next
Set oMail = Server.CreateObject("CDONTS.NewMail")
With oMail
.From = "Testing@TestDomain.com"
.To = sEmailAddr
.Subject = "Testing Website"
.Body = "This is only a test"
End With
Set oMail = Nothing

If Err.number <> 0 Then
sMsg = Err.Description
End If

End Sub
<Script Language="JavaScript">
<%If Len(sMsg) > 0 Then%>
<%End If%>

<form id="frmTest" name="frmTest" method="post" action="TestEmail.asp"> <P align="center">
Enter your email address
<input id="EmailAddress" name="EmailAddress" type="text" size="30" maxlength="64" value="<%=sEmailAddr%>">
<input id="btnSend" name="btnSend" type="submit" value="Send"> </P> </form>

<%If Len(sEmailAddr) > 0 And Len(sMsg) = 0 Then%>
<P align="center">
Your Email was sent successfully.
<%End If%>

That's the whole thing! This one assumes it is in a file called "testemail.asp". You can create a file with this name, copy it into a directory on your website and try it out! If you choose to call the file something else, you will need to change the action="TestEmail.asp" near the bottom to reflect the name you choose (of course, it must end ".asp")

Around the middle, you see a line with :
.From = "Testing@TestDomain.com"
This is the address the email appears to be sent from. You can change this to ad address suitable for your needs. It is also possible that your host's email service has some restrictions on the domain name that is used in this email address. If you have doubt, or if you have problems, check with your hosting company.

A full explanation of this code is far beyond the scope of this newsletter, but if you read it carefully, you'll probably get the idea of what it is doing. You can get more information about ASP in our tutorials on http://www.htmlgoodies.com  Another way to exploit it is to first get it working on your site, then slowly make changes to it, trying each change out to verify that it works, and slowly evolving it into something you find useful.

Return to Part 1

  • Web Development Newsletter Signup

    Invalid email
    You have successfuly registered to our newsletter.
Thanks for your registration, follow us on our social networks to keep up-to-date