2004-02-28 07:08:13 +00:00
|
|
|
<?php
|
2004-02-27 12:48:07 +00:00
|
|
|
|
|
|
|
|
# This function will perform a direct (authenticated) login to
|
|
|
|
|
# a SMTP Server to use for mail relaying if 'wgSMTP' specifies an
|
|
|
|
|
# array of parameters. It requires PEAR:Mail to do that.
|
|
|
|
|
# Otherwise it just uses the standard PHP 'mail' function.
|
|
|
|
|
function userMailer( $to, $from, $subject, $body )
|
|
|
|
|
{
|
2004-04-01 13:05:20 +00:00
|
|
|
global $wgUser, $wgSMTP, $wgOutputEncoding, $wgErrorString;
|
2004-02-27 12:48:07 +00:00
|
|
|
|
|
|
|
|
$qto = wfQuotedPrintable( $to );
|
|
|
|
|
|
|
|
|
|
if (is_array( $wgSMTP ))
|
|
|
|
|
{
|
2004-05-07 13:43:10 +00:00
|
|
|
require_once( "Mail.php" );
|
2004-02-27 12:48:07 +00:00
|
|
|
|
|
|
|
|
$timestamp = time();
|
|
|
|
|
|
|
|
|
|
$headers["From"] = $from;
|
2004-05-20 03:04:14 +00:00
|
|
|
/* removing to: field as it should be set by the send() function below
|
|
|
|
|
UNTESTED - Hashar */
|
|
|
|
|
// $headers["To"] = $qto;
|
2004-02-27 12:48:07 +00:00
|
|
|
$headers["Subject"] = $subject;
|
|
|
|
|
$headers["MIME-Version"] = "1.0";
|
|
|
|
|
$headers["Content-type"] = "text/plain; charset={$wgOutputEncoding}";
|
|
|
|
|
$headers["Content-transfer-encoding"] = "8bit";
|
|
|
|
|
$headers["Message-ID"] = "<{$timestamp}" . $wgUser->getName() . "@" . $wgSMTP["IDHost"] . ">";
|
|
|
|
|
$headers["X-Mailer"] = "MediaWiki interuser e-mailer";
|
|
|
|
|
|
|
|
|
|
// Create the mail object using the Mail::factory method
|
|
|
|
|
$mail_object =& Mail::factory("smtp", $wgSMTP);
|
|
|
|
|
|
|
|
|
|
$mailResult =& $mail_object->send($to, $headers, $body);
|
|
|
|
|
|
|
|
|
|
# Based on the result return an error string,
|
|
|
|
|
if ($mailResult === true)
|
|
|
|
|
return "";
|
|
|
|
|
else if (is_object($mailResult))
|
|
|
|
|
return $mailResult->getMessage();
|
|
|
|
|
else
|
|
|
|
|
return "Mail object return unknown error.";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$headers =
|
|
|
|
|
"MIME-Version: 1.0\r\n" .
|
|
|
|
|
"Content-type: text/plain; charset={$wgOutputEncoding}\r\n" .
|
|
|
|
|
"Content-transfer-encoding: 8bit\r\n" .
|
|
|
|
|
"From: {$from}\r\n" .
|
|
|
|
|
"X-Mailer: MediaWiki interuser e-mailer";
|
2004-04-01 13:05:20 +00:00
|
|
|
|
|
|
|
|
$wgErrorString = "";
|
|
|
|
|
set_error_handler( "mailErrorHandler" );
|
2004-02-27 12:48:07 +00:00
|
|
|
mail( $to, $subject, $body, $headers );
|
2004-04-01 13:05:20 +00:00
|
|
|
restore_error_handler();
|
|
|
|
|
|
|
|
|
|
return $wgErrorString;
|
2004-02-27 12:48:07 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2004-04-01 13:05:20 +00:00
|
|
|
function mailErrorHandler( $code, $string ) {
|
|
|
|
|
global $wgErrorString;
|
|
|
|
|
$wgErrorString = preg_replace( "/^mail\(\): /", "", $string );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
?>
|