Отправьте на дополнительный электронный адрес bcc через контактную форму

magento.stackexchange https://magento.stackexchange.com//questions/93114

Вопрос

Я просто изменил время перед моим IndexController.php просто для того, чтобы иметь возможность отправлять электронные письма нескольким получателям, и это работало нормально.Я взял это из magento.stackexchange.Это то, что у меня есть сейчас:

$recipients = array(
    'web@domain.com' => 'Web · Domain',
    'extra@domain.com' => 'Extra · Domain'
);

$mailTemplate->setDesignConfig(array('area' => 'frontend'))
    ->setReplyTo($post['email'])
    ->sendTransactional(
        Mage::getStoreConfig(self::XML_PATH_EMAIL_TEMPLATE),
        Mage::getStoreConfig(self::XML_PATH_EMAIL_SENDER),
        array_keys($recipients),
        array_values($recipients),
        array('data' => $postObject)
    );

А теперь я хотел бы внести некоторые изменения.Установите extra@domain.com пишите как Bcc вместо Cc, потому что мы не хотим удалять extra@domain.com все время от получателей, когда мы хотим ответить на контактную форму.Мы видим электронное письмо пользователя и дополнительное электронное письмо при попытке ответить от web@domain.com это электронное письмо, которым пользуются разные люди в нашей компании.Поэтому мы хотим extra@domain.com просто как информационное электронное письмо, которое никогда не будет использоваться для ответа на электронные письма.Возможно ли это вообще?

РЕШЕНИЕ:

$recipients = array(
    'web@domain.com' => 'Web · Domain'
);


$mailTemplate->setDesignConfig(array('area' => 'frontend'))
    ->setReplyTo($post['email'])
    ->addBcc("extra@domain.com")
    ->sendTransactional(
        Mage::getStoreConfig(self::XML_PATH_EMAIL_TEMPLATE),
        Mage::getStoreConfig(self::XML_PATH_EMAIL_SENDER),
        array_keys($recipients),
        array_values($recipients),
        array('data' => $postObject)
    );
Это было полезно?

Решение

Вы можете сделать что-то вроде этого

$bccRecipients = array(
    'extra@domain.com' => 'Extra · Domain'
);

$mailTemplate->addRecipients($bccRecipients, array(), Mage_Core_Model_Email_Queue::EMAIL_TYPE_BCC);
.

или просто попробуйте

$mailTemplate->addBcc("some@email.com");
.

Другие советы

Попробуйте:

$recipients = array(
    'web@domain.com',
    'extra@domain.com'
);

$mailer = Mage::getModel('core/email_template_mailer');
$emailInfo = Mage::getModel('core/email_info');
if ($recipients) {
// Add bcc to email
    foreach ($recipients as $email) {
        $emailInfo->addBcc($email);
    }
}
.

Добавьте BCC в Magento, свяжитесь с нами.

Перейдите в Панель администратора-> Система-> Конфигурация-> Контакты.Вы можете просмотреть раздел "Отправить электронное письмо" в разделе "Параметры электронной почты".Теперь, если вы хотите добавить отправку по электронной почте BCC в этот раздел.

  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>

  1. Откройте 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 и проверьте Панель администратора-> Система-> Конфигурация-> Контакты.Теперь вы можете просмотреть раздел "Отправлять электронные письма BCC" в разделе "Параметры электронной почты".
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top