【问题标题】:How to add bcc or cc in magento如何在magento中添加密件抄送或抄送
【发布时间】:2023-03-20 07:42:01
【问题描述】:

我不知道如何在以下编码中添加 cc 或 bcc .. 我尝试了 bcc 但邮件无法发送。请有人帮忙!..

代码是

$data = array('name' => $username, 'to_user_id' => $to_userid, 'email' => $email, 'telephone' => $telephone, 'title' => $title, 'ip' => $ip, 'message' => $message);

            $templateId =1;
            $sender = Array('name' => "Admin", 'email' => "webmaster@example.com");
            $useremail = $product_user;
            $emailName = $username;
            $vars = array('username' => $username, 'telephone' => $telephone, 'mail_id' => $email, 'title' => $title, 'message' => $message, 'object' => $this);
            $storeId = Mage::app()->getStore()->getId();
            $mailSubject = 'mail check';
            $translate = Mage::getSingleton('core/translate');
            $translate->setTranslateInline(false);
            Mage::getModel('core/email_template')
                ->setDesignConfig(array('area' => 'frontend', 'store' => $storeId))
                ->setTemplateSubject($mailSubject)
                ->setBcc('zzz@gmail.com')
                ->sendTransactional($templateId, $sender, $useremail, $emailName, $vars, $storeId);
            $translate->setTranslateInline(true);

                $model = Mage::getModel("contacts/contacts")->setData($data)->save();


            Mage::getSingleton("core/session")->addSuccess("You have been successfully sent your mail..");
            $this->_redirectReferer();
            return;

【问题讨论】:

    标签: magento


    【解决方案1】:

    您可以在代码中使用addBcc('zzz@gmail.com') 而不是setBcc('zzz@gmail.com'),也可以像这样修改代码

    //mail transaction
    $mail = Mage::getModel('core/email_template');
    $mail->getMail()->addCc('zzz@gmail.com');
    $mail->addBcc('zzz@gmail.com')
        ->setDesignConfig(array('area' => 'frontend', 'store' => $storeId))
        ->setTemplateSubject($mailSubject)
        ->sendTransactional($templateId, $sender, $useremail, $emailName, $vars, $storeId);
    

    【讨论】:

      【解决方案2】:

      Mage_Core_Model_Email class 不支持密件抄送(或抄送)。您需要重写 send 方法并在 $mail->send(); 之前添加此代码。

      if ($this->getBcc()) {
          $mail->addBcc($this->getBcc());
      }
      

      之后你的代码可以是:

      $mail = Mage::getModel('core/email')
                  ->setToName($senderName)
                  ->setToEmail($customerEmail)                    
                  ->setBody($processedTemplate)
                  ->setSubject('Subject')
                  ->setFromEmail($senderEmail)
                  ->setFromName($senderName)
                  ->setType('html')
                  ->setBcc('test@example.com') //bcc line added
                  ->send();
      

      【讨论】:

        【解决方案3】:

        将密件抄送添加到 Magento 联系我们。

        进入管理面板->系统->配置->联系人。您可以在“电子邮件选项”部分看到“发送电子邮件至”。现在,如果您想将发送电子邮件密件抄送添加到此部分。

        1. 从 app/code/core/Mage/Contacts 复制联系人扩展文件夹以粘贴 app/code/local/Mage/Contacts。

        2. 打开 app/etc/modules/Mage_All.xml(转到第 360 行)将代码池核心更改为本地。

          <Mage_Contacts> <active>true</active> <codePool>local</codePool> <depends> <Mage_Core/> </depends> </Mage_Contacts>

        3. 打开app/code/local/Mage/Contacts/etc/system.xml,找到下面的代码(第67行)

          <recipient_email translate="label"> <label>Send Emails To</label> <frontend_type>text</frontend_type> <validate>validate-email required-entry</validate> <sort_order>10</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> </recipient_email>

        在system.xml中的上述代码之后添加以下代码

        <recipient_email2 translate="label">
                <label>Send Emails BCC</label>
                <frontend_type>text</frontend_type>
                <sort_order>11</sort_order>
                <show_in_default>1</show_in_default>
                <show_in_website>1</show_in_website>
                <show_in_store>1</show_in_store>
            </recipient_email2>
        
        1. 打开 app/code/local/Mage/Contacts/controllers/IndexController.php(转到第 37 行)添加以下代码。

          const XML_PATH_EMAIL_RECIPIENT2 = 'contacts/email/recipient_email2';

        然后转到行号:94 并找到以下代码。

        $mailTemplate = Mage::getModel('core/email_template');
                    /* @var $mailTemplate Mage_Core_Model_Email_Template */
                    $mailTemplate->setDesignConfig(array('area' => 'frontend'))
                        ->setReplyTo($post['email'])
                        ->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)
                        );
        

        然后用下面的代码替换:

        $bcc_str = Mage::getStoreConfig(self::XML_PATH_EMAIL_RECIPIENT2);
                        $bcc_email = explode(",", $bcc_str);
        
                        $mailTemplate = Mage::getModel('core/email_template');
                        /* @var $mailTemplate Mage_Core_Model_Email_Template */
                        $mailTemplate->addBcc($bcc_email)
                                ->setDesignConfig(array('area' => 'frontend'))
                                ->setReplyTo($post['email'])
                                ->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));
        
        1. 刷新 magento 缓存并检查管理面板->系统->配置->联系人。现在您可以在电子邮件选项部分看到发送电子邮件密件抄送。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-04-28
          • 2014-10-28
          • 1970-01-01
          • 1970-01-01
          • 2017-08-28
          • 2013-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多