Magento:在自定义模块中没有加载email_template

时间:2012-04-02 16:01:29

标签: zend-framework email templates magento

我已经创建了自己的自定义联系表单模块。在postAction()函数中,IndexController.php我有

$mailTemplate = Mage::getModel('core/email_template');

执行控制台日志表明没有任何内容存储在变量中。为什么会这样?默认的联系人模块加载它很好,所以为什么这里有什么不同?

此外,当进行实际发送邮件的调用时,它总是抛出异常。

1 个答案:

答案 0 :(得分:1)

const XML_PATH_EMAIL_RECIPIENT  = 'quotes/email/recipient_email';
const XML_PATH_EMAIL_SENDER     = 'quotes/email/sender_email_identity';
const XML_PATH_EMAIL_TEMPLATE   = 'quotes/email/email_template';

$mailTemplate = Mage::getModel('core/email_template');

/ * @var $ mailTemplate Mage_Core_Model_Email_Template * /

                $mailTemplate->setDesignConfig(array('area' => 'frontend'))
                    ->sendTransactional(
                    Mage::getStoreConfig(self::XML_PATH_EMAIL_TEMPLATE),
                    Mage::getStoreConfig(self::XML_PATH_EMAIL_SENDER),
                    Mage::getStoreConfig(self::XML_PATH_EMAIL_RECIPIENT),
                    null,
                    array('data' => $postObject)`
                );

这应该允许您根据需要发送模板。

您需要在config.xml

中使用这一部分XML
    <template>
        <email>
            <quotes_email_email_template translate="label" module="quotes">
                <label>Quote Form</label>
                <file>quote_form.html</file>
                <type>text</type>
            </quotes_email_email_template>
        </email>
    </template>


    <default>
        <quotes>
            <quotes>
                <enabled>1</enabled>
            </quotes>
            <email>
                <recipient_email><![CDATA[hello@example.com]]></recipient_email>
                <sender_email_identity>custom2</sender_email_identity>
                <email_template>quotes_email_email_template</email_template>
            </email>
        </quotes>
    </default>

这是Mage_Quotes模块中的一个示例,它允许表单发送产品报价。