Ignore:
Timestamp:
Dec 6, 2006 4:37:37 PM (6 years ago)
Author:
thomasb
Message:

Optimized memory usage when sending mail; Include SMTP response in log; Fixed wrong header encoding

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/roundcubemail/program/steps/mail/sendmail.inc

    r395 r399  
    168168// compose headers array 
    169169$headers = array('Date' => date('D, j M Y H:i:s O'), 
    170                  'From' => $identity_arr['string'], 
     170                 'From' => rcube_charset_convert($identity_arr['string'], $CHARSET, $message_charset), 
    171171                 'To'   => rcube_charset_convert($mailto, $input_charset, $message_charset)); 
    172172 
     
    296296 
    297297// compose message body and get headers 
    298 $msg_body = &$MAIL_MIME->get($message_param); 
     298$msg_body = $MAIL_MIME->get($message_param); 
     299// unset to save memory. 
     300unset($MAIL_MIME->_parts); 
    299301 
    300302$msg_subject = $headers['Subject']; 
    301303 
    302304if ($MBSTRING && function_exists("mb_encode_mimeheader")) 
    303   $headers['Subject'] = mb_encode_mimeheader($headers['Subject'], $message_charset); 
     305{ 
     306  mb_internal_encoding($CHARSET); 
     307  $headers['Subject'] = mb_encode_mimeheader($headers['Subject'], $message_charset, 'Q'); 
     308} 
    304309 
    305310// Begin SMTP Delivery Block  
     
    325330   
    326331    // send message 
    327     $sent = smtp_mail($from, $a_recipients, $header_str, $msg_body); 
     332    $smtp_response = array(); 
     333    $sent = smtp_mail($from, $a_recipients, $header_str, $msg_body, $smtp_response); 
    328334   
    329335    // log error 
     
    334340                        'line' => __LINE__, 
    335341                        'file' => __FILE__, 
    336                         'message' => "SMTP error: $SMTP_ERROR"), TRUE, FALSE); 
     342                        'message' => "SMTP error: ".join("\n", $smtp_response)), TRUE, FALSE); 
    337343      } 
    338344    } 
     
    447453  if ($CONFIG['smtp_log']) 
    448454    { 
    449     $log_entry = sprintf("[%s] User: %d on %s; Message for %s; Subject: %s\n", 
     455    $log_entry = sprintf("[%s] User: %d on %s; Message for %s; %s\n", 
    450456                 date("d-M-Y H:i:s O", mktime()), 
    451457                 $_SESSION['user_id'], 
    452458                 $_SERVER['REMOTE_ADDR'], 
    453459                 $mailto, 
    454                  $msg_subject); 
     460                 !empty($smtp_response) ? join('; ', $smtp_response) : ''); 
    455461 
    456462    if ($fp = @fopen($CONFIG['log_dir'].'/sendmail', 'a')) 
Note: See TracChangeset for help on using the changeset viewer.