If the customer enters a bad email address with two .. then it appears that the order is not going through and they keep placing more orders because of the issue. Should have a check for no .. together because of the issue.
I tried this and I get a white page with a text warning, telling me to look at the email settings in the admin.
Email Error: Could not instantiate mail function. Please check Admin->Configuration->Email Options->Email Transport.
Then backpage and the account is created and the account can make orders etc.
Though I dont think is zen cart specific, as I created a few test accounts with non zen cart store. Some spotted the error, most did not.
I got the same error... the account gets created, but the email fails to send. Looking at the pattern, I'm not that good with patterns.... drives me nuts looking at them... this is what I found...
includes\functions\functions_email.php
Code:
//$valid_email_pattern = '^[a-z0-9]+[a-z0-9_\.\'\-]*@[a-z0-9]+[a-z0-9\.\-]*\.(([a-z]{2,6})|([0-9]{1,3}))$';
$valid_email_pattern = '^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$';
Ran the first pattern through a simple email form it would pass the .. without any problems, with the second pattern it would fail if the .. was anywhere together in the address, single dots no problem... I'm guessing escaping the dot is including it in the pattern check under (\.[a-z]{2,3})
Here's the fix:
Code:
$valid_email_pattern = '^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$';
and later in the file, add the RETURN FALSE; as shown:
Code:
function rfc_validate_email($address)
{
return FALSE;
$rfcValidEmailPattern = '.......