Emailing Form Input Using ASP

May 12
21:00

2002

Amrit Hallan

Amrit Hallan

  • Share this article on Facebook
  • Share this article on Twitter
  • Share this article on Linkedin

... uses online forms these days, whether to get user feedback or to get orders. They present your visitors with a means to convey their message to you.Most of the ... prefer using CGI sc

mediaimage

Everybody uses online forms these days,Emailing Form Input Using ASP Articles whether to get user feedback or to get orders. They present your visitors with a means to convey their message to you.

Most of the webmasters prefer using CGI scripts for processing and emailing form inputs. Such scripts are copiously available, mostly free, at various free-scripts resources on the Net. Most of CGI happens in Perl, so you gotta be in friendly terms with the scripting language in order to fine tune the form-handling script according to your own, special needs.

A better alternative is, using either ASP or PHP. Both scripting languages are easy to use and require less coding. In Perl, if you write a routine in 50 lines, the same routine can be written, in say, 10 lines in ASP.

In this article I'm going to tell you how to write an HTML-form handling script in ASP. This script does two things - it emails you the details entered by the visitor, and then it displays a thank you page. It also checks if the user has left a relevant field, here, email, blank.

There are basically two email handling objects used by the servers supporting the ASP capability, viz., CDONTS and SMTP. We'll see how both work.

First, let us make an HTML page that contains our form (note that every HTML tag is preceded by a dot so that some of the email clients don't throw up a tantrum - you'll have to remove them before implementing the code):

"form.html"

.
.
. This is a test page to run an ASP script that handles form input.


.
.


.

.

.
.





And now we write the ASP file that handles the required script to process the above form. Remarks are inserted using ' .

"emailform.asp"

.<% @Language = VBScript %>
.<% Option Explicit %>
.<% Response.Buffer = True %>

' You'll need the above command in case you want to show a "Thank you" page, as you'll need to "re-direct" to "thankyou.html".

.
.
. The form handling script.
.

.

.<%
Dim nName, eEmail, AllOk, bText, Mailer
AllOk = True

' We use AllOk to see whether it is Ok to proceed further or not. If AllOk contains "False," we do not proceed. The use of AllOk here may seem needless here, but if there are many fields, it comes handy.

nName = Trim(Request.Form("name"))

eEmail = Trim(Request.Form("email))

If Len(eEmail) = 0 then
Response.Write "You cannot submit details without submitting your email. Please press the BACK button of your browser and try again."

AllOk = False

End If

If AllOk = True then

bText = "The visitor to the web site has entered the following details:" & Chr(13) & Chr(10) & Chr(13) & Chr(10)

' We use the combination of Chr(13) and Chr(10) to insert the line breaks.

bText = bText & "Visitor's Name: " & nName & Chr(13) & Chr(10)
bText = bText & "Visitor's Email: " & eEmail

' This section uses SMTP
' Sending the email to the webmaster.

Set Mailer = Server.CreateObject("SMTPsvg.Mailer)
Mailer.FromAddress = eEmail
Mailer.FromName = nName
Mailer.AddRecipient "Webmaster", "webmaster@yourdomain.com"
Mailer.RemoteHost = "mail.yourdomain.com"
Mailer.Subject = "Form submitted at your web site!"
Mailer.BodyText = bText

If Mailer.SendMail then
Response.Redirect "thankyou.html"
Else
Response.Redirect "error.html"
End If

Set Mailer = nothing

' This section uses CDONTS
' Sending the email to the webmaster.

Set Mailer = Server.CreateObject("CDONTS.NewMail")
Mailer.From = eEmail
Mailer.To = "webmaster@yourdomain.com"
Mailer.Subject = Form submitted at your web site!"
Mailer.Body = bText

If Mailer.Send then
Response.Redirect "thankyou.html"
Else
Response.Redirect "error.html"
End If

Set Mailer = nothing

End If

.%>

I have demonstrated both CDONTS and SMTP, but you have to use only one. You'll have to ask your web host what to use.

As usual, if you have a doubt, you can write to me at amrit@bytesworth.com.

All the best.