Project

General

Profile

« Previous | Next » 

Revision 417

Added by doc almost 18 years ago

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.

View differences:

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