it-swarm.com.de

magento verschickt keine mails, wie debuggen?

Magento versendet keine E-Mails, länderübergreifend, Kontaktformular gibt Fehler aus

 cannot send your mail at this moment

Ich überprüfte

  • E-Mail-Einrichtung in Magento, alle E-Mail-Konten werden in den Einstellungen festgelegt
  • php mail funktioniert einwandfrei eine test.php mit php mail verschickt eine nachricht
  • habe meine mailserver logs überprüft aber sehe nix da keine fehler
  • /var/log/system.log und exception.log zeigen nur einen Fehler an, nicht die Fehlerursache

    exception 'Zend_Mail_Transport_Exception' with message 'Unable to send mail. ' in /var/webshop/httpdocs/lib/Zend/Mail/Transport/Sendmail.php:137

12
Ilse

Ich bin auf dieses Problem gestoßen, als Magento keine vergessenen Passwort-E-Mails verschickte (obwohl es dem Benutzer gemeldet wurde). Nachdem ich in /var/log/exception.log gesucht hatte, stellte es fest, dass es einen Fehler gab,

2012-05-30T04:27:54+00:00 ERR (3): 
exception 'Exception' with message 'This letter cannot be sent.' in /home/magento/www/app/code/core/Mage/Core/Model/Email/Template.php:354
Stack trace:
#0 /home/magento/www/app/code/core/Mage/Core/Model/Email/Template.php(463): Mage_Core_Model_Email_Template->send(Array, Array, Array)
#1 /home/magento/www/app/code/core/Mage/Core/Model/Email/Template/Mailer.php(79): Mage_Core_Model_Email_Template->sendTransactional('customer_passwo...', 'support', Array, Array, Array, '1')
#2 /home/magento/www/app/code/core/Mage/Customer/Model/Customer.php(646): Mage_Core_Model_Email_Template_Mailer->send()
#3 /home/magento/www/app/code/core/Mage/Customer/Model/Customer.php(663): Mage_Customer_Model_Customer->_sendEmailTemplate('customer/passwo...', 'customer/passwo...', Array, '1')
#4 /home/magento/www/app/code/core/Mage/Customer/controllers/AccountController.php(554): Mage_Customer_Model_Customer->sendPasswordResetConfirmationEmail()
#5 /home/magento/www/app/code/core/Mage/Core/Controller/Varien/Action.php(420): Mage_Customer_AccountController->forgotPasswordPostAction()
#6 /home/magento/www/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('forgotpasswordp...')
#7 /home/magento/www/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#8 /home/magento/www/app/code/core/Mage/Core/Model/App.php(349): Mage_Core_Controller_Varien_Front->dispatch()
#9 /home/magento/www/app/Mage.php(640): Mage_Core_Model_App->run(Array)
#10 /home/magento/www/index.php(84): Mage::run('default', 'store')
#11 {main}

Also öffnete /app/code/core/Mage/Core/Model/Email/Template.php und fand den Code, der diesen Fehler auslöste (in Zeile 354):

if (!$this->isValidForSend()) {
    Mage::logException(new Exception('This letter cannot be sent.')); // translation is intentionally omitted
    return false;
}

Also war ein Blick auf isValidForSend():

public function isValidForSend()
{
    return !Mage::getStoreConfigFlag('system/smtp/disable')
        && $this->getSenderName()
        && $this->getSenderEmail()
        && $this->getTemplateSubject();
}

Protokollierung der Variablen zu Beginn der Funktion hinzugefügt, da eine dieser Variablen false zurückgeben muss:

Mage::Log(var_export(!Mage::getStoreConfigFlag('system/smtp/disable'),true).';'.var_export($this->getSenderName(),true).';'.var_export($this->getSenderEmail(),true).';'.var_export($this->getTemplateSubject(),true),null,'email.log');

Welche erstellt die Protokolldatei /var/log/email.log welche hatte:

2012-05-30T04:44:37+00:00 DEBUG (7): false;'CustomerSupport';'[email protected]';'Password Reset Confirmation for {{var customer.name}}'

Das Problem war also: !Mage::getStoreConfigFlag('system/smtp/disable'), das Sie in Admin > System > Configuration > Advanced > System > Mail Sending Settings korrigieren und Disable Email Communications in No ändern können, damit die E-MailsNICHTdeaktiviert sind.

Jetzt gehts :)

26
Kus

Jedes PHP-Programm kann eine halbwegs anständige Arbeit erledigen, indem es E-Mails mit phpmail versendet.

Aufgrund der Fehlermeldung unterscheidet sich Ihr Magento-Build anders - verwenden Sie Sendmail über die Zend-Bibliothek.

Sie müssen Ihre sendmail-Installation erstellen und testen. Oder nutzen Sie einen anderen Mail-Dienst wie Google Mail und lassen Sie ihn von Magento verwenden.

Um zu testen, ob Sie, Ihr Computer oder Magento, legen Sie ein anderes Programm wie Roundcube Mail dort an. Wenn Roundcube Mail E-Mails senden kann, werden Sie wissen, dass Sendmail funktioniert. Wenn nicht, werden Sie wissen, dass das Problem in Sendmail liegt.

Die Korrektur Ihrer Sendmail ist distanzspezifisch.

2
ʍǝɥʇɐɯ

Ich hatte auch Probleme mit dem Problem, dass Bestell-E-Mails nicht in CE 1.9.1 gesendet wurden, das Problem jedoch nach einiger Zeit gefunden wurde:

Ab Magento CE 1.9.1 versendet Magento während des Bestellvorgangs keine Bestell-E-Mails. Stattdessen werden die E-Mails in die Warteschlange gestellt und vom cron. Gesendet. Konfigurieren Sie also den Magento-Cronjob richtig.

Siehe auch:

http://www.magentocommerce.com/knowledge-base/entry/ee1141-ce191-responsive-email#cronhttp://www.magentocommerce.com/knowledge-base/ Eintrag/ce18-and-ee113-installierend # install-cron

2
public function isValidForSend()
{
    return !Mage::getStoreConfigFlag('system/smtp/disable')
        && $this->getSenderName()
        && $this->getSenderEmail()
        && $this->getTemplateSubject();
}

auch in meinem Fall brachte mich das Fehlerprotokoll zu dieser Funktion. Konfiguration in Admin war in Ordnung. $ This-> getTemplateSubject () sendete jedoch einen falschen Wert, da die Vorlage im Ordner/app/locale/fehlte. Fügte also eine Vorlage hinzu, die fehlte. Danach hat es für mich funktioniert.

1
Harry Thakkar

Das kann sendmail Problem sein, wenn Magento E-Mails mit php Standardtransport sendet.

Ich habe die Erfahrung gemacht, dass sendmail E-Mails für die lokale Domäne ablehnt, anstatt diese E-Mails an MX-Server weiterzuleiten

http://www.masterdef.net/blog/magento-unable-to-send-mail-sendmail-configuration/#more-1

Ich empfehle, mail.log auf dem Server zu überprüfen und herauszufinden, ob es Fehler wie user unknown Gibt, die eine falsche sendmail-Konfiguration bedeuten

1
XPS

Wenn ein Problem mit der E-Mail-Vorlage vorliegt. Sie erhalten diesen Fehler. Bevor Sie die E-Mail-Protokolle überprüfen, überprüfen Sie Ihre E-Mail-Vorlage. Wenn es sich um eine benutzerdefinierte E-Mail-Vorlage handelt, wird der Code nicht beschädigt.

0
Saleh Galiwala