Commit | Line | Data |
---|---|---|
158bd3ca TD |
1 | <?php |
2 | namespace wcf\system\mail; | |
3 | ||
4 | /** | |
9f959ced | 5 | * Mailsender sends emails. |
158bd3ca | 6 | * |
849f69b7 | 7 | * @author Alexander Ebert |
c839bd49 | 8 | * @copyright 2001-2018 WoltLab GmbH |
158bd3ca | 9 | * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php> |
e71525e4 | 10 | * @package WoltLabSuite\Core\Data\Mail |
115c251e | 11 | * @deprecated The Community Framework 2.x mail API is deprecated in favor of \wcf\system\email\*. |
158bd3ca TD |
12 | */ |
13 | abstract class MailSender { | |
14 | /** | |
15 | * unique mail server instance | |
4e25add7 | 16 | * @var MailSender |
158bd3ca TD |
17 | */ |
18 | protected static $instance = null; | |
19 | ||
20 | /** | |
21 | * Returns the default mail sender. | |
22 | * | |
23 | * @return MailSender | |
24 | */ | |
25 | public static function getInstance() { | |
37a4f4d1 | 26 | if (self::$instance === null) { |
158bd3ca TD |
27 | switch (MAIL_SEND_METHOD) { |
28 | case 'php': | |
e3c04431 | 29 | self::$instance = new PHPMailSender(); |
9f959ced | 30 | break; |
158bd3ca TD |
31 | |
32 | case 'smtp': | |
e3c04431 | 33 | self::$instance = new SMTPMailSender(); |
9f959ced | 34 | break; |
158bd3ca TD |
35 | |
36 | case 'debug': | |
e3c04431 | 37 | self::$instance = new DebugMailSender(); |
9f959ced | 38 | break; |
158bd3ca TD |
39 | } |
40 | } | |
41 | ||
42 | return self::$instance; | |
43 | } | |
44 | ||
45 | /** | |
46 | * Sends an e-mail. | |
47 | * | |
4e25add7 | 48 | * @param Mail $mail |
158bd3ca | 49 | */ |
92fd47d9 | 50 | abstract public function sendMail(Mail $mail); |
dcb3a44c | 51 | } |