Hi all,

I want to make a jmail sendmail script for a form with radio buttons and menus. Below is an example form:

<form name="form1" method="post" action="survey-code.asp">
  <p>
    <input name="email" type="text" id="email">
  </p>
  <p>
    <select name="list1" id="list1">
      <option>a</option>
      <option>b</option>
      <option>c</option>
    </select>
  </p>
  <p> 
    <select name="list2" id="list2">
      <option>a</option>
      <option>b</option>
      <option>c</option>
    </select>
  </p>
  <p> 
    <select name="list3" id="list3">
      <option>a</option>
      <option>b</option>
      <option>c</option>
    </select>
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>

below is the jmail script i am using for a more simple form:

<%
Response.Buffer = True
Dim strBody    'Holds the body of the e-mail
Dim objJMail    'Holds the mail server object
Dim strMyEmailAddress   'Holds your e-mail address
Dim strSMTPServerAddress 'Holds the SMTP Server address
Dim strCCEmailAddress  'Holds any carbon copy e-mail addresses if you want to send carbon copies of the e-mail
Dim strBCCEmailAddress  'Holds any blind copy e-mail addresses if you wish to send blind copies of the e-mail
Dim strReturnEmailAddress 'Holds the return e-mail address of the user
strMyEmailAddress = "[EMAIL="info@example.com"]info@example.com[/EMAIL]"
strSMTPServerAddress = "smtp.example.com"
strCCEmailAddress = "[EMAIL="infocc@example.com"]infocc@example.com[/EMAIL]" 'Use this string only if you want to send the carbon copies of the e-mail
strBCCEmailAddress = ""
strReturnEmailAddress = Request.Form("email")
strBody = "<h2>E-mail sent from form on Web Site</h2>"
strBody = strBody & "<br><b>Name: </b>" & Request.Form("Name")
strBody = strBody & "<br><b>E-mail: </b>" & strReturnEmailAddress
strBody = strBody & "<br><b>Question: </b>" & request.form("question")
If Len(strReturnEmailAddress) < 5 OR NOT Instr(1, strReturnEmailAddress, " ") = 0 OR InStr(1, strReturnEmailAddress, "@", 1) < 2 OR InStrRev(strReturnEmailAddress, ".") < InStr(1, strReturnEmailAddress, "@", 1) Then
 strReturnEmailAddress = strMyEmailAddress
End If 

Set objJMail = Server.CreateObject("JMail.SMTPMail")
objJMail.ServerAddress = strSMTPServerAddress
objJMail.Sender = strReturnEmailAddress
objJMail.SenderName = Request.Form("Name")
objJMail.AddRecipient strMyEmailAddress
objJMail.AddRecipientCC strCCEmailAddress
objJMail.AddRecipientBCC strBCCEmailAddress
objJMail.Subject = "Enquiry sent from enquiry form on website"
objJMail.HTMLBody = strBody
'objJMail.Body = strBody
objJMail.Priority = 3 
objJMail.Execute
 
Set objJMail = Nothing
%>

Dani AI

Generated

A short expert note tied to the replies from @vishesh and :

Two immediate corrections and safety points not fully covered in the thread. First, the radio inputs in the example use the same value for both choices — that prevents the server from distinguishing selections. Second, option controls should have explicit value attributes so the server receives predictable data instead of relying on visible text. Also avoid using a visitor's raw email as the SMTP sender (many mail servers will reject or flag that); use the site account as the sender and put the visitor address in Reply‑To.

Practical checklist for a robust implementation:

  • Give every form control a unique name and each <option> / radio a distinct value.
  • Validate and strip dangerous characters from headers (no CR or LF) to prevent header injection.
  • HTML‑encode user text before appending it to an HTML mail body; convert plaintext newlines into <br> if needed.
  • Send both an HTML body and a plain text fallback when possible, and add simple error handling around the mail send so failures can be logged.

Quick debug helper (dump form fields on the server to confirm names/values):

Dim fld
For Each fld In Request.Form
  Response.Write fld & " = " & Server.HTMLEncode(Request.Form(fld)) & "<br>"
Next

Simple CR/LF check for header fields:

If InStr(userEmail, vbCr) > 0 Or InStr(userEmail, vbLf) > 0 Then userEmail = ""

Final notes: verify SMTP logs when a message is not delivered, and correct the duplicate radio value in @vishesh’s HTML. For the posted email addresses being harvested (as raised by ), request moderator removal or edit the posts to replace addresses with obfuscated forms (e.g., info [at] example [dot] com) so crawlers cannot easily harvest them.

Recommended Answers

All 9 Replies

and i forgot to complete my post lol. Thats the info you wil probably need so can anybody tell me how to add a menu and radio group / button to my jmail script? Thanks,

Max

Member Avatar for Member #114696

