/** * This method converts an sends mails. * * @param array $mailconf Mail configuration * @param array $orderdata Order data * @param string $template Template * * @return bool of \TYPO3\CMS\Core\Mail\MailMessage */ protected function ordermoveSendMail(array $mailconf, array &$orderdata, &$template) { // First line is subject $parts = explode(chr(10), $mailconf['plain']['content'], 2); // add mail subject $mailconf['alternateSubject'] = trim($parts[0]); // replace plaintext content $mailconf['plain']['content'] = trim($parts[1]); /** * Convert Text to charset */ $this->csConvObj->initCharset('utf-8'); $this->csConvObj->initCharset('8bit'); $mailconf['plain']['content'] = $this->csConvObj->conv($mailconf['plain']['content'], 'utf-8', 'utf-8'); $mailconf['alternateSubject'] = $this->csConvObj->conv($mailconf['alternateSubject'], 'utf-8', 'utf-8'); if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['commerce/Classes/Hook/class.tx_commerce_ordermailhooks.php']['ordermoveSendMail'])) { GeneralUtility::deprecationLog(' hook $GLOBALS[\'TYPO3_CONF_VARS\'][\'EXTCONF\'][\'commerce/Classes/Hook/class.tx_commerce_ordermailhooks.php\'][\'ordermoveSendMail\'] is deprecated since commerce 1.0.0, it will be removed in commerce 1.4.0, please use instead $GLOBALS[\'TYPO3_CONF_VARS\'][\'EXTCONF\'][\'commerce/Classes/Hook/OrdermailHooks.php\'][\'ordermoveSendMail\'] '); foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['commerce/Classes/Hook/class.tx_commerce_ordermailhooks.php']['ordermoveSendMail'] as $classRef) { $hookObj = GeneralUtility::getUserObj($classRef); if (method_exists($hookObj, 'postOrdermoveSendMail')) { $hookObj->postOrdermoveSendMail($mailconf, $orderdata, $template); } } } if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['commerce/Classes/Hook/OrdermailHooks.php']['ordermoveSendMail'])) { foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['commerce/Classes/Hook/OrdermailHooks.php']['ordermoveSendMail'] as $classRef) { $hookObj = GeneralUtility::getUserObj($classRef); if (method_exists($hookObj, 'postOrdermoveSendMail')) { $hookObj->postOrdermoveSendMail($mailconf, $orderdata, $template); } } } return Tx_Commerce_Utility_GeneralUtility::sendMail($mailconf); }
/** * Send admin mail * Also performes a charset Conversion for the mail, including Sender * * @param int $orderUid Order ID * @param array $orderData Collected Order Data form PI3 * * @return bool TRUE on success */ public function sendAdminMail($orderUid, array $orderData) { $hookObjectsArr = $this->getHookObjectArray('sendAdminMail'); if (is_array($GLOBALS['TSFE']->fe_user->user && strlen($GLOBALS['TSFE']->fe_user->user['email']))) { $userMail = $GLOBALS['TSFE']->fe_user->user['email']; } else { $userMail = $this->sessionData['billing']['email']; } if (is_array($GLOBALS['TSFE']->fe_user->user && strlen($GLOBALS['TSFE']->fe_user->user['email']))) { $userName = $GLOBALS['TSFE']->fe_user->user['name'] . ' ' . $GLOBALS['TSFE']->fe_user->user['surname']; } else { $userName = $this->sessionData['billing']['name'] . ' ' . $this->sessionData['billing']['surname']; } if ($this->conf['adminmail.']['from'] || $userMail) { /** * Checkout controller * * @var $adminMailObj Tx_Commerce_Controller_CheckoutController */ $adminMailObj = GeneralUtility::makeInstance('Tx_Commerce_Controller_CheckoutController'); $adminMailObj->conf = $this->conf; $adminMailObj->pi_setPiVarDefaults(); $adminMailObj->cObj = $this->cObj; $adminMailObj->pi_loadLL(); $adminMailObj->staticInfo =& $this->staticInfo; $adminMailObj->currency = $this->currency; $adminMailObj->showCurrency = $this->conf['adminmail.']['showCurrency']; $adminMailObj->templateCode = $this->cObj->fileResource($this->conf['adminmail.']['templateFile']); $adminMailObj->generateLanguageMarker(); $adminMailObj->userData = $this->userData; foreach ($hookObjectsArr as $hookObj) { if (method_exists($hookObj, 'preGenerateMail')) { $hookObj->preGenerateMail($adminMailObj, $this); } } $mailcontent = $adminMailObj->generateMail($orderUid, $orderData); /** * Basket * * @var $basket Tx_Commerce_Domain_Model_Basket */ $basket =& $GLOBALS['TSFE']->fe_user->tx_commerce_basket; foreach ($hookObjectsArr as $hookObj) { if (method_exists($hookObj, 'PostGenerateMail')) { $hookObj->PostGenerateMail($adminMailObj, $this, $basket, $mailcontent, $this); } } $htmlContent = ''; if ($this->conf['adminmail.']['useHtml'] == '1' && $this->conf['adminmail.']['templateFileHtml']) { $adminMailObj->templateCode = $this->cObj->fileResource($this->conf['adminmail.']['templateFileHtml']); $htmlContent = $adminMailObj->generateMail($orderUid, $orderData, array()); $adminMailObj->isHtmlMail = TRUE; foreach ($hookObjectsArr as $hookObj) { if (method_exists($hookObj, 'PostGenerateMail')) { $hookObj->PostGenerateMail($adminMailObj, $this, $basket, $htmlContent); } } unset($adminMailObj->isHtmlMail); } // Moved to plainMailEncoded // First line is subject $parts = explode(chr(10), $mailcontent, 2); $subject = trim($parts[0]); $plainMessage = trim($parts[1]); // Check if charset ist set by TS // Otherwise set to default Charset if (!$this->conf['adminmail.']['charset']) { $this->conf['adminmail.']['charset'] = $GLOBALS['TSFE']->renderCharset; } // Checck if mailencoding ist set // Otherwise set to 8bit if (!$this->conf['adminmail.']['encoding ']) { $this->conf['adminmail.']['encoding '] = '8bit'; } // Convert Text to charset $GLOBALS['TSFE']->csConvObj->initCharset($GLOBALS['TSFE']->renderCharset); $GLOBALS['TSFE']->csConvObj->initCharset(strtolower($this->conf['adminmail.']['charset'])); $plainMessage = $GLOBALS['TSFE']->csConvObj->conv($plainMessage, $GLOBALS['TSFE']->renderCharset, strtolower($this->conf['adminmail.']['charset'])); $subject = $GLOBALS['TSFE']->csConvObj->conv($subject, $GLOBALS['TSFE']->renderCharset, strtolower($this->conf['adminmail.']['charset'])); $usernameMailencoded = $GLOBALS['TSFE']->csConvObj->specCharsToASCII($GLOBALS['TSFE']->renderCharset, $userName); if ($this->debug) { print '<b>Adminmail from </b><pre>' . $plainMessage . '</pre>' . LF; } // Mailconf for tx_commerce_div::sendMail($mailconf); $recipient = array(); if ($this->conf['adminmail.']['cc']) { $recipient = GeneralUtility::trimExplode(',', $this->conf['adminmail.']['cc']); } if (is_array($recipient)) { array_push($recipient, $this->conf['adminmail.']['mailto']); } $mailconf = array('plain' => array('content' => $plainMessage, 'subject' => $subject), 'html' => array('content' => $htmlContent, 'path' => '', 'useHtml' => $this->conf['adminmail.']['useHtml']), 'defaultCharset' => $this->conf['adminmail.']['charset'], 'encoding' => $this->conf['adminmail.']['encoding'], 'attach' => $this->conf['adminmail.']['attach.'], 'alternateSubject' => $this->conf['adminmail.']['alternateSubject'], 'recipient' => implode(',', $recipient), 'recipient_copy' => $this->conf['adminmail.']['bcc'], 'replyTo' => $this->conf['adminmail.']['from'], 'priority' => $this->conf['adminmail.']['priority'], 'callLocation' => 'sendAdminMail', 'additionalData' => $this); // Check if user mail is set if ($userMail && $usernameMailencoded && $this->conf['adminmail.']['sendAsUser'] == 1) { $mailconf['fromEmail'] = $userMail; $mailconf['fromName'] = $usernameMailencoded; } else { $mailconf['fromEmail'] = $this->conf['adminmail.']['from']; $mailconf['fromName'] = $this->conf['adminmail.']['from_name']; } Tx_Commerce_Utility_GeneralUtility::sendMail($mailconf); return TRUE; } return FALSE; }