This is a discussion on "Problems with formMail.asp" within the Classic ASP section. This forum, and the thread "Problems with formMail.asp are both part of the Program Your Website category.
|
|
|
|
|
![]() |
||
Problems with formMail.asp
|
||
| Notices |
![]() |
|
|
LinkBack | Thread Tools |
|
#1
|
|||
|
|||
|
Problems with formMail.asp
I am using an asp formMail script that I got from brainjar.com. I cannot get it to operate correctly. When I hit Submit on the form it brings me to the url of the script - then of course says it can't find the page; rather than processing the script.
In the script, I customized it with my parameters: referers = Array("www.leadtopia.com", "leadtopia.com") mailComp = "ASPMail" smtpServer = "localhost" (**this is what my hosting company said to use**) fromAddr = "sales@leadtopia.com" and have it stored in a folder called scripts. My form code (the important part) is as follows: <form action="/scripts/formMail.asp" method="post"> <p> <input name="_recipients" type="hidden" value="sales@leadtopia.com" /> <input name="_requiredFields" type="hidden" value="Name,Customer ID,Email,Comments" /> (it goes on from here...) My hosting company cannot help me with this issue. Been struggling for DAYs. Any help would be appreciated! |
|
|
|
#2
|
|||
|
|||
|
Re: Problems with formMail.asp
hi and welcome to webforumz..
Quote:
Just for hell sake though, post the script up here so we can take a peek. dont forget the [code] tags |
|
#3
|
|||
|
|||
|
Re: Problems with formMail.asp
Thanks for the reply.
I am not getting a 404 error but rather a "Page Cannot be Displayed" error page. The url on this error page is the url of the script. The script (as much as I could fit in...) <%@ LANGUAGE="VBScript" %> <% '************************************************* ************************** '* ASP FormMail * '* * '* Do not remove this notice. * '* * '* Copyright 1999-2002 by Mike Hall. * '* Please see http://www.brainjar.com for documentation and terms of use. * '************************************************* ************************** '- Customization of these values is required, see documentation. ----------- referers = Array("www.leadtopia.com", "leadtopia.com") mailComp = "ASPMail" smtpServer = "localhost" fromAddr = "sales@leadtopia.com" '- End required customization section. ------------------------------------- Response.Buffer = true errorMsgs = Array() 'Check for form data. if Request.ServerVariables("Content_Length") = 0 then call AddErrorMsg("No form data submitted.") end if 'Check if referer is allowed. if UBound(referers) >= 0 then validReferer = false referer = GetHost(Request.ServerVariables("HTTP_REFERER")) for each host in referers if host = referer then validReferer = true end if next if not validReferer then if referer = "" then call AddErrorMsg("No referer.") else call AddErrorMsg("Invalid referer: '" & referer & "'.") end if end if end if 'Check for the recipients field. if Request.Form("_recipients") = "" then call AddErrorMsg("Missing email recipient.") end if 'Check all recipient email addresses. recipients = Split(Request.Form("_recipients"), ",") for each name in recipients name = Trim(name) if not IsValidEmailAddress(name) then call AddErrorMsg("Invalid email address in recipient list: " & name & ".") end if next recipients = Join(recipients, ",") 'Get replyTo email address from specified field, if given, and check it. name = Trim(Request.Form("_replyToField")) if name <> "" then replyTo = Request.Form(name) else replyTo = Request.Form("_replyTo") end if if replyTo <> "" then if not IsValidEmailAddress(replyTo) then call AddErrorMsg("Invalid email address in reply-to field: " & replyTo & ".") end if end if 'Get subject text. subject = Request.Form("_subject") 'If required fields are specified, check for them. if Request.Form("_requiredFields") <> "" then required = Split(Request.Form("_requiredFields"), ",") for each name in required name = Trim(name) if Left(name, 1) <> "_" and Request.Form(name) = "" then call AddErrorMsg("Missing value for " & name) end if next end if 'If a field order was given, use it. Otherwise use the order the fields were 'received in. str = "" if Request.Form("_fieldOrder") <> "" then fieldOrder = Split(Request.Form("_fieldOrder"), ",") for each name in fieldOrder if str <> "" then str = str & "," end if str = str & Trim(name) next fieldOrder = Split(str, ",") else fieldOrder = FormFieldList() end if 'If there were no errors, build the email note and send it. if UBound(errorMsgs) < 0 then 'Build table of form fields and values. body = "<table border=""0"" cellpadding=""2"" cellspacing=""0"">" & vbCrLf for each name in fieldOrder body = body _ & "<tr valign=""top"">" _ & "<td><b>" & name & ":</b></td>" _ & "<td>" & Request.Form(name) & "</td>" _ & "</tr>" & vbCrLf next body = body & "</table>" & vbCrLf 'Add a table for any requested environmental variables. if Request.Form("_envars") <> "" then body = body _ & "<p> </p>" & vbCrLf _ & "<table border=""0"" cellpadding=""2"" cellspacing=""0"">" & vbCrLf envars = Split(Request.Form("_envars"), ",") for each name in envars name = Trim(name) body = body _ & "<tr valign=""top"">" _ & "<td><b>" & name & ":</b></td>" _ & "<td>" & Request.ServerVariables(name) & "</td>" _ & "</tr>" & vbCrLf next body = body & "</table>" & vbCrLf end if 'Send it. str = SendMail() if str <> "" then AddErrorMsg(str) end if 'Redirect if a URL was given. if Request.Form("_redirect") <> "" then Response.Redirect(Request.Form("_redirect")) end if end if %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <title>Form Mail</title> <style type="text/css"> body { background-color: #ffffff; color: #000000; font-family: Arial, Helvetica, sans-serif; font-size: 10pt; } table { border: solid 1px #000000; border-collapse: collapse; } td, th { border: solid 1px #000000; border-collapse: collapse; font-family: Arial, Helvetica, sans-serif; font-size: 10pt; padding: 2px; padding-left: 8px; padding-right: 8px; } th { background-color: #c0c0c0; } .error { color: #c00000; } </style> </head> <body> <% if UBound(errorMsgs) >= 0 then %> <p class="error">Form could not be processed due to the following errors:</p> <ul> <% for each msg in errorMsgs %> <li class="error"><% = msg %></li> <% next %> </ul> <% else %> <table cellpadding="0" cellspacing="0"> <tr> <th colspan="2" valign="bottom"> Thank you, the following information has been sent: </th> </tr> <% for each name in fieldOrder %> <tr valign="top"> <td><b><% = name %></b></td> <td><% = Request.Form(name) %></td> </tr> <% next %> </table> <% end if %> </body> </html> <% '--------------------------------------------------------------------------- ' Subroutines and functions. '--------------------------------------------------------------------------- sub AddErrorMsg(msg) dim n 'Add an error message to the list. n = UBound(errorMsgs) Redim Preserve errorMsgs(n + 1) errorMsgs(n + 1) = msg end sub function GetHost(url) dim i, s GetHost = "" 'Strip down to host or IP address and port number, if any. if Left(url, 7) = "http://" then s = Mid(url, 8) elseif Left(url, 8) = "https://" then s = Mid(url, 9) end if i = InStr(s, "/") if i > 1 then s = Mid(s, 1, i - 1) end if getHost = s end function 'Define the global list of valid TLDs. dim validTlds function IsValidEmailAddress(emailAddr) dim i, localPart, domain, charCode, subdomain, subdomains, tld 'Check for valid syntax in an email address. IsValidEmailAddress = true 'Parse out the local part and the domain. i = InStrRev(emailAddr, "@") if i <= 1 then IsValidEmailAddress = false exit function end if localPart = Left(emailAddr, i - 1) domain = Mid(emailAddr, i + 1) if Len(localPart) < 1 or Len(domain) < 3 then IsValidEmailAddress = false exit function end if 'Check for invalid characters in the local part. for i = 1 to Len(localPart) charCode = Asc(Mid(localPart, i, 1)) if charCode < 32 or charCode >= 127 then IsValidEmailAddress = false exit function end if next 'Check for invalid characters in the domain. domain = LCase(domain) for i = 1 to Len(domain) charCode = Asc(Mid(domain, i, 1)) if not ((charCode >= 97 and charCode <= 122) or (charCode >= 48 and charCode <= 57) or charCode = 45 or charCode = 46) then IsValidEmailAddress = false exit function end if next 'Check each subdomain. subdomains = Split(domain, ".") for each subdomain in subdomains if Len(subdomain) < 1 then IsValidEmailAddress = false exit function end if next 'Last subdomain should be a TDL. tld = subdomains(UBound(subdomains)) if not IsArray(validTlds) then call SetValidTlds() end if for i = LBound(validTlds) to UBound(validTlds) if tld = validTlds(i) then exit function end if next IsValidEmailAddress = false end function sub setValidTlds() |
![]() |
| Tags |
| problems, formmailasp |
| Thread Tools | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Having Trouble with Formmail.php | fireboat | PHP Forum | 2 | Mar 18th, 2007 07:42 |
| Formmail.asp help | MarkSensei | Classic ASP | 1 | Jan 22nd, 2006 22:48 |
| Need HELP - with formmail | bplatosz | Web Page Design | 4 | Nov 21st, 2005 19:01 |
| formmail equivalent | simonneaves | Classic ASP | 5 | Sep 21st, 2005 11:58 |