2012-02-22 38 views
12

Magento không được gửi đi bất kỳ email nào, xuyên quốc gia, hình thức liên lạc cho lỗiMagento không gửi bất kỳ thư nào, cách gỡ lỗi?

cannot send your mail at this moment 

Tôi đã kiểm tra

  • thiết lập Mail trong Magento, tất cả các tài khoản email được thiết lập trong cài đặt
  • php email hoạt động tốt một tệp test.php với thư php gửi một thông báo
  • kiểm tra nhật ký máy chủ thư của tôi nhưng không thấy không có lỗi nào
  • /var/log/system.log và exception.log chỉ hiển thị một lỗi không phải là nguyên nhân của lỗi

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

Trả lời

2

Bất kỳ chương trình php có thể làm một công việc nửa phong nha gửi ra một số email với phpmail.

Với thông báo lỗi, Công cụ xây dựng Magento của bạn đang cố gắng làm là khác nhau - hãy sử dụng Sendmail qua thư viện Zend.

Bạn sẽ cần xây dựng và kiểm tra cài đặt sendmail của mình. Hoặc sử dụng một số dịch vụ thư khác như gmail và sử dụng Magento để sử dụng.

Để kiểm tra xem đó là bạn, máy tính hay Magento của bạn, hãy đặt một số chương trình khác như Roundcube Mail lên đó. Nếu Roundcube Mail có thể gửi mail thì bạn sẽ biết Sendmail đang hoạt động, nếu không thì bạn sẽ biết vấn đề là trong Sendmail.

Sửa chữa Sendmail của bạn bị phân phối cụ thể.

+0

Tôi đã thêm mô-đun smtp cho Magento hỗ trợ xác thực nhưng vẫn đang cố gửi thư đúng phương thức sendmail/sendmail.php: S rất bực bội, tập lệnh php thông thường hoạt động tốt với thư Magento sẽ không gửi bất kỳ email giao dịch nào hoặc Mâu liên hệ. – Ilse

+0

Roundcube gửi thư điện tử ra sao, làm cách nào tôi có thể làm cho Magento cũng gửi thư? Bất cứ đề nghị về thix? Cám ơn! – Ilse

26

Tôi chạy vào vấn đề này khi Magento đã không được gửi đi quên email mật khẩu (chưa báo cáo nó đã làm cho người sử dụng) sau đó sau khi nhìn vào /var/log/exception.log tìm thấy lỗi nó được tạo ra là:

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} 

Vì vậy, mở ra /app/code/core/Mage/Core/Model/Email/Template.php và tìm thấy đoạn code đó được ném lỗi này (on line 354) là:

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

Vì vậy, đã có một cái nhìn tại isValidForSend():

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

gia tăng một số khai thác gỗ của các biến vào lúc bắt đầu của hàm là một trong những phải được trở về false:

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

nào tạo ra các tập tin đăng nhập /var/log/email.log trong đó có:

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

Vì vậy, vấn đề là: !Mage::getStoreConfigFlag('system/smtp/disable') mà bạn có thể sửa chữa trong Admin > System > Configuration > Advanced > System > Mail Sending Settings và thay đổi Disable Email Communications thành No để các email là NOT bị vô hiệu hóa.

Bây giờ nó hoạt động :)

1

Đó có thể sendmail vấn đề, nếu Magento email gửi với phương tiện giao thông php mặc định.

Tôi có kinh nghiệm với tình huống khi sendmail phủ nhận email cho tên miền của địa phương, thay vì chuyển tiếp những email đến các máy chủ MX

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

tôi khuyên bạn nên kiểm tra mail.log trên máy chủ, và phát hiện nếu có lỗi giống như một user unknown có nghĩa là sai sendmail cấu hình

0

Nếu có sự cố với mẫu email. Bạn nhận được lỗi này. Trước khi kiểm tra nhật ký email, hãy kiểm tra mẫu email của bạn, hơn thế nữa khi tùy chỉnh mẫu email, mã không bị hỏng.

2

Tôi cũng phải vật lộn với vấn đề của email để không được gửi trong CE 1.9.1 nhưng thấy vấn đề sau một thời gian:

Tính đến Magento CE 1.9.1 Magento không gửi email đặt hàng trực tiếp trong quá trình đặt hàng. Thay vào đó các thư được xếp hàng đợi và được gửi bởi cron. Vì vậy, hãy đảm bảo định cấu hình cronjob Magento đúng cách.

Cũng tham khảo:

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(); 
} 

cũng có, trong trường hợp log lỗi của tôi đưa tôi đến chức năng này. Cấu hình trong quản trị là tốt. Nhưng $ this-> getTemplateSubject() đang gửi giá trị sai vì mẫu bị thiếu trong/app/locale/folder. Vì vậy, thêm mẫu bị thiếu. Sau đó nó làm việc cho tôi.

Các vấn đề liên quan