잘못된 이메일 주소“admin@eternal.florist”


13

안녕하세요, 저는이 새롭고 멋진 도메인 이름을 샀습니다. Magento 관리자의 전자 메일 주소를 저장하도록 설정하려고했습니다. 그리고 위의 오류가 발생했습니다. 어떻게해야합니까?

(또한 DB에서 변경하려고 시도했지만 테이블을 보유하고있는 테이블을 찾을 수 없습니다)

답변:


4

다음 명령문을 실행하십시오.

SELECT * 
FROM  `core_config_data` 
WHERE  `path` LIKE  '%email%'
LIMIT 0 , 30

기본적으로 값을 편집 할 수 있습니다. 당신이보고 싶은 주요 내용은 다음과 같습니다

  • trans_email/ident_general/email,
  • trans_email/ident_salse/email,
  • trans_email/ident_support/email

추신

1.7.0.2에서 해당 이메일 주소를 확인할 때 오류가 발생하지 않습니다. 다음 모델의 로컬 대체를 시도 할 수 있습니다.

app/code/core/Mage/Adminhtml/Model/System/Config/backend/Email/Address.php 에서:

protected function _beforeSave()
{
    $value = $this->getValue();
    if (!Zend_Validate::is($value, 'EmailAddress')) {
        Mage::throwException(Mage::helper('adminhtml')->__('Invalid email address "%s".', $value));
    }
    return $this;
}

에

protected function _beforeSave()
{
    $value = $this->getValue();
    /*if (!Zend_Validate::is($value, 'EmailAddress')) {
        Mage::throwException(Mage::helper('adminhtml')->__('Invalid email address "%s".', $value));
    }*/
    return $this;
}

이것은 기본적으로 유효성 검사 프로세스를 무시합니다.


21

사용중인 Magento 버전을 지정하지 않았지만 <CE 1.9.1.0 또는 <EE 1.14.1.0이라고 가정합니다. 이 경우 해결책은 Magento를 CE 1.9.1.0 으로 업그레이드 하는 것입니다 .

Magento는 Zend Framework (또는보다 구체적인 클래스 Zend_Validate_Hostname)를 사용하여 최상위 도메인의 유효성을 검사합니다.

CE 1.9.0.0 및 해당 EE 버전에서 Magento는 Zend Framework 1.12.3을 사용했습니다. 이 버전은 새로운 최상위 도메인을 지원하지 않았습니다. 이로 인해 프런트 엔드 및 백엔드의 유효성 검사가 실패합니다.

CE 1.9.1.0 및 EE 1.14.1.0에서 Magento는 Zend Framework를 1.12.7로 업데이트했습니다. 이 버전은 몇 가지 새로운 최상위 도메인을 구현하며 그 중 하나는 .florist입니다.

도있다, 그런 말로 미루어 보아, 현재 젠토의 현재 버전에서 지원되지 않는 다른 최상위 도메인 . 아직 포함되지 않은 Zend Framework 1.12.10에는 많은 새 주소를 추가하는 호스트 이름 유효성 검사의 또 다른 업데이트가있었습니다.

당신은 할 수 있습니다 :

  • 복사 lib/Zend/Validate/Hostname.php에app/code/local/Zend/Validate/Hostname.php
  • 2014/10/24에서 Zend_Validate_Hostname 파일을 가져옵니다 (파일 을 복사하는 데 시간이 오래 걸리므 로 GitHub로 이동하십시오).
  • 복사 $_validTlds에 GitHub의 호스팅 버전에서 변수를 여러분 Hostname.php 과
  • 바꾸다

    // First check TLD
    $matches = array();
    if (preg_match('/([^.]{2,10})$/i', end($domainParts), $matches) ||

    와

    // First check TLD
    $matches = array();
    if (preg_match('/([^.]{2,63})$/i', end($domainParts), $matches) ||

그러면 10자를 초과하는 도메인을 포함하여 새로운 최상위 도메인이 허용됩니다.


이것은 업데이트로 해결되므로 클래스를 코드 풀로 복사하는 대신 파일을 직접 변경합니다 (이를 잊어 버리고 업데이트 후에 문제가 발생하는 경우에만 발생)
— Flyingmana

1.12.10으로 업데이트 될 것임을 확인 했습니까? 그렇다면 동의합니다.
— Matthias Zeis

여전히 1.9.2.4에서 이것은 업데이트되지 않았습니다.
— Erfan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.