and i forgot to complete my post lol. Thats the info you wil probably need so can anybody tell me how to add a menu and radio group / button to my jmail script? Thanks,

Max

I didn't understand what you mean by adding adding menu and radio group to JAMIL script....Do mean that you want to retrieve the option selected and show it in the message that is being sent ??

I didn't understand what you mean by adding adding menu and radio group to JAMIL script....Do mean that you want to retrieve the option selected and show it in the message that is being sent ??

yes thats what i need to know. Its for a feedback form were you select which radio button you want. Thanks!!

Max

Member Avatar for Member #114696

to add a radio buttons in your page.. .. use input tahers an example

<input type="radio" name="status" value="on"> on
<br>
<input type="radio" name="status" value="off"> off

to retrieve it in asp, just that Request.QueryString(name)

to add a radio buttons in your page.. .. use input tahers an example

<input type="radio" name="status" value="on"> on
<br>
<input type="radio" name="status" value="off"> off

to retrieve it in asp, just that Request.QueryString(name)

im not completely sure how to use that im my jmail script. I am not very experianced in it, i have only been using it for 2 days lol.

Member Avatar for Member #114696

here goes your html code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
  <title></title>
</head>

<body>
   <form name="form1" method="post" action="survey-code.asp">
  <p>
    <input name="email" type="text" id="email">
  </p>
  <p>
    <select name="list1" id="list1">
      <option>a</option>
      <option>b</option>
      <option>c</option>
    </select>
  </p>
  <p>
    <select name="list2" id="list2">
      <option>a</option>
      <option>b</option>
      <option>c</option>
    </select>
  </p>
  <p>
    <select name="list3" id="list3">
      <option>a</option>
      <option>b</option>
      <option>c</option>
    </select>
  </p>
  <p>
    <input type="radio" name="status" value="On" />On
    <input type="radio" name="status" value="On" />Off
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
</body>

</html>

and here's ur script, haven't checked it yet but it must work:

<%
Response.Buffer = True
Dim strBody    'Holds the body of the e-mail
Dim objJMail    'Holds the mail server object
Dim strMyEmailAddress   'Holds your e-mail address
Dim strSMTPServerAddress 'Holds the SMTP Server address
Dim strCCEmailAddress  'Holds any carbon copy e-mail addresses if you want to send carbon copies of the e-mail
Dim strBCCEmailAddress  'Holds any blind copy e-mail addresses if you wish to send blind copies of the e-mail
Dim strReturnEmailAddress 'Holds the return e-mail address of the user
strMyEmailAddress = "info@example.com"
strSMTPServerAddress = "smtp.example.com"
strCCEmailAddress = "infocc@example.com" 'Use this string only if you want to send the carbon copies of the e-mail
strBCCEmailAddress = ""
strReturnEmailAddress = Request.Form("email")
strBody = "<h2>E-mail sent from form on Web Site</h2>"
strBody = strBody & "<br><b>Name: </b>" & Request.Form("Name")
strBody = strBody & "<br><b>E-mail: </b>" & strReturnEmailAddress
strBody = strBody & "<br><b>Status: </b>" & Request.Form("status")
strBody = strBody & "<br><b>Question: </b>" & request.form("question")
If Len(strReturnEmailAddress) < 5 OR NOT Instr(1, strReturnEmailAddress, " ") = 0 OR InStr(1, strReturnEmailAddress, "@", 1) < 2 OR InStrRev(strReturnEmailAddress, ".") < InStr(1, strReturnEmailAddress, "@", 1) Then
 strReturnEmailAddress = strMyEmailAddress
End If

Set objJMail = Server.CreateObject("JMail.SMTPMail")
objJMail.ServerAddress = strSMTPServerAddress
objJMail.Sender = strReturnEmailAddress
objJMail.SenderName = Request.Form("Name")
objJMail.AddRecipient strMyEmailAddress
objJMail.AddRecipientCC strCCEmailAddress
objJMail.AddRecipientBCC strBCCEmailAddress
objJMail.Subject = "Enquiry sent from enquiry form on website"
objJMail.HTMLBody = strBody
'objJMail.Body = strBody
objJMail.Priority = 3
objJMail.Execute

Set objJMail = Nothing
%>

hope it works, if doesn't i am here only:cool:;)

vishesh

Member Avatar for Member #114696

Sorry forgot explanation...so i have done in html code is that i have put two radio buttons with name status and value On and Off. When you click submit it send the reuest as

survey-code.asp?status=On/Off

So in the scirpt I retrieve its value by Request.Form("status")
So i hope you got it...

cheers
vishesh

Excellant thanks! :) im going out now but ill check it out when i get back :) thanks again. Max

Can an admin take out all email addresses from this thread? They are getting picked up by crawlers and sold to spammers.

Either that or somebody tell me how I can do it; no edit button...

Thanks,
Max.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.