Punaise? L'utilisation addBcc sur Mage_Core_Model_Email_Template ne semble pas au travail
-
16-10-2019 - |
Question
La façon dont je l'utilise (Magento EE 1.12):
$transactional = Mage::getModel('core/email_template');
foreach($ccEmails as $ccEmail) {
$transactional->addBcc(trim($ccEmail));
}
try{
$transactional->sendTransactional($transactionalTemplateId, $sender, $recipientEmail, $recipientName, $vars, $storeId);
} catch(Exception $e) {
throw $e;
}
La solution
En fait, tant pis, ce n'est pas un bug Magento. Je l'ai débogués et il se trouve que Ebizmarts_Mandrill_Model_Email_Template
a étendu la méthode addBcc
, mais ne pas ajouter à l'instance Zend_Mail
(qui Mage_Core_Model_Email_Template
fait).
Je l'ai envoyé par courrier électronique ebizmarts soutien avec le correctif:
La méthode addBcc
dans app/code/community/Ebizmarts/Mandrill/Model/Email/Template.php
doit avoir le code suivant ajouté juste après la déclaration de fonction:
//Check if should use Mandrill Transactional Email Service
if(FALSE === Mage::helper('mandrill')->useTransactionalService()){
return parent::addBcc($bcc);
}
Dans le cas contraire Cci ne sera pas défini dans l'instance de Zend_Mail
lorsque la méthode d'envoi est appelé Mage_Core_Model_Email_Template
.
Pour l'instant, j'ai créé un module qui réécritures et étend le module Mandrill et redéfinit la méthode addBcc
.