Exemplo n.º 1
0
    /**
     * 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);
    }
Exemplo n.º 2
0
 /**
  * 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;
 }