// ### get newsletter user data through send_item_object
 $newsletterUserObject = $sendItem->attribute('newsletter_user_object');
 $emailReceiver = $newsletterUserObject->attribute('email');
 $emailReceiverName = $newsletterUserObject->attribute('email_name');
 // fetch html & text content of parsed outputxml from senmdobject
 // data of outputformate
 $outputStringArray = $outputFormatStringArray[$outputFormatId]['body'];
 $emailSubject = $outputFormatStringArray[$outputFormatId]['subject'];
 $outputStringArrayNew = array('html' => '', 'text' => '');
 foreach ($outputStringArray as $index => $string) {
     $outputStringArrayNew[$index] = CjwNewsletterUtils::replaceNewsletterMarkers($string, $sendObject, $newsletterUserObject);
 }
 // set x-cjwnl header
 $cjwMail->resetExtraMailHeaders();
 $cjwMail->setExtraMailHeadersByNewsletterSendItem($sendItem);
 $resultArray = $cjwMail->sendEmail($emailSender, $emailSenderName, $emailReceiver, $emailReceiverName, $emailSubject, $outputStringArrayNew);
 $sendResult = $resultArray['send_result'];
 if ($sendResult === true) {
     // emal was send
     $progressMonitor->addEntry("[SEND] {$itemCounter}/{$itemsNotSend}", "Newsletter send item {$id} processed. ");
     // wenn ok als versendet markieren
     $sendItem->setAttribute('status', CjwNewsletterEditionSendItem::STATUS_SEND);
     $sendItem->store();
 } else {
     // error execption
     $exception = $resultArray['send_result'];
     $progressMonitor->addEntry("[FAILED] {$itemCounter}/{$itemsNotSend}", "Newsletter send item {$id} failed. ");
 }
 // parse output_xml with user_content, normal or personalizied?
 // create email
 // send email
 /**
  * This function is only a helpfunction
  *
  * @param $mailTemplate
  * @return unknown_type
  */
 function sendSubcriptionMail($mailTemplate)
 {
     $tplResource = eZTemplateDesignResource::instance();
     $ini = eZINI::instance('site.ini');
     $cjwNewsletterIni = eZINI::instance('cjw_newsletter.ini');
     $hostName = eZSys::hostname();
     // $template = 'design:newsletter/mail/subscription_confirmation.tpl';
     $template = $mailTemplate;
     $newsletterUser = $this;
     include_once 'kernel/common/template.php';
     $tpl = templateInit();
     $tpl->setVariable('newsletter_user', $newsletterUser);
     $tpl->setVariable('hostname', $hostName);
     $templateResult = $tpl->fetch($template);
     // get subject from template var definition
     if ($tpl->hasVariable('subject')) {
         $subject = $tpl->variable('subject');
     }
     $emailSender = $cjwNewsletterIni->variable('NewsletterMailSettings', 'EmailSender');
     $emailSenderName = $cjwNewsletterIni->variable('NewsletterMailSettings', 'EmailSenderName');
     $emailReceiver = $newsletterUser->attribute('email');
     $emailReplyTo = $cjwNewsletterIni->variable('NewsletterMailSettings', 'EmailReplyTo');
     $emailReturnPath = $cjwNewsletterIni->variable('NewsletterMailSettings', 'EmailReturnPath');
     // TODO Namen extrahieren
     $emailReceiverName = '';
     $emailSubject = $subject;
     $emailBody['text'] = $templateResult;
     $cjwMail = new CjwNewsletterMail();
     // x header set for current user
     $cjwMail->setExtraMailHeadersByNewsletterUser($this);
     $cjwMail->setTransportMethodDirectlyFromIni();
     // trigger_error("test error", E_USER_ERROR);
     $sendResult = $cjwMail->sendEmail($emailSender, $emailSenderName, $emailReceiver, $emailReceiverName, $emailSubject, $emailBody, false, 'utf-8', $emailReplyTo, $emailReturnPath);
     return $sendResult;
 }
 // END
 if ($personalizeContent === 1) {
     $searchArray = array_merge($searchArray, array('[[name]]', '[[salutation_name]]', '[[first_name]]', '[[last_name]]'));
     $replaceArray = array_merge($replaceArray, array($newsletterUserObject->attribute('name'), $newsletterUserObject->attribute('salutation_name'), $newsletterUserObject->attribute('first_name'), $newsletterUserObject->attribute('last_name')));
 }
 $outputStringArrayNew = array('html' => '', 'text' => '');
 foreach ($outputStringArray as $index => $string) {
     $outputStringArrayNew[$index] = str_replace($searchArray, $replaceArray, $string);
 }
 // START, replace in subject
 $emailSubject = str_replace($searchArray, $replaceArray, $emailSubject);
 // END
 // set x-cjwnl header
 $cjwMail->resetExtraMailHeaders();
 $cjwMail->setExtraMailHeadersByNewsletterSendItem($sendItem);
 $resultArray = $cjwMail->sendEmail($emailSender, $emailSenderName, $emailReceiver, $emailReceiverName, $emailSubject, $outputStringArrayNew, false, 'utf-8', $emailReplyTo, $emailReturnPath);
 $sendResult = $resultArray['send_result'];
 if ($sendResult === true) {
     // emal was send
     $progressMonitor->addEntry("[SEND] {$itemCounter}/{$itemsNotSend}", "Newsletter send item {$id} processed. ");
     // wenn ok als versendet markieren
     $sendItem->setAttribute('status', CjwNewsletterEditionSendItem::STATUS_SEND);
     $sendItem->store();
 } else {
     // error execption
     $exception = $resultArray['send_result'];
     $progressMonitor->addEntry("[FAILED] {$itemCounter}/{$itemsNotSend}", "Newsletter send item {$id} failed, abort and bounce newsletter user.");
     // abort item if mail returns directly e.g. mailbox not found
     $sendItem->setAttribute('status', CjwNewsletterEditionSendItem::STATUS_ABORT);
     $sendItem->store();
     // bounce send Item