Q:

Completely disable email validation

I am importing 60,000 customers and I would like to completely disable email validation as email addresses like name.surname@something.nhs.uk is not passing tests.
I am not really bothered about email validation I would rather leave it up to the end user to correctly enter in their email address

A:

Copy and paste app\code\core\Mage\ImportExport\Model\Import\Entity\customer.php file  into app\code\local\Mage\ImportExport\Model\Import\Entity\customer.php(if dont have then create new one) and replace validateRow function by the following snippet:
public function validateRow(array $rowData, $rowNum)
{
    static $email   = null; // e-mail is remembered through all customer rows
    static $website = null; // website is remembered through all customer rows

    if (isset($this->_validatedRows[$rowNum])) { // check that row is already validated
        return !isset($this->_invalidRows[$rowNum]);
    }
    $this->_validatedRows[$rowNum] = true;

    $rowScope = $this->getRowScope($rowData);

    if (self::SCOPE_DEFAULT == $rowScope) {
        $this->_processedEntitiesCount ++;
    }

    $email        = $rowData[self::COL_EMAIL];
    $emailToLower = strtolower($rowData[self::COL_EMAIL]);
    $website      = $rowData[self::COL_WEBSITE];

    $oldCustomersToLower = array_change_key_case($this->_oldCustomers, CASE_LOWER);
    $newCustomersToLower = array_change_key_case($this->_newCustomers, CASE_LOWER);

    // BEHAVIOR_DELETE use specific validation logic
    if (Mage_ImportExport_Model_Import::BEHAVIOR_DELETE == $this->getBehavior()) {
        if (self::SCOPE_DEFAULT == $rowScope
            && !isset($oldCustomersToLower[$emailToLower][$website])) {
            //$this->addRowError(self::ERROR_EMAIL_SITE_NOT_FOUND, $rowNum);
        }
    } elseif (self::SCOPE_DEFAULT == $rowScope) { // row is SCOPE_DEFAULT = new customer block begins
        if (!Zend_Validate::is($email, 'EmailAddress')) {
            //$this->addRowError(self::ERROR_INVALID_EMAIL, $rowNum);
        } elseif (!isset($this->_websiteCodeToId[$website])) {
            $this->addRowError(self::ERROR_INVALID_WEBSITE, $rowNum);
        } else {
            if (isset($newCustomersToLower[$emailToLower][$website])) {
                //$this->addRowError(self::ERROR_DUPLICATE_EMAIL_SITE, $rowNum);
            }
            $this->_newCustomers[$email][$website] = false;

            if (!empty($rowData[self::COL_STORE]) && !isset($this->_storeCodeToId[$rowData[self::COL_STORE]])) {
                $this->addRowError(self::ERROR_INVALID_STORE, $rowNum);
            }
            // check password
            if (isset($rowData['password']) && strlen($rowData['password'])
                && Mage::helper('core/string')->strlen($rowData['password']) < self::MAX_PASSWD_LENGTH
            ) {
                $this->addRowError(self::ERROR_PASSWORD_LENGTH, $rowNum);
            }
            // check simple attributes
            foreach ($this->_attributes as $attrCode => $attrParams) {
                if (in_array($attrCode, $this->_ignoredAttributes)) {
                    continue;
                }
                if (isset($rowData[$attrCode]) && strlen($rowData[$attrCode])) {
                    $this->isAttributeValid($attrCode, $attrParams, $rowData, $rowNum);
                } elseif ($attrParams['is_required'] && !isset($oldCustomersToLower[$emailToLower][$website])) {
                    $this->addRowError(self::ERROR_VALUE_IS_REQUIRED, $rowNum, $attrCode);
                }
            }
        }
        if (isset($this->_invalidRows[$rowNum])) {
            $email = false; // mark row as invalid for next address rows
        }
    } else {
        if (null === $email) { // first row is not SCOPE_DEFAULT
            $this->addRowError(self::ERROR_EMAIL_IS_EMPTY, $rowNum);
        } elseif (false === $email) { // SCOPE_DEFAULT row is invalid
            $this->addRowError(self::ERROR_ROW_IS_ORPHAN, $rowNum);
        }
    }
    // validate row data by address entity
    $this->_addressEntity->validateRow($rowData, $rowNum);

    return !isset($this->_invalidRows[$rowNum]);
}

