发送电子邮件功能和参数 - Zend错误"主题设置两次"

时间:2016-06-24 23:14:40

标签: php zend-framework foreach

我知道它不起作用,但我如何将$ salesData和$ salesData2纳入发送电子邮件功能?

$salesData['email']  = Mage::getStoreConfig('trans_email/ident_custom3/email');
$salesData['name']   = Mage::getStoreConfig('trans_email/ident_custom3/name');
$salesData2['email'] = Mage::getStoreConfig('trans_email/ident_custom4/email');
$salesData2['name']  = Mage::getStoreConfig('trans_email/ident_custom4/name');

有没有办法做这样的事情?

$emailTemplate->send($salesData && $salesData2, $product->getStoreId(), $emailTemplateVariables);

似乎很简单但我的大脑今天没有工作。以上不起作用。

我也试过像这样的foreach:

$emails = (Mage::getStoreConfig('trans_email/ident_custom4/email')) && (Mage::getStoreConfig('trans_email/ident_custom3/email'));

foreach ($emails as $email) $emailTemplate->send($email, $product->getStoreId(), $emailTemplateVariables);

完整方法:

private function _sendStatusMail($product)
    {
        $emailTemplate = Mage::getModel('core/email_template');
        $emailTemplate->loadDefault('elic_productnotification_tpl');
        $emailTemplate->setTemplateSubject('Product has been disabled');

        $salesData['email']  = Mage::getStoreConfig('trans_email/ident_custom3/email');
        $salesData['name']   = Mage::getStoreConfig('trans_email/ident_custom3/name');
        $salesData2['email'] = Mage::getStoreConfig('trans_email/ident_custom4/email');
        $salesData2['name']  = Mage::getStoreConfig('trans_email/ident_custom4/name');

        $emailTemplate->setSenderName($salesData['name']);
        $emailTemplate->setSenderEmail($salesData['email']);
        $emailTemplate->setSenderName($salesData2['name']);
        $emailTemplate->setSenderEmail($salesData2['email']);

        $emailTemplateVariables['style_number']   = $product->getElicStyle();
        $emailTemplateVariables['frame_color']    = $product->getAttributeText('frame_color');
        $emailTemplateVariables['size']           = $product->getAttributeText('size');
        $emailTemplateVariables['elic_color'] = $product->getAttributeText('elic_color');
        $emailTemplateVariables['store_name']     = Mage::getModel('core/store')->load($product->getStoreId())->getName();
        $emailTemplateVariables['product_name']   = Mage::getModel('catalog/product')->load($product->getId())->getName();
        $emailTemplateVariables['product_sku']    = $product->getSku();
        $emailTemplateVariables['dates']          = date("F jS Y h:i:sA", strtotime('-7 hours'));

        $email = (Mage::getStoreConfig('trans_email/ident_custom3/email'));
        foreach ($emails as $email) $emailTemplate->send($email, $product->getStoreId(), $emailTemplateVariables);
   }

2 个答案:

答案 0 :(得分:0)

您无法将两个数组与logical AND &&合并。

相反,请改用两个循环:

$emailsA = Mage::getStoreConfig('trans_email/ident_custom4/email');
$emailsB = Mage::getStoreConfig('trans_email/ident_custom3/email');

foreach ($emailsA as $email) $emailTemplate->send($email, $product->getStoreId(), $emailTemplateVariables);
foreach ($emailsB as $email) $emailTemplate->send($email, $product->getStoreId(), $emailTemplateVariables);

自行决定将重复的代码提取到函数中。

答案 1 :(得分:0)

这样的事情可能有所帮助。

function mail_walk($name,$body,$subject,$email) {
$emailTemplate = Mage::getModel('core/email');
$emailTemplate->setFromName($name);
$emailTemplate->setBody($body);
$emailTemplate->setSubject($subject);
$emailTemplate->setType('html');
$emailTemplate->setToEmail($email);
$emailTemplate->send();
}

$salesData[0]['name']   = Mage::getStoreConfig('trans_email/ident_custom3/name');
$salesData[0]['email']  = Mage::getStoreConfig('trans_email/ident_custom3/email');
$salesData[1]['name']   = Mage::getStoreConfig('trans_email/ident_custom4/name');
$salesData[1]['email']  = Mage::getStoreConfig('trans_email/ident_custom4/email');

foreach ($salesData as $data) {
mail_walk($data['name'],'email body here...','Subject in here...',$data['email']);
}