Trying to figure out why mail is not being sent, I read through the source code in eform.inc.php, and it appears to me that eForm does email address validation using an ad hoc syntax not obtained from the relevant Internet standards.
case "email":
//stricter email validation
if (strlen($value)>0 && !preg_match(
'/^(?:[a-z0-9_-]+?\.)*?[a-z0-9_-]+?@(?:[a-z0-9_-]+?\.)*?[a-z0-9_-]+?\.[a-z0-9]{2,5}$/i', $value) ) $vMsg[count($vMsg)]=$desc . $_lang["ef_invalid_email"];
break;
RFC822 says that the local part of an email address, i.e., the part to the left of the @ sign, is interpreted only by the receiving site. So the email validation done by eForm will reject some valid email address. As one common example, many mail systems allow so-called "plus addressing" which uses a + sign, and eForm will prevent this. As another example, many mail systems use a dot to separate first and last name in addresses such as
[email protected]. I am sure there are many less common examples of valid email addresses that will also be rejected.
The following Wikipedia entry:
http://en.wikipedia.org/wiki/E-mail_address
Says: "However, some mail servers violate RFC 5322, and the recommendations in RFC 3696, by refusing to send mail addressed to a user on another system merely because the local-part of the address contains the plus sign (+). Users of these systems cannot use plus addressing."
Rahul