/**
  * Checks if value passed is in a valid email format.<p>
  *
  * @param  object  $value     any type of value that needs to be checked.
  * @param  string  $message   name of value being passed, used in error message.
  * @param  bool    $letReturn will determine if it throws an PHException or returns true.
  * @return bool will either return false if not and on success will return true if allowed.
  */
 public function isEmail($value, $letReturn = false)
 {
     if (!EmailAddressValidatorUtil::check_email_address($value)) {
         if (!$letReturn) {
             ErrorsUtil::error("Email is not in a valid email format.", ServiceCodes::INVALID_EMAIL_ERROR, null);
         } else {
             return false;
         }
     } else {
         return true;
     }
 }
 /**
  * Checks email section after "@" symbol for validity
  * @param   strDomainPortion     Text to be checked
  * @return  True if domain portion is valid, false if not
  */
 protected static function check_domain_portion($strDomainPortion)
 {
     // Total domain can only be from 1 to 255 characters, inclusive
     if (!EmailAddressValidatorUtil::check_text_length($strDomainPortion, 1, 255)) {
         return false;
     }
     // Check if domain is IP, possibly enclosed in square brackets.
     if (preg_match('/^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])' . '(\\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}$/', $strDomainPortion) || preg_match('/^\\[(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])' . '(\\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}\\]$/', $strDomainPortion)) {
         return true;
     } else {
         $arrDomainPortion = explode('.', $strDomainPortion);
         if (sizeof($arrDomainPortion) < 2) {
             return false;
             // Not enough parts to domain
         }
         for ($i = 0, $max = sizeof($arrDomainPortion); $i < $max; $i++) {
             // Each portion must be between 1 and 63 characters, inclusive
             if (!EmailAddressValidatorUtil::check_text_length($arrDomainPortion[$i], 1, 63)) {
                 return false;
             }
             if (!preg_match('/^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|' . '([A-Za-z0-9]+))$/', $arrDomainPortion[$i])) {
                 return false;
             }
         }
     }
     return true;
 }