1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
<?php
# 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 )
{
global $wgUser, $wgSMTP, $wgOutputEncoding, $wgErrorString;
$qto = wfQuotedPrintable( $to );
if (is_array( $wgSMTP ))
{
require_once( "Mail.php" );
$timestamp = time();
$headers["From"] = $from;
/* removing to: field as it should be set by the send() function below
UNTESTED - Hashar */
// $headers["To"] = $qto;
$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" .
"Reply-To: {$from}\r\n" .
"X-Mailer: MediaWiki interuser e-mailer";
$wgErrorString = "";
set_error_handler( "mailErrorHandler" );
mail( $to, $subject, $body, $headers );
restore_error_handler();
return $wgErrorString;
}
}
function mailErrorHandler( $code, $string ) {
global $wgErrorString;
$wgErrorString = preg_replace( "/^mail\(\): /", "", $string );
}
?>
|