The script, originally created in Perl, is credited to Matt Wright of Matt's Script Archive and is available today in many web programming languages.
The script operates by iteratively reading all the form fields from the submitted form via the form ACTION tag. Next the script begins to build an e-mail message from the submitted fields, typically concatenating the name and value of each submitted form field in the body of the email message.
The script uses several specially-named hidden fields to control the operation of the script. The various hidden fields control who the recipient of the e-mail is, what the email subject is set to, etc. Finally the script e-mails the form's contents to the recipient(s).
The typical FormMail script has this common functionality:
- Reads all form fields and creates an e-mail message from them
- Recipient fields (typically hidden) allow creator to determine e-mail recipient
- Subject field, allows the creator to set the Subject of the e-mail in a hidden form field
- Required fields, allows you to set which fields need to be completed to send the e-mail
- CC, BCC fields, allow you to copy and forward to multiple recipients
More advanced variants of the script have additional features such as: provide for e-mail attachments, prevent form spamming, save the e-mail to a file or database, add CAPTCHA validation and more.