magento newsletter即使在保存电子邮件后仍会返回错误

时间:2013-12-23 02:45:50

标签: magento magento-1.7 newsletter

订阅存在问题。 这是我输入电子邮件后收到的消息。当我转到管理面板时,会添加电子邮件。 我希望它不显示此消息。任何建议请

1 个答案:

答案 0 :(得分:3)

Magento中唯一出现错误字符串的地方是以下try / catch块

#File: app/code/core/Mage/Newsletter/controllers/SubscriberController.php
try {
    //...snip!...
}
catch (Mage_Core_Exception $e) {
    $session->addException($e, $this->__('There was a problem with the subscription: %s', $e->getMessage()));
}
catch (Exception $e) {
    $session->addException($e, $this->__('There was a problem with the subscription.'));
}

由于您将错误消息报告为“订阅存在问题。”,这意味着简报订阅代码会引发一些PHP异常,由catch (Exception $e) {阻止。 Magento不会从PHP异常中输出消息。如果我在你的位置,我会暂时更改异常处理代码以包含错误消息

    $session->addException($e, $this->__('There was a problem with the subscription. ' . $e->getMessage()));

这将让您跟踪触发错误消息的PHP错误。

根据下面的评论,唯一存在“无法设置addHeader()标准标题”异常错误的地方是

#File: lib/Zend/Mail.php
    $prohibit = array('to', 'cc', 'bcc', 'from', 'subject',
                      'reply-to', 'return-path',
                      'date', 'message-id',
                     );
    if (in_array(strtolower($name), $prohibit)) {
        /**
         * @see Zend_Mail_Exception
         */
        #require_once 'Zend/Mail/Exception.php';
        throw new Zend_Mail_Exception('Cannot set standard header from addHeader()');
    }

    $value = $this->_filterOther($value);
    $value = $this->_encodeHeader($value);
    $this->_storeHeader($name, $value, $append);

    return $this;

我的猜测是在你的系统中的某个地方有人添加了一些自定义代码,试图通过addHeader方法设置一个标准的电子邮件标题。