--- common.inc 2008-12-09 19:52:21.000000000 +0000 +++ common.inc 2008-12-09 19:53:00.000000000 +0000 @@ -1988,12 +1988,28 @@ function drupal_mail($mailkey, $to, $sub foreach ($headers as $name => $value) { $mimeheaders[] = $name .': '. mime_header_encode($value); } - return mail( - $to, - mime_header_encode($subject), - str_replace("\r", '', $body), - join("\n", $mimeheaders) - ); + // Specify the envelope Return-Path address in the additional_parameters + // of mail() to overwrite the server's default Return-Path address + $return_path = mime_header_encode($headers['Return-Path']); + + if ($return_path && !ini_get('safe_mode')) { + return mail( + $to, + mime_header_encode($subject), + str_replace("\r", '', $body), + join("\n", $mimeheaders), + '-f'. $return_path + ); + } + else { + return mail( + $to, + mime_header_encode($subject), + str_replace("\r", '', $body), + join("\n", $mimeheaders) + ); + } + } }