剖析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()

    邮件模板中的变量都来源于此

posted on 2014-08-19 19:10  冯亮  阅读(807)  评论(0编辑  收藏  举报

导航