2012-02-22 11 views
12

Magentoはコンタクトフォームがエラーにmagentoはメールを送信していない、デバッグする方法は?

cannot send your mail at this moment 

を与え、私はMagentoの中でメールのセットアップ

  • をチェックし、すべての電子メールアカウントが設定
  • に設定されているPHPのメールが正常に動作し、国境を越えた、任意のメールを送信していませんphpメールを使ったtest.phpは、メッセージを送信します。
  • 私のメールサーバのログはチェックされていますが、何もエラーは見られません。
  • /var/log/system.logとexception.logは、任意のPHPプログラムは、いくつかの電子メールを送信するの半まともな仕事をすることができる唯一のエラーではないエラーの原因

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

答えて

2

を示しphpmailで。

あなたのMagentoビルドが何をしようとしているのかというエラーメッセージが表示されたら、Zendライブラリ経由でSendmailを使用してください。

sendmailのインストールをビルドしてテストする必要があります。または、gmailなどの他のメールサービスを使用して、Magentoにそれを使用させてください。

あなた、あなたのコンピュータかMagentoかどうかをテストするには、Roundcube Mailのような他のプログラムをそこに置きます。 Roundcube Mailがメールを送信できる場合、Sendmailが動作していることがわかります。そうでなければ、Sendmailに問題があることがわかります。

あなたのSendmailを修正するのはディストリビューション特有です。

+0

認証をサポートするmagento用のsmtpモジュールを追加しましたが、それでもsendmail transport/sendmail.phpをメールに送信しようとしています:S非常にイライラしている正規のPHPスクリプトはメールマゼンタで問題なく動作しますお問い合わせフォーム。 – Ilse

+0

Roundcubeはメールをうまく送信しますが、どのようにしてMagentoもメールを送信できますか?チックスの提案?どうも! – Ilse

26

私はMagentoのが送出されなかったとき、パスワードのメールを忘れてしまったこの問題に遭遇した(まだそれがユーザーにした報告は)その後、/var/log/exception.logで見た後、それが生成されたエラーだったが見つかりました:

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} 

ので開け/app/code/core/Mage/Core/Model/Email/Template.phpと(ライン354上)このエラーをして投げていたコードが見つかりました:

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

だからisValidForSend()を見ていた:

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

を追加しましたこれらの一つとしての機能の開始時に変数のいくつかのロギングはfalseを返すする必要があります。だから、

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

:持っていたログファイル/var/log/email.logを作成

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'); 

問題は次のとおりでした:!Mage::getStoreConfigFlag('system/smtp/disable')Admin > System > Configuration > Advanced > System > Mail Sending Settingsに修正し、をNoに変更して、電子メールがでないようにしてくださいが無効です。

は、今では動作します:) phpデフォルトのトランスポートとsendmail問題となる可能性が

1

Magento場合は送信メールを。

sendmailがローカルドメインのメールを拒否したとき、私はMXサーバに、状況にリレーの代わりに、それらの電子メールを経験してい

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

私は、サーバー上のmail.logをチェックお勧めします、とのようなエラーがある場合に見つかりました。あなたは、電子メールのログをチェックする前に、このerror.Soを取得する電子メールテンプレートに問題がある場合は、間違ったsendmail設定

0

を意味user unknown は、さらにときにカスタム、電子メールテンプレートをチェック電子メールテンプレート、コードは壊れていません。

2

私はまた、CE 1.9.1に送信されないようにするための電子メールの問題で苦労したが、しばらくして、問題を発見した:MagentoのCE 1.9.1のMagentoのよう

は、直接注文メールを送信しません。注文処理中に 代わりに、メールはキューに入れられ、cronによって送信されます。 Magento cronjobを正しく設定してください。

はまたを参照してください。また、

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

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

、私の場合にはエラー・ログには、この機能に連れて行ってくれました。管理者の設定は問題ありませんでした。しかし、$ this-> getTemplateSubject()は/ app/locale/folderの下にテンプレートがないのでfalse値を送信していました。そのため追加されたテンプレートは欠落していました。その後、それは私のために働いた。

関連する問題