Ungültige E-Mail-Adresse "[email protected]"

13

Hallo, ich habe diesen neuen schicken Domainnamen gekauft und bin jetzt in Schwierigkeiten. Ich habe versucht, die E-Mail-Adressen in Magento Admin zu speichern. Und habe den obigen Fehler bekommen. Was mache ich?

(Ich habe auch versucht, es in der DB zu ändern. Aber ich kann den Tisch nicht finden, der es enthält.)

Moe Süße
quelle

Antworten:

4

Führen Sie die folgende Anweisung aus:

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

Grundsätzlich können Sie dort die Werte bearbeiten. Die wichtigsten, die Sie sich ansehen möchten, sind:

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

PS

Bei der Überprüfung dieser E-Mail-Adresse in 1.7.0.2 wird keine Fehlermeldung angezeigt. Sie können versuchen, das folgende Modell lokal zu überschreiben:

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

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

zu

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

Dies umgeht grundsätzlich den Validierungsprozess.

Elch
quelle
21

Sie haben nicht angegeben, welche Version von Magento Sie verwenden, aber ich gehe davon aus, dass es <CE 1.9.1.0 oder <EE 1.14.1.0 ist. In diesem Fall besteht die Lösung darin , Magento auf CE 1.9.1.0 zu aktualisieren .

Magento verwendet Zend Framework (oder genauer: die Klasse Zend_Validate_Hostname), um die Top-Level-Domain zu validieren.

In CE 1.9.0.0 und der entsprechenden EE-Version verwendete Magento Zend Framework 1.12.3. Diese Version hat die neuen Top Level Domains nicht unterstützt. Aus diesem Grund schlagen die Validierungen sowohl im Frontend als auch im Backend fehl.

In CE 1.9.1.0 und EE 1.14.1.0 hat Magento Zend Framework auf 1.12.7 aktualisiert. Diese Version implementiert mehrere neue Top-Level-Domains, darunter eine .florist.

Allerdings gibt es auch andere Top-Level-Domains, die in der aktuellen Version von Magento derzeit nicht unterstützt werden . In Zend Framework 1.12.10, das noch nicht enthalten ist, wurde die Hostnamen-Validierung erneut aktualisiert und viele neue Adressen hinzugefügt.

Du könntest:

  • kopieren lib/Zend/Validate/Hostname.phpnachapp/code/local/Zend/Validate/Hostname.php
  • Holen Sie sich die Datei Zend_Validate_Hostname vom 24.10.2014 (es ist zu lang um die Datei zu kopieren, gehen Sie bitte zu GitHub),
  • Kopieren Sie die $_validTldsVariable von der von GitHub gehosteten Version auf Ihr Hostname.php und
  • ersetzen

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

    mit

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

Auf diese Weise können neue Domänen der obersten Ebene erstellt werden, einschließlich Domänen, die länger als 10 Zeichen sind.

Matthias Zeis
quelle
Da dies durch ein Update behoben wird, würde ich die Datei direkt ändern, anstatt die Klasse in einen Codepool zu kopieren (dies wird nur vergessen und nach dem Update
treten
Haben Sie eine Bestätigung, dass es ein Update auf 1.12.10 geben wird? Wenn ja, dann stimme ich zu.
Matthias Zeis
Noch in 1.9.2.4 wurde dies nicht aktualisiert ..
Erfan