剖析magento中关于Email模板的设置
public function send()
{
$emailTemplate = Mage::getModel('core/email_template');
// Send all emails from corresponding list
while (!empty($this->_emailInfos)) {
$emailInfo = array_pop($this->_emailInfos);
// Handle "Bcc" recepients of the current email
$emailTemplate->addBcc($emailInfo->getBccEmails());
// Set required design parameters and delegate email sending to Mage_Core_Model_Email_Template
$emailTemplate->setDesignConfig(array('area' => 'frontend', 'store' => $this->getStoreId()))
->sendTransactional(
$this->getTemplateId(),
$this->getSender(),
$emailInfo->getToEmails(),
$emailInfo->getToNames(),
$this->getTemplateParams(),
$this->getStoreId()
);
}
return $this;
}
(1) $this->getTemplateId()
<global>
<template>
<email>
<customer_create_account_email_template translate="label" module="customer">
<label>New account</label>
<file>account_new.html</file>
<type>html</type>
</customer_create_account_email_template>
</email>
<template>
</global>
$this->getTemplateId()表示上述配置中的customer_create_account_email_template。
(2) $this->getStoreId()
系统会根据$this->getStoreId()的值调用locale下的不同邮件模板。默认调用app/locale/en_US/template/email下的邮件模板
(3) $this->getTemplateParams()
邮件模板中的变量都来源于此