function execute($process, $event) { $parameters = $process->attribute('parameter_list'); $co = eZContentObject::fetch($parameters['object_id']); $parent = eZContentObjectTreeNode::fetch($co->attribute('main_parent_node_id')); $parentco = $parent->attribute('object'); $newslettertype = eZPersistentObject::fetchObject(eZNewsletterType::definition(), null, array('article_pool_object_id' => $parentco->attribute('id'), 'status' => eZNewsletterType_StatusPublished)); $list = eZNewsletter::fetchByContentObject($parameters['object_id']); if (empty($list) and is_object($newslettertype)) { $newsletter = eZNewsletter::create($co->attribute('name'), $co->attribute('owner_id'), $newslettertype->attribute('id')); $newsletter->setAttribute('contentobject_id', $parameters['object_id']); $newsletter->setAttribute('template_to_use', 'mobotixnewsletter'); $newsletter->setAttribute('contentobject_version', $parameters['version']); $newsletter->store(); $newsletter->publish(); } return eZWorkflowType::STATUS_ACCEPTED; }
function fetchNewsletterListByType($typeID, $offset = 0, $limit = 10, $isSend = null, $isDraft = null, $grouping = null, $recurring = null) { $sendStatus = false; $draftStatus = eZNewsletterType::StatusPublished; if ($isDraft === true && ($isSend === true || $isSend === false)) { $sendStatus = array(array(eZNewsletter::SendStatusNone)); $draftStatus = eZNewsletterType::StatusDraft; } else { if ($isSend === false) { $sendStatus = array(array(eZNewsletter::SendStatusNone, eZNewsletter::SendStatusBuldingList, eZNewsletter::SendStatusSending)); } else { if ($isSend === true) { $sendStatus = eZNewsletter::SendStatusFinished; } } } if ($recurring === true) { $sendStatus = array(array(eZNewsletter::SendStatusNone, eZNewsletter::SendStatusStopped)); } $result = false; $newsletterType = eZNewsletterType::fetch($typeID); if ($newsletterType) { $result = $newsletterType->fetchNewsletterList($offset, $limit, $sendStatus, $draftStatus, true, $grouping, $recurring); } return array('result' => $result); }
if (isset($Params['BrowseSelected']) && $Params['BrowseSelected'] == 'article') { if ($http->hasPostVariable('SelectedObjectIDArray')) { $articlePoolNodeID = $http->postVariable('SelectedObjectIDArray'); if (isset($articlePoolNodeID) && !$http->hasPostVariable('BrowseCancelButton')) { $newsletterType->setAttribute('article_pool_object_id', $articlePoolNodeID[0]); $newsletterType->store(); } } } else { if (isset($Params['BrowseSelected']) && $Params['BrowseSelected'] == 'inbox') { if ($http->hasPostVariable('SelectedObjectIDArray')) { $inboxNodeID = $http->postVariable('SelectedObjectIDArray'); if (isset($inboxNodeID) && !$http->hasPostVariable('BrowseCancelButton')) { $newsletterType->setAttribute('inbox_id', $inboxNodeID[0]); $newsletterType->store(); } } } } $tpl = eZNewsletterTemplateWrapper::templateInit(); $tpl->setVariable('warning', $warning); $tpl->setVariable('newsletter_type', $newsletterType); $tpl->setVariable('contentclass_list', eZNewsletterType::unserializeArray($newsletterType->attribute('contentclass_list'))); $tpl->setVariable('selected_designs', eZNewsletterType::unserializeArray($newsletterType->attribute('allowed_designs'))); // countAll(eZSendNewsletterItem::definition()) ) ) erzeugt einen sql fehler $tpl->setVariable('subscription_list_array', eZSubscriptionList::fetchList(0, eZSubscriptionList::countAll(eZSubscriptionList::StatusPublished))); $Result = array(); $Result['newsletter_menu'] = 'design:parts/content/newsletter_menu.tpl'; $Result['left_menu'] = 'design:parts/content/eznewsletter_menu.tpl'; $Result['content'] = $tpl->fetch("design:{$extension}/edit_newslettertype.tpl"); $Result['path'] = array(array('url' => false, 'text' => ezpI18n::tr('eznewsletter/edit_newslettertype', 'Edit newsletter type')));
if (!$subscriptionList->siteaccessAllowed()) { return $Module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel'); } $warning = array(); if ($http->hasPostVariable('StoreButton') || $http->hasPostVariable('GenerateURLHash') || $http->hasPostVariable('BrowseRelatedObject_1') || $http->hasPostVariable('DeleteRelatedObject_1') || $http->hasPostVariable('BrowseRelatedObject_2') || $http->hasPostVariable('DeleteRelatedObject_2') || $http->hasPostVariable('BrowseRelatedObject_3') || $http->hasPostVariable('DeleteRelatedObject_3')) { $subscriptionList->setAttribute('name', $http->postVariable('Name')); $subscriptionList->setAttribute('description', $http->postVariable('Description')); $subscriptionList->setAttribute('login_steps', $http->postVariable('LoginSteps')); $subscriptionList->setAttribute('require_password', $http->hasPostVariable('RequirePassword') ? 1 : 0); $subscriptionList->setAttribute('allow_anonymous', $http->hasPostVariable('AllowAnonymous') ? 1 : 0); $subscriptionList->setAttribute('auto_confirm_registered', $http->hasPostVariable('AutoConfirmRegistered') ? 1 : 0); $subscriptionList->setAttribute('auto_approve_registered', $http->hasPostVariable('AutoApproveRegistered') ? 1 : 0); $subscriptionList->setAttribute('url_type', $http->postVariable('RegistrationURL')); $subscriptionList->setAttribute('url', $http->postVariable('URLName')); if ($http->hasPostVariable('AllowedSiteaccesses') && 0 < count($http->postVariable('AllowedSiteaccesses'))) { $subscriptionList->setAttribute('allowed_siteaccesses', eZNewsletterType::serializeArray($http->postVariable('AllowedSiteaccesses'))); } else { $warning[] = ezpI18n::tr('eznewsletter/edit_subscription_list', 'You have to select at least one allowed siteaccess.'); } if ($http->hasPostVariable('GenerateURLHash')) { $subscriptionList->setAttribute('url', md5(mt_rand())); } $subscriptionList->store(); } if (0 === count($warning) && $http->hasPostVariable('StoreButton')) { $subscriptionList->publish(); return $Module->redirectToView('subscription_list', array($subscriptionList->attribute('url_alias'))); } if ($http->hasPostVariable('CancelButton')) { $subscriptionList->removeDraft(); return $Module->redirectToView('list_subscriptions');
$cli->output('Building send list ...'); $conditions = array(); //pregeneration parameter if (in_array('-pregeneration', $_SERVER['argv'])) { //fetch only newsletter with send_date <= in 1 hour $timestamp = time() + 3600; $cli->output('Pregeneration enabled.'); } else { $timestamp = time(); } $conditions = array_merge($conditions, array('send_date' => array('<=', $timestamp))); //newslettertype parameter if (in_array('-newslettertype', $_SERVER['argv'])) { $key = array_search('-newslettertype', $_SERVER['argv']); $newslettertype_id = $_SERVER['argv'][$key + 1]; if (is_numeric($newslettertype_id) && eZNewsletterType::fetch($newslettertype_id)) { $conditions = array_merge($conditions, array('newslettertype_id' => array('=', $newslettertype_id))); $cli->output('Filter for newslettertype <' . $newslettertype_id . '> enabled.'); } else { $cli->output('Invalid id of newslettertype <' . $newslettertype_id . '>!'); eZExecution::cleanup(); eZExecution::setCleanExit(); exit(1); } } $newsletterList = eZNewsletter::fetchListBySendStatus(eZNewsletter::SendStatusNone, eZNewsletter::StatusPublished, true, $conditions); $cli->output('Found ' . count($newsletterList) . ' newsletter.'); foreach ($newsletterList as $newsletter) { $cli->output('Fetching subscriber for newsletter ' . $newsletter->attribute('name')); $newsletter->setAttribute('send_status', eZNewsletter::SendStatusBuldingList); $newsletter->sync();
$Result['left_menu'] = 'design:parts/content/eznewsletter_menu.tpl'; $Result['content'] = $tpl->fetch("design:{$extension}/confirmremove_newsletter.tpl"); $Result['path'] = array(array('url' => false, 'text' => ezpI18n::tr('eznewsletter/list_newslettertype', 'Newsletter types'))); return; } else { if ($http->hasPostVariable('ConfirmRemoveNewsletterButton')) { $newsletterIDArray = $http->sessionVariable('NewsletterList'); $db = eZDB::instance(); $db->begin(); foreach ($newsletterIDArray as $id) { eZNewsletter::removeAll($id); } $db->commit(); return $Module->redirectToView('list_type'); } } } } } } } $viewParameters = array('offset' => $offset, 'limitkey' => isset($userParameters['limitkey']) ? $userParameters['limitkey'] : 1); $newsletterTypeArray = eZNewsletterType::fetchByOffset($offset, $limit, eZNewsletterType::StatusPublished, true, true); $tpl->setVariable('view_parameters', $viewParameters); $tpl->setVariable('limit', $limit); $tpl->setVariable('newsletter_type_array', $newsletterTypeArray); $Result = array(); $Result['newsletter_menu'] = 'design:parts/content/newsletter_menu.tpl'; $Result['left_menu'] = 'design:parts/content/eznewsletter_menu.tpl'; $Result['content'] = $tpl->fetch("design:{$extension}/list_newsletter_type.tpl"); $Result['path'] = array(array('url' => false, 'text' => ezpI18n::tr('eznewsletter/list_newslettertype', 'Newsletter types')));
/*! \file view_newslettertype.php */ $extension = 'eznewsletter'; $base = eZExtension::baseDirectory(); $baseDir = "{$base}/{$extension}/classes/"; $http = eZHTTPTool::instance(); $newsletterTypeID = $Params['NewsletterTypeID']; $Module = $Params['Module']; $newsletterType = eZNewsletterType::fetch($newsletterTypeID); if (!$newsletterType) { return $Module->handleError(eZError::KERNEL_NOT_AVAILABLE, 'kernel'); } $userParameters = $Params['UserParameters']; $offset = isset($userParameters['offset']) ? $userParameters['offset'] : 0; $limitKey = isset($userParameters['limit']) ? $userParameters['limit'] : '1'; $limitList = array('1' => 10, '2' => 25, '3' => 50); $limit = $limitList[(string) $limitKey]; $viewParameters = array('offset' => $offset); $tpl = eZNewsletterTemplateWrapper::templateInit(); $tpl->setVariable('limit', $limit); $tpl->setVariable('limitKey', $limitKey); $tpl->setVariable('offset', $offset); $tpl->setVariable('view_parameters', $viewParameters); $tpl->setVariable('newsletter_type', $newsletterType); //unserialize the contentclass_list, which is stored as imploded arrays $tpl->setVariable('contentclass_list', eZNewsletterType::unserializeArray($newsletterType->attribute('contentclass_list'))); $Result = array(); $Result['newsletter_menu'] = 'design:parts/content/newsletter_menu.tpl'; $Result['left_menu'] = 'design:parts/content/eznewsletter_menu.tpl'; $Result['content'] = $tpl->fetch("design:{$extension}/list_inprogress.tpl"); $Result['path'] = array(array('url' => false, 'text' => ezpI18n::tr('eznewsletter/list_inprogress', 'View newsletter type')));
static function fetchByOffset($offset, $limit, $status = eZNewsletterType::StatusPublished, $asObject = true, $useFilter = false) { $custom_conds = null; if ($useFilter) { $currentAccessArray = $GLOBALS['eZCurrentAccess']; $custom_conds = 'AND allowed_siteaccesses LIKE \'%' . $currentAccessArray['name'] . '%\''; } $newsletterTypeList = eZPersistentObject::fetchObjectList(eZNewsletterType::definition(), null, array('status' => $status), array('id' => 'ASC'), array('offset' => $offset, 'length' => $limit), $asObject, false, null, null, $custom_conds); return $newsletterTypeList; }
static function sendNewsletterMail(eZNewsletter $newsletter, $sendPreview = false) { $sendMailSettings = eZINI::instance('ezsendmailsettings.ini'); $hostname = $sendMailSettings->variable('SendNewsletter', 'Host'); $sys = eZSys::instance(); // Check that the newsletter type exists, if not, process next newsletter if (!$newsletter->attribute('newsletter_type')) { return false; } if ($sendPreview) { // Fetch the draft because the object is not published during preview $contentObject = $newsletter->contentObjectVersion(); } else { $contentObject = $newsletter->contentObject(); } $mailTemplate = $newsletter->generateNewsletter($contentObject); $partCounter = 0; // 4. Go through revceivers, and send emails. if (!$sendPreview) { $idcounter = 0; $sendCount = 0; $skipCount = 0; while ($receiverList = eZSendNewsletterItem::fetchByNewsletterID($newsletter->attribute('id'))) { foreach ($receiverList as $receiver) { $mail = clone $mailTemplate; $userData = $receiver->attribute('user_data'); if (!$userData) { //When no userdata is found, it is usually the result of a deleted subscription, //we mark the mail as being sent, without sending it. $receiver->setAttribute('send_status', eZSendNewsletterItem::SendStatusSent); $receiver->setAttribute('send_ts', time()); $receiver->sync(); continue; } //personalize if set in type $newsletter_type = eZNewsletterType::fetch($newsletter->attribute('newslettertype_id')); if ($newsletter_type->attribute('personalise') === '1') { $mail->personalize($userData, true); } else { $mail->personalize($userData, false); } $mail->generateMessageId($receiver->attribute('id') . '.' . $newsletter->attribute('id')); $mail->to = array(); $mail->addTo(new ezcMailAddress($userData['email'], null, 'utf-8')); $mail->build(); $mailResult = eZNewsletterMailTransport::send($mail, false); $sendCount++; $receiver->setAttribute('send_status', eZSendNewsletterItem::SendStatusSent); $receiver->setAttribute('send_ts', time()); $receiver->sync(); } } return array('sendCount' => $sendCount, 'skipCount' => $skipCount); } else { $mail = clone $mailTemplate; //send preview $user = eZUser::currentUser(); $userObject = $user->attribute('contentobject'); //personalize if set in type $newsletter_type = eZNewsletterType::fetch($newsletter->attribute('newslettertype_id')); if ($newsletter_type->attribute('personalise') === '1') { $mail->personalize(array('name' => $userObject->attribute('name')), true); } else { $mail->personalize(array('name' => $userObject->attribute('name')), false); $newsletterMail = $newsletter->personalize($mail->plainText, array('name' => $userObject->attribute('name')), false); } $mail->addTo(new ezcMailAddress($newsletter->attribute('preview_email'))); $mail->build(); $mailResult = eZNewsletterMailTransport::send($mail, true); } }
static function sendNewsletterMail($newsletter, $sendPreview = false, $previewFormat = false, $receiverLimit = null) { $sendMailSettings = eZINI::instance('ezsendmailsettings.ini'); $replaceMsgIDHost = $sendMailSettings->variable('SendNewsletter', 'ReplaceMessageIDHost'); $newSendHost = $sendMailSettings->variable('SendNewsletter', 'Host'); $hostSettings['replace'] = $replaceMsgIDHost; $hostSettings['host'] = $newSendHost; $mail = new eZNewsletterMail(); $sys = eZSys::instance(); $newsletterMailData = array(); // Check that the newsletter type exists, if not, process next newsletter if (!$newsletter->attribute('newsletter_type')) { return; } $newsletterMailData[eZNewsletter::OutputFormatText] = $newsletter->generateNewsletter(eZNewsletter::OutputFormatText, $sendPreview); $newsletterMailData[eZNewsletter::OutputFormatHTML] = $newsletter->generateNewsletter(eZNewsletter::OutputFormatHTML, $sendPreview); $newsletterMailData[eZNewsletter::OutputFormatExternalHTML] = $newsletter->generateNewsletter(eZNewsletter::OutputFormatExternalHTML, $sendPreview); $newsletterMailData[eZNewsletter::OutputFormatSMS] = $newsletter->generateNewsletter(eZNewsletter::OutputFormatSMS, $sendPreview); $newsletterOutputFormatList = $newsletter->attribute('output_format_list'); $noMimeMessage = "This message is in MIME format. Since your mail reader does not understand\nthis format, some or all of this message may not be legible."; $lineBreak = "\r\n"; $partCounter = 0; $boundary = date("YmdGHjs") . ':' . getmypid() . ':' . $partCounter++; $charset = eZTextCodec::internalCharset(); $contentTypeHtmlPart = "Content-Type: text/html; charset={$charset}"; foreach (array(eZNewsletter::OutputFormatHTML, eZNewsletter::OutputFormatExternalHTML) as $key) { $htmlOutput =& $newsletterMailData[$key]; if ($htmlOutput['imageNameMap']) { $data = $noMimeMessage . $lineBreak; $data .= $lineBreak . '--' . $boundary . $lineBreak; $data .= $contentTypeHtmlPart . $lineBreak; $data .= "Content-Transfer-Encoding: 8bit" . $lineBreak . $lineBreak; $data .= $htmlOutput['body'] . $lineBreak; foreach ($htmlOutput['imageNameMap'] as $id => $filename) { $filename = trim($filename); if (is_readable($filename)) { $mime = eZMimeType::findByURL($filename); $encodedFileContent = chunk_split(base64_encode(file_get_contents($filename)), 76, $lineBreak); $data .= $lineBreak . '--' . $boundary . $lineBreak; $data .= "Content-Type: " . $mime['name'] . ';' . $lineBreak . ' name="' . basename($filename) . '"' . $lineBreak; $data .= "Content-ID: <" . $id . ">" . $lineBreak; $data .= "Content-Transfer-Encoding: base64" . $lineBreak; $original_filename = basename($filename); if ($htmlOutput['imageNameMapName'][$id]) { $original_filename = $htmlOutput['imageNameMapName'][$id]; } $data .= 'Content-Disposition: INLINE;' . $lineBreak . ' filename="' . $original_filename . '"' . $lineBreak . $lineBreak; $data .= $encodedFileContent; } } $data .= $lineBreak . '--' . $boundary . '--'; $htmlOutput['body'] = $data; } else { $data = $noMimeMessage . $lineBreak; $data .= $lineBreak . '--' . $boundary . $lineBreak; $data .= $contentTypeHtmlPart . $lineBreak; $data .= "Content-Transfer-Encoding: 8bit" . $lineBreak . $lineBreak; $data .= $htmlOutput['body'] . $lineBreak; $data .= $lineBreak . '--' . $boundary . '--'; $htmlOutput['body'] = $data; } } // 4. Go through revceivers, and send emails. if (!$sendPreview) { $mail->setSender($newsletterMailData[eZNewsletter::OutputFormatText]['emailSender'], $newsletterMailData[eZNewsletter::OutputFormatText]['emailSenderName']); $idcounter = 0; $sendCount = 0; $skipCount = 0; // HACK! $receiverList = eZSendNewsletterItem::fetchByNewsletterID($newsletter->attribute('id'), 0, $receiverLimit); foreach ($receiverList as $receiver) { $msgid = eZNewsletter::generateMessageId($newsletterMailData[eZNewsletter::OutputFormatText]['emailSender'], $receiver->attribute('id'), $idcounter++, $hostSettings); $mail->setMessageID($msgid); $userData = $receiver->attribute('user_data'); if (!$userData) { //When no userdata is found, it is usually the result of a deleted subscription, //we mark the mail as being sent, without sending it. $receiver->setAttribute('send_status', eZSendNewsletterItem::SendStatusSent); $receiver->setAttribute('send_ts', time()); $receiver->sync(); continue; } // #TODO# IDs expected $userOutputFormatList = explode(',', $userData['output_format']); // #TODO# #echo " ### userOutputFormatList\n"; ok #var_dump( $userOutputFormatList ); #echo " ### newsletterOutputFormatList\n"; ok #var_dump( $newsletterOutputFormatList ); $outputFormat = false; //special case for SMS sending if (in_array(eZNewsletter::OutputFormatSMS, $userOutputFormatList) && in_array(eZNewsletter::OutputFormatSMS, $newsletterOutputFormatList)) { $mail->setContentType("sms", false, false, false, $boundary); $outputFormat = eZNewsletter::OutputFormatSMS; //$mail->setSubject( $userMailData['subject'] ); ### $userMailData is undefined # echo " ### userMailData\n"; # var_dump( $userMailData ); # $mail->setSubject( $userMailData['subject'] ); # $mail->setReceiver( $userData['email'] ); # $mail->setMobile( $userData['mobile'] ); //$mail->setBody( $userMailData['body'] ); ### $userMailData is undefined # $mail->setBody( $userMailData['body'] ); # $mail->setDateTimestamp( $newsletter->attribute( 'send_date') ); $mailResult = eZNewsletterMailTransport::send($mail, false); } //send regular emails if (in_array(eZNewsletter::OutputFormatHTML, $userOutputFormatList) && in_array(eZNewsletter::OutputFormatHTML, $newsletterOutputFormatList)) { $mail->setContentType("multipart/related", false, false, false, $boundary); $outputFormat = eZNewsletter::OutputFormatHTML; } if (in_array(eZNewsletter::OutputFormatExternalHTML, $userOutputFormatList) && in_array(eZNewsletter::OutputFormatExternalHTML, $newsletterOutputFormatList)) { $mail->setContentType("multipart/related", false, false, false, $boundary); $outputFormat = eZNewsletter::OutputFormatExternalHTML; } // ... if ($outputFormat === false) { $outputIntersect = array_intersect($userOutputFormatList, $newsletterOutputFormatList); if (count($outputIntersect) > 0) { $outputFormat = $outputIntersect[0]; } } if ($outputFormat !== false) { //personalize if set in type $newsletter_type = eZNewsletterType::fetch($newsletter->attribute('newslettertype_id')); if ($newsletter_type->attribute('personalise') === '1') { $userMailData = eZNewsletter::personalize($newsletterMailData[$outputFormat], $userData, true); } else { $userMailData = eZNewsletter::personalize($newsletterMailData[$outputFormat], $userData, false); } $mail->setSubject($userMailData['subject']); $mail->setReceiver($userData['email']); $mail->setMobile($userData['mobile']); $mail->setBody($userMailData['body']); $mail->setDateTimestamp($newsletter->attribute('send_date')); //if only SMS was selected, don't send email if (!(in_array(eZNewsletter::OutputFormatSMS, $userOutputFormatList) && count($userOutputFormatList) == 1)) { $mailResult = eZNewsletterMailTransport::send($mail, false); } $sendCount++; } else { // User doesnt want any format we defined - skipped $skipCount++; } $receiver->setAttribute('send_status', eZSendNewsletterItem::SendStatusSent); $receiver->setAttribute('send_ts', time()); $receiver->sync(); } //send SMS messages $instance = eZSMS::instance(); if ($instance->countNumbers() > 0) { echo "Preparing to send " . $instance->countNumbers() . " SMS messages..." . "\n"; $instance->setContent($newsletterMailData[eZNewsletter::OutputFormatSMS]['body']); foreach ($instance->getNumbers() as $number) { echo "Recipient is: " . $number . "\n"; } $reply = $instance->sendMessages(); if ($reply != "") { echo "SMS Reply:" . "\n"; echo $reply; } } //} return array('sendCount' => $sendCount, 'skipCount' => $skipCount); } else { //send preview $msgid = eZNewsletter::generateMessageId($newsletterMailData[eZNewsletter::OutputFormatText]['emailSender'], 0, 0, $hostSettings); $mail->setMessageID($msgid); $userOutputFormatList = $previewFormat; $outputFormat = false; //special case for SMS sending if (in_array(eZNewsletter::OutputFormatSMS, $userOutputFormatList)) { $mail->setContentType("sms", false, false, false, $boundary); $outputFormat = eZNewsletter::OutputFormatSMS; $newsletterMail = $newsletterMailData[eZNewsletter::OutputFormatSMS]; $mail->setSender($newsletterMail['emailSender'], $newsletterMail['emailSenderName']); $mail->setReceiver($newsletter->attribute('preview_email')); $mail->setMobile($newsletter->attribute('preview_mobile')); $mail->setBody($newsletterMail['body']); $mail->setSubject($newsletterMail['subject']); $mail->setDateTimestamp($newsletter->attribute('send_date')); $mailResult = eZNewsletterMailTransport::send($mail, true); } //send regular emails if (in_array(eZNewsletter::OutputFormatHTML, $userOutputFormatList)) { $mail->setContentType("multipart/related", false, false, false, $boundary); $outputFormat = eZNewsletter::OutputFormatHTML; } if (in_array(eZNewsletter::OutputFormatExternalHTML, $userOutputFormatList)) { $mail->setContentType("multipart/related", false, false, false, $boundary); $outputFormat = eZNewsletter::OutputFormatExternalHTML; } if ($outputFormat === false) { $outputIntersect = array_intersect($userOutputFormatList, $newsletterOutputFormatList); if (count($outputIntersect) > 0) { $outputFormat = $outputIntersect[0]; } } if ($outputFormat === false) { $outputFormat = $newsletterOutputFormatList[0]; if ($outputFormat == eZNewsletter::OutputFormatHTML || $outputFormat == eZNewsletter::OutputFormatExternalHTML) { $mail->setContentType("multipart/related", false, false, false, $boundary); } } $user = eZUser::currentUser(); $userObject = $user->attribute('contentobject'); //personalize if set in type $newsletter_type = eZNewsletterType::fetch($newsletter->attribute('newslettertype_id')); if ($newsletter_type->attribute('personalise') === '1') { $newsletterMail = $newsletter->personalize($newsletterMailData[$outputFormat], array('name' => $userObject->attribute('name')), true); } else { $newsletterMail = $newsletter->personalize($newsletterMailData[$outputFormat], array('name' => $userObject->attribute('name')), false); } $mail->setSender($newsletterMail['emailSender']); $mail->setReceiver($newsletter->attribute('preview_email')); $mail->setMobile($newsletter->attribute('preview_mobile')); $mail->setBody($newsletterMail['body']); $mail->setSubject($newsletterMail['subject']); $mail->setDateTimestamp($newsletter->attribute('send_date')); //if only SMS was selected, don't send email if (!(in_array(eZNewsletter::OutputFormatSMS, $userOutputFormatList) && count($userOutputFormatList) == 1)) { $mailResult = eZNewsletterMailTransport::send($mail, true); } //send SMS messages $instance = eZSMS::instance(); if ($instance->countNumbers() > 0) { //echo "Preparing to send ".$instance->countNumbers()." SMS messages..."."\n"; $instance->setContent($newsletterMailData[eZNewsletter::OutputFormatSMS]['body']); $reply = $instance->sendMessages(); if ($reply != "") { echo "SMS Reply:" . "\n"; echo $reply; } } } }