無効なメールアドレス「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

PS

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(またはより具体的にはclass 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ます。

そうは言っても、現在のバージョンのMagentoで現在サポートされていない他のトップレベルドメインもあります。まだ含まれていないZend Framework 1.12.10では、多くの新しいアドレスを追加するホスト名検証の別の更新がありました。

あなたは出来る:

  • コピーlib/Zend/Validate/Hostname.phpするapp/code/local/Zend/Validate/Hostname.php
  • 2014/10/24からファイルZend_Validate_Hostnameを取得します(ファイルをコピーするのは長いので、GitHubにアクセスしてください)。
  • $_validTldsGitHubでホストされているバージョンから変数をコピーして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への更新があることを確認していますか?はいの場合、私は同意します。
マティアスツァイス

それでも1.9.2.4で、これは更新されていない...
ERFAN
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.