Merge branch '3.0'
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / mail / MailSender.class.php
CommitLineData
158bd3ca
TD
1<?php
2namespace 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 */
13abstract 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}