protected function SmtpMailSystem::_remove_headers in SMTP Authentication Support 7
Same name and namespace in other branches
- 7.2 smtp.mail.inc \SmtpMailSystem::_remove_headers()
Strips the headers from the body part.
Parameters
input: A string containing the body part to strip.
Return value
A string with the stripped body part.
1 call to SmtpMailSystem::_remove_headers()
File
- ./smtp.mail.inc, line 727 
- The code processing mail in the smtp module.
Class
- SmtpMailSystem
- Modify the drupal mail system to use smtp when sending emails. Include the option to choose between plain text or HTML
Code
protected function _remove_headers($input) {
  $part_array = explode("\n", $input);
  // will strip these headers according to RFC2045
  $headers_to_strip = array(
    'Content-Type',
    'Content-Transfer-Encoding',
    'Content-ID',
    'Content-Disposition',
  );
  $pattern = '/^(' . implode('|', $headers_to_strip) . '):/';
  while (count($part_array) > 0) {
    // ignore trailing spaces/newlines
    $line = rtrim($part_array[0]);
    // if the line starts with a known header string
    if (preg_match($pattern, $line)) {
      $line = rtrim(array_shift($part_array));
      // remove line containing matched header.
      // if line ends in a ';' and the next line starts with four spaces, it's a continuation
      // of the header split onto the next line. Continue removing lines while we have this condition.
      while (substr($line, -1) == ';' && count($part_array) > 0 && substr($part_array[0], 0, 4) == '    ') {
        $line = rtrim(array_shift($part_array));
      }
    }
    else {
      // no match header, must be past headers; stop searching.
      break;
    }
  }
  $output = implode("\n", $part_array);
  return $output;
}