eformmail, send HTML form contents to an email address


Welcome to eformmail. This program is a secure and safe solution to emailing the contents of a form to an email address.

It's features are:

  1. Mail the contents of a form to an email address.
  2. Can use the local sendmail program (or compatible) or talk straight to an SMTP host (must be a gateway).
  3. Single binary program. No PHP, Perl or other libraries needed.
  4. The email address does not have to be present on the form, so it can not be used by email address harvesters in order to spam it.
  5. It is possible to specify which fields must be validated. The contents should conform to the specified regular expression, else the email will not be sent.
  6. Protection against misuse of form by spammers by simple to use and foolproof spam trap.
  7. The contents of the email body that will be sent is completely configurable. eformmail can pipe the form data through an XSLT processor, so any formatting is possible.
  8. Supports both application/x-www-form-urlencoded and multipart/form-data encodings.
  9. eformmail.cgi is protected against harvesting of web pages that might use it, in order to exploit it by sending spam through that web page.

Currently eformmail.cgi should not be used to send binary data such as files. Support for this is scheduled for a next release.

Why eformmail?

The task: you want the persons who visit your site be able to give comments or feedback.

The problem: but as soon as you put an email address on your web page, email address harvesters wil come and start spamming that email address. This turns away many volunteers, because if you put their email address on a web page, they will get inundated with spam.

non-solution: instead of just providing an email address, the web page has a nice HTML form. Visitors fill this in and press a submit button. No email address shown, right? Not necessarily true. Popular programs currently in use, such as formmail, still require the email address to be there. It might not be visible to visitors, but automated email harvesters can easily extract it. You still have to put the email address on the form as a hidden field. But hidden is hidden for visitors, not for programs.

solution: eformmail requires no email address whatsoever to be present on the form. eformmail is a program which can gather and send the contents of any HTML form to an email address. The email address is not buried in the form, but remains hidden on the hosting server. It will never be revealed in any form to the outside world whatsoever.


eformmail needs one of these:

  • a POSIX system that has sendmail installed, or a sendmail compatible interface. The configuration allows one to specify any program, the only requirements are that it should accept a complete RFC2822 conformant email message on its stdin.
  • or access to a smart host through which eformmail can talk using SMTP. A smart host is a server that will accept email from this server and sent it to the hidden email address.


The setup of eformmail is covered in the manual.

Download source or binary release

The last release was made on 2007 May 7. The changes are described in the ChangeLog. You can download the source code, but compilation is hard if you don't already have an Eiffel environment set up.

So it is suggested you download a binary release instead.

eformmail binary downloads
PlatformFile nameVersion
Linux (compiled on Linux 2.6.20 with glibc-2.4) eformmail-Linux-2.0.tar.gz 2.0
FreeBSD (compiled on FreeBSD 6.2-RELEASE) eformmail-FreeBSD-2.0.tar.gz 2.0
Solaris (compiled on SunOS 10x86) eformmail-SunOS-2.0.tar.gz 2.0
Windows (compiled on Windows 2000). Supports only SMTP (smart host setting) eformmail-Windows-1.0.tar.gz 1.0


To subscribe to the eformmail mailing list, fill-in your email address and click the button below.

Subscribe to eformmail
Powered by groups.yahoo.com

Compile source release

To compile eformmail from scratch, you need an Eiffel compiler. eformmail compiles with SmartEiffel, the GNU Eiffel compiler.

You also need the latest of the following libraries:

  1. Gobo
  2. eposix.