我已经创建了自己的自定义联系表单模块。在postAction()
函数中,IndexController.php
我有
$mailTemplate = Mage::getModel('core/email_template');
执行控制台日志表明没有任何内容存储在变量中。为什么会这样?默认的联系人模块加载它很好,所以为什么这里有什么不同?
此外,当进行实际发送邮件的调用时,它总是抛出异常。
答案 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模块中的一个示例,它允许表单发送产品报价。