[TASK] Encapsulate bootstrap base code
[Packages/TYPO3.CMS.git] / t3lib / class.t3lib_formmail.php
index d87f0af..78f6a30 100644 (file)
  *
  * Revised for TYPO3 3.6 July/2003 by Kasper Skårhøj
  *
- * @author     Kasper Skårhøj <kasperYYYY@typo3.com>
+ * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
 
-
 /**
  * Formmail class, used by the TYPO3 "cms" extension (default frontend) to send email forms.
  *
- * @author     Kasper Skårhøj <kasperYYYY@typo3.com>
+ * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  * @package TYPO3
  * @subpackage t3lib
  * @see tslib_fe::sendFormmail(), t3lib/formmail.php
  */
 class t3lib_formmail {
        protected $reserved_names = 'recipient,recipient_copy,auto_respond_msg,auto_respond_checksum,redirect,subject,attachment,from_email,from_name,replyto_email,replyto_name,organisation,priority,html_enabled,quoted_printable,submit_x,submit_y';
-       protected $dirtyHeaders = array(); // collection of suspicious header data, used for logging
+               // Collection of suspicious header data, used for logging
+       protected $dirtyHeaders = array();
 
        protected $characterSet;
        protected $subject;
@@ -82,9 +82,9 @@ class t3lib_formmail {
         * [html_enabled]:              If mail is sent as html
         * [use_base64]:                If set, base64 encoding will be used instead of quoted-printable
         *
-        * @param       array           Contains values for the field names listed above (with slashes removed if from POST input)
-        * @param       boolean         Whether to base64 encode the mail content
-        * @return      void
+        * @param array $valueList Contains values for the field names listed above (with slashes removed if from POST input)
+        * @param boolean $base64 Whether to base64 encode the mail content
+        * @return void
         */
        function start($valueList, $base64 = FALSE) {
 
@@ -96,6 +96,9 @@ class t3lib_formmail {
                } elseif ($GLOBALS['TSFE']->metaCharset != $GLOBALS['TSFE']->renderCharset) {
                                // Use metaCharset for mail if different from renderCharset
                        $this->characterSet = $GLOBALS['TSFE']->metaCharset;
+               } else {
+                               // Otherwise use renderCharset as default
+                       $this->characterSet = $GLOBALS['TSFE']->renderCharset;
                }
 
                if ($base64 || $valueList['use_base64']) {
@@ -103,7 +106,7 @@ class t3lib_formmail {
                }
 
                if (isset($valueList['recipient'])) {
-                               // convert form data from renderCharset to mail charset
+                               // Convert form data from renderCharset to mail charset
                        $this->subject = ($valueList['subject'])
                                        ? $valueList['subject']
                                        : 'Formmail on ' . t3lib_div::getIndpEnv('HTTP_HOST');
@@ -132,7 +135,7 @@ class t3lib_formmail {
 
                        $this->priority = ($valueList['priority']) ? t3lib_utility_Math::forceIntegerInRange($valueList['priority'], 1, 5) : 3;
 
-                               // auto responder
+                               // Auto responder
                        $this->autoRespondMessage = (trim($valueList['auto_respond_msg']) && $this->fromAddress)
                                        ? trim($valueList['auto_respond_msg'])
                                        : '';
@@ -161,7 +164,7 @@ class t3lib_formmail {
                                                $space = (strlen($val) > 60) ? LF : '';
                                                $val = (is_array($val) ? implode($val, LF) : $val);
 
-                                                       // convert form data from renderCharset to mail charset (HTML may use entities)
+                                                       // Convert form data from renderCharset to mail charset (HTML may use entities)
                                                $plainTextValue = $val;
                                                $HtmlValue = htmlspecialchars($val);
 
@@ -177,10 +180,10 @@ class t3lib_formmail {
                        $this->plainContent = $plainTextContent;
 
                        if ($valueList['html_enabled']) {
-                               $this->mailMessage->setBody($htmlContent, 'text/html');
-                               $this->mailMessage->addPart($plainTextContent, 'text/plain');
+                               $this->mailMessage->setBody($htmlContent, 'text/html', $this->characterSet);
+                               $this->mailMessage->addPart($plainTextContent, 'text/plain', $this->characterSet);
                        } else {
-                               $this->mailMessage->setBody($plainTextContent, 'text/plain');
+                               $this->mailMessage->setBody($plainTextContent, 'text/plain', $this->characterSet);
                        }
 
                        for ($a = 0; $a < 10; $a++) {
@@ -220,13 +223,12 @@ class t3lib_formmail {
                        if ($valueList['recipient_copy']) {
                                $this->mailMessage->setCc($this->parseAddresses($valueList['recipient_copy']));
                        }
-                       if ($this->characterSet) {
-                               $this->mailMessage->setCharset($this->characterSet);
-                       }
+                       $this->mailMessage->setCharset($this->characterSet);
+
                                // Ignore target encoding. This is handled automatically by Swift Mailer and overriding the defaults
                                // is not worth the trouble
 
-                               // log dirty header lines
+                               // Log dirty header lines
                        if ($this->dirtyHeaders) {
                                t3lib_div::sysLog('Possible misuse of t3lib_formmail: see TYPO3 devLog', 'Core', 3);
                                if ($GLOBALS['TYPO3_CONF_VARS']['SYS']['enable_DLOG']) {
@@ -239,8 +241,8 @@ class t3lib_formmail {
        /**
         * Checks string for suspicious characters
         *
-        * @param       string  String to check
-        * @return      string  Valid or empty string
+        * @param string $string String to check
+        * @return string Valid or empty string
         */
        protected function sanitizeHeaderString($string) {
                $pattern = '/[\r\n\f\e]/';
@@ -269,10 +271,10 @@ class t3lib_formmail {
                $addressList = array();
                foreach ($addresses as $address) {
                        if ($address->personal) {
-                               // item with name found ( name <email@example.org> )
+                               // Item with name found ( name <email@example.org> )
                                $addressList[$address->mailbox . '@' . $address->host] = $address->personal;
                        } else {
-                               // item without name found ( email@example.org )
+                               // Item without name found ( email@example.org )
                                $addressList[] = $address->mailbox . '@' . $address->host;
                        }
                }
@@ -297,8 +299,8 @@ class t3lib_formmail {
                if ($this->autoRespondMessage) {
                        $theParts = explode('/', $this->autoRespondMessage, 2);
                        $theParts[0] = str_replace('###SUBJECT###', $this->subject, $theParts[0]);
-                       $theParts[1] = str_replace("/", LF, $theParts[1]);
-                       $theParts[1] = str_replace("###MESSAGE###", $this->plainContent, $theParts[1]);
+                       $theParts[1] = str_replace('/', LF, $theParts[1]);
+                       $theParts[1] = str_replace('###MESSAGE###', $this->plainContent, $theParts[1]);
 
                                /** @var $autoRespondMail t3lib_mail_Message */
                        $autoRespondMail = t3lib_div::makeInstance('t3lib_mail_Message');
@@ -323,9 +325,4 @@ class t3lib_formmail {
        }
 }
 
-
-if (defined('TYPO3_MODE') && isset($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_formmail.php'])) {
-       include_once($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_formmail.php']);
-}
-
 ?>
\ No newline at end of file