thomascube
2005-11-02 6a35c82a3ca43546198361aefdea94b04ecb5457
program/steps/mail/sendmail.inc
@@ -42,14 +42,12 @@
  global $DB;
  
  // get identity record
  $sql_result = $DB->query(sprintf("SELECT *, email AS mailto
                                    FROM   %s
                                    WHERE  identity_id=%d
                                    AND    user_id=%d
                                    AND    del!='1'",
                                   get_table_name('identities'),
                                   $id,
                                   $_SESSION['user_id']));
  $sql_result = $DB->query("SELECT *, email AS mailto
                            FROM ".get_table_name('identities')."
                            WHERE  identity_id=?
                            AND    user_id=?
                            AND    del<>'1'",
                            $id,$_SESSION['user_id']);
                                   
  if ($DB->num_rows($sql_result))
    {
@@ -67,10 +65,11 @@
/****** check submission and compose message ********/
$mailto_regexp = '/,\s*$/';
$mailto_regexp = array('/,\s*[\r\n]+/', '/[\r\n]+/', '/,\s*$/m');
$mailto_replace = array(' ', ', ', '');
// trip ending ', ' from
$mailto = preg_replace($mailto_regexp, '', $_POST['_to']);
// repalce new lines and strip ending ', '
$mailto = preg_replace($mailto_regexp, $mailto_replace, stripslashes($_POST['_to']));
// decode address strings
$to_address_arr = $IMAP->decode_address_list($mailto);
@@ -92,10 +91,10 @@
// additional recipients
if ($_POST['_cc'])
  $headers['Cc'] = preg_replace($mailto_regexp, '', $_POST['_cc']);
  $headers['Cc'] = preg_replace($mailto_regexp, $mailto_replace, stripslashes($_POST['_cc']));
if ($_POST['_bcc'])
  $headers['Bcc'] = preg_replace($mailto_regexp, '', $_POST['_bcc']);
  $headers['Bcc'] = preg_replace($mailto_regexp, $mailto_replace, stripslashes($_POST['_bcc']));
  
if (strlen($identity_arr['bcc']))
  $headers['Bcc'] = ($headers['Bcc'] ? $headers['Bcc'].', ' : '') . $identity_arr['bcc'];
@@ -147,9 +146,16 @@
  foreach ($_FILES['_attachments']['tmp_name'] as $i => $filepath)
    $MAIL_MIME->addAttachment($filepath, $files['type'][$i], $files['name'][$i], TRUE);
// encoding settings for mail composing
$message_param = array('text_encoding' => '7bit',
                       'html_encoding' => 'quoted-printable',
                       'head_encoding' => 'quoted-printable',
                       'head_charset'  => 'ISO-8859-1',
                       'html_charset'  => 'ISO-8859-1',
                       'text_charset'  => 'ISO-8859-1');
// compose message body and get headers
$msg_body = $MAIL_MIME->get();
$msg_body = $MAIL_MIME->get($message_param);
$msg_subject = $headers['Subject'];
@@ -189,7 +195,11 @@
  unset($headers_php['To'], $headers_php['Subject']);
  $header_str = $MAIL_MIME->txtHeaders($headers_php);
  $sent = mail($mailto, $msg_subject, $msg_body, $header_str, "-f$from");
  if(ini_get('safe_mode'))
    $sent = mail($mailto, $msg_subject, $msg_body, $header_str);
  else
    $sent = mail($mailto, $msg_subject, $msg_body, $header_str, "-f$from");
  }