Infatti k.b, FILTER_VALIDATE_EMAIL è sicuramenente la più indicata per validare email address, ma forse ti sei dimenticato che è stata introdotta con la vers. di PHP 5.2 ed il server in questione purtroppo gira con la vers. PHP 5.1.6. questo l'autore della classe PHPmailer ovviamente lo sapeva e come puoi notare (func della classe sotto riportato) l'utilizza.
Tra l'altro come potete notare in caso non fosse presente XLI.Filter Functions ( in caso appunto di vers. precedente ) cerca di validarlo con l'espressione regolare tenendo già conto dell'apostofo (singolo apice) nella prima parte dell'indirizzo, per capirci prima della @ [\\']
Personalmente ho l'impressione che il problema sia altrove, continuo l'analisi il primo che riesce a capire per cortesia ci faccia sapere.
codice:
public static function ValidateAddress($address) {
if (function_exists('filter_var')) { //Introduced in PHP 5.2
if(filter_var($address, FILTER_VALIDATE_EMAIL) === FALSE) {
return false;
} else {
return true;
}
} else {
return preg_match('/^(?:[\w\!\#\$\%\&\\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $address);
}
}
.