Revision 417
Added by doc almost 18 years ago
class.wbmailer.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
// $Id$ |
|
4 |
|
|
5 |
/* |
|
6 |
|
|
7 |
Website Baker Project <http://www.websitebaker.org/> |
|
8 |
Copyright (C) 2004-2007, Ryan Djurovich |
|
9 |
|
|
10 |
Website Baker is free software; you can redistribute it and/or modify |
|
11 |
it under the terms of the GNU General Public License as published by |
|
12 |
the Free Software Foundation; either version 2 of the License, or |
|
13 |
(at your option) any later version. |
|
14 |
|
|
15 |
Website Baker is distributed in the hope that it will be useful, |
|
16 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
17 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
18 |
GNU General Public License for more details. |
|
19 |
|
|
20 |
You should have received a copy of the GNU General Public License |
|
21 |
along with Website Baker; if not, write to the Free Software |
|
22 |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
23 |
|
|
24 |
*/ |
|
25 |
|
|
26 |
/* |
|
27 |
|
|
28 |
wbmailer class |
|
29 |
|
|
30 |
This class is a subclass of the PHPMailer class and replaces the mail() function of PHP |
|
31 |
|
|
32 |
*/ |
|
33 |
|
|
34 |
// Include PHPMailer class |
|
35 |
require_once(WB_PATH."/include/phpmailer/class.phpmailer.php"); |
|
36 |
|
|
37 |
class wbmailer extends PHPMailer |
|
38 |
{ |
|
39 |
// new websitebaker mailer class (subset of PHPMailer class) |
|
40 |
// setting default values |
|
41 |
|
|
42 |
function wbmailer() { |
|
43 |
// set method to send out emails |
|
44 |
if(defined('WBMAILER_SMTP_HOST')) { |
|
45 |
// sets Mailer to send messages using SMTP |
|
46 |
$this->IsSMTP(); |
|
47 |
$this->Host = WBMAILER_SMTP_HOST; // use STMP host defined in config.php |
|
48 |
} else { |
|
49 |
// set Mailer to send message using PHP mail() function |
|
50 |
$this->IsMail(); |
|
51 |
} |
|
52 |
|
|
53 |
// set language file for PHPMailer error messages |
|
54 |
if(defined("LANGUAGE")) { |
|
55 |
$this->SetLanguage(strtolower(LANGUAGE),"language"); // english default (also used if file is missing) |
|
56 |
} |
|
57 |
|
|
58 |
// set default charset |
|
59 |
if(defined('DEFAULT_CHARSET')) { |
|
60 |
$this->CharSet = DEFAULT_CHARSET; |
|
61 |
} else { |
|
62 |
$this->CharSet='utf-8'; |
|
63 |
} |
|
64 |
|
|
65 |
// set default sender name |
|
66 |
if (isset($_SESSION['DISPLAY_NAME'])) { |
|
67 |
$this->FromName = $_SESSION['DISPLAY_NAME']; // FROM NAME: display name of user logged in |
|
68 |
} else { |
|
69 |
$this->FromName = "WB Mailer"; // FROM NAME: set default name |
|
70 |
} |
|
71 |
|
|
72 |
// set default sender mail address |
|
73 |
if (isset($_SESSION['EMAIL'])) { |
|
74 |
$this->From = $_SESSION['EMAIL']; // FROM MAIL: (of user logged in) |
|
75 |
} else { |
|
76 |
$this->From = SERVER_EMAIL; // FROM MAIL: (server mail) |
|
77 |
} |
|
78 |
|
|
79 |
// set default mail formats |
|
80 |
$this->IsHTML(true); |
|
81 |
$this->WordWrap = 80; |
|
82 |
$this->Timeout = 30; |
|
83 |
} |
|
84 |
} |
|
85 |
|
|
1 |
<?php |
|
2 |
|
|
3 |
// $Id$ |
|
4 |
|
|
5 |
/* |
|
6 |
|
|
7 |
Website Baker Project <http://www.websitebaker.org/> |
|
8 |
Copyright (C) 2004-2007, Ryan Djurovich |
|
9 |
|
|
10 |
Website Baker is free software; you can redistribute it and/or modify |
|
11 |
it under the terms of the GNU General Public License as published by |
|
12 |
the Free Software Foundation; either version 2 of the License, or |
|
13 |
(at your option) any later version. |
|
14 |
|
|
15 |
Website Baker is distributed in the hope that it will be useful, |
|
16 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
17 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
18 |
GNU General Public License for more details. |
|
19 |
|
|
20 |
You should have received a copy of the GNU General Public License |
|
21 |
along with Website Baker; if not, write to the Free Software |
|
22 |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
23 |
|
|
24 |
*/ |
|
25 |
|
|
26 |
/* |
|
27 |
|
|
28 |
wbmailer class |
|
29 |
|
|
30 |
This class is a subclass of the PHPMailer class and replaces the mail() function of PHP |
|
31 |
|
|
32 |
*/ |
|
33 |
|
|
34 |
// Include PHPMailer class |
|
35 |
require_once(WB_PATH."/include/phpmailer/class.phpmailer.php"); |
|
36 |
|
|
37 |
class wbmailer extends PHPMailer |
|
38 |
{ |
|
39 |
// new websitebaker mailer class (subset of PHPMailer class) |
|
40 |
// setting default values |
|
41 |
|
|
42 |
function wbmailer() { |
|
43 |
// set mailer defaults (PHP mail function) |
|
44 |
$db_wbmailer_routine = "phpmail"; |
|
45 |
$db_wbmailer_smtp_host = ""; |
|
46 |
|
|
47 |
// get mailer settings from database |
|
48 |
$database = new database(); |
|
49 |
$query = "SELECT * FROM " .TABLE_PREFIX. "settings"; |
|
50 |
$results = $database->query($query); |
|
51 |
while($setting = $results->fetchRow()) { |
|
52 |
if ($setting['name'] == "wbmailer_routine") { $db_wbmailer_routine = $setting['value']; } |
|
53 |
if ($setting['name'] == "wbmailer_smtp_host") { $db_wbmailer_smtp_host = $setting['value']; } |
|
54 |
if ($setting['name'] == "wbmailer_smtp_auth") { $db_wbmailer_smtp_auth = (bool)$setting['value']; } |
|
55 |
if ($setting['name'] == "wbmailer_smtp_username") { $db_wbmailer_smtp_username = $setting['value']; } |
|
56 |
if ($setting['name'] == "wbmailer_smtp_password") { $db_wbmailer_smtp_password = $setting['value']; } |
|
57 |
} |
|
58 |
|
|
59 |
// set method to send out emails |
|
60 |
if($db_wbmailer_routine == "smtp" AND strlen($db_wbmailer_smtp_host) > 5) { |
|
61 |
// use SMTP for all outgoing mails send by Website Baker |
|
62 |
$this->IsSMTP(); |
|
63 |
$this->Host = $db_wbmailer_smtp_host; |
|
64 |
// check if SMTP authentification is required |
|
65 |
if ($db_wbmailer_smtp_auth && strlen($db_wbmailer_smtp_username) > 1 && strlen($db_wbmailer_smtp_password) > 1) { |
|
66 |
// use SMTP authentification |
|
67 |
$this->SMTPAuth = true; // enable SMTP authentification |
|
68 |
$this->Username = $db_wbmailer_smtp_username; // set SMTP username |
|
69 |
$this->Password = $db_wbmailer_smtp_password; // set SMTP password |
|
70 |
} |
|
71 |
} else { |
|
72 |
// use PHP mail() function for outgoing mails send by Website Baker |
|
73 |
$this->IsMail(); |
|
74 |
} |
|
75 |
|
|
76 |
// set language file for PHPMailer error messages |
|
77 |
if(defined("LANGUAGE")) { |
|
78 |
$this->SetLanguage(strtolower(LANGUAGE),"language"); // english default (also used if file is missing) |
|
79 |
} |
|
80 |
|
|
81 |
// set default charset |
|
82 |
if(defined('DEFAULT_CHARSET')) { |
|
83 |
$this->CharSet = DEFAULT_CHARSET; |
|
84 |
} else { |
|
85 |
$this->CharSet='utf-8'; |
|
86 |
} |
|
87 |
|
|
88 |
// set default sender name |
|
89 |
if (isset($_SESSION['DISPLAY_NAME'])) { |
|
90 |
$this->FromName = $_SESSION['DISPLAY_NAME']; // FROM NAME: display name of user logged in |
|
91 |
} else { |
|
92 |
$this->FromName = "WB Mailer"; // FROM NAME: set default name |
|
93 |
} |
|
94 |
|
|
95 |
/* some mail provider (lets say mail.com) reject mails send out by foreign mail relays |
|
96 |
but using the providers domain in the from mail address (e.g. myname@mail.com) |
|
97 |
// set default sender mail address |
|
98 |
if (isset($_SESSION['EMAIL'])) { |
|
99 |
$this->From = $_SESSION['EMAIL']; // FROM MAIL: (of user logged in) |
|
100 |
} else { |
|
101 |
$this->From = SERVER_EMAIL; // FROM MAIL: (server mail) |
|
102 |
} |
|
103 |
*/ |
|
104 |
$this->From = SERVER_EMAIL; // FROM MAIL: (server mail) |
|
105 |
|
|
106 |
// set default mail formats |
|
107 |
$this->IsHTML(true); |
|
108 |
$this->WordWrap = 80; |
|
109 |
$this->Timeout = 30; |
|
110 |
} |
|
111 |
} |
|
112 |
|
|
86 | 113 |
?> |
Also available in: Unified diff
Updated some core files to allow the configuration of PHPMailer via the admin settings panel instead of config.php. PHPMailer related settings are now stored in the Website Baker database. The following settings can be configured:
SMTP-host, SMTP-authentification , SMTP-password and SMTP-username.