aboutsummaryrefslogtreecommitdiffstats
path: root/public/system/library/mail.php
diff options
context:
space:
mode:
Diffstat (limited to 'public/system/library/mail.php')
-rw-r--r--public/system/library/mail.php144
1 files changed, 144 insertions, 0 deletions
diff --git a/public/system/library/mail.php b/public/system/library/mail.php
new file mode 100644
index 0000000..4e6c59c
--- /dev/null
+++ b/public/system/library/mail.php
@@ -0,0 +1,144 @@
+<?php
+/**
+ * @package OpenCart
+ * @author Daniel Kerr
+ * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/)
+ * @license https://opensource.org/licenses/GPL-3.0
+ * @link https://www.opencart.com
+*/
+
+/**
+* Mail class
+*/
+class Mail {
+ protected $to;
+ protected $from;
+ protected $sender;
+ protected $reply_to;
+ protected $subject;
+ protected $text;
+ protected $html;
+ protected $attachments = array();
+ public $parameter;
+
+ /**
+ * Constructor
+ *
+ * @param string $adaptor
+ *
+ */
+ public function __construct($adaptor = 'mail') {
+ $class = 'Mail\\' . $adaptor;
+
+ if (class_exists($class)) {
+ $this->adaptor = new $class();
+ } else {
+ trigger_error('Error: Could not load mail adaptor ' . $adaptor . '!');
+ exit();
+ }
+ }
+
+ /**
+ *
+ *
+ * @param mixed $to
+ */
+ public function setTo($to) {
+ $this->to = $to;
+ }
+
+ /**
+ *
+ *
+ * @param string $from
+ */
+ public function setFrom($from) {
+ $this->from = $from;
+ }
+
+ /**
+ *
+ *
+ * @param string $sender
+ */
+ public function setSender($sender) {
+ $this->sender = $sender;
+ }
+
+ /**
+ *
+ *
+ * @param string $reply_to
+ */
+ public function setReplyTo($reply_to) {
+ $this->reply_to = $reply_to;
+ }
+
+ /**
+ *
+ *
+ * @param string $subject
+ */
+ public function setSubject($subject) {
+ $this->subject = $subject;
+ }
+
+ /**
+ *
+ *
+ * @param string $text
+ */
+ public function setText($text) {
+ $this->text = $text;
+ }
+
+ /**
+ *
+ *
+ * @param string $html
+ */
+ public function setHtml($html) {
+ $this->html = $html;
+ }
+
+ /**
+ *
+ *
+ * @param string $filename
+ */
+ public function addAttachment($filename) {
+ $this->attachments[] = $filename;
+ }
+
+ /**
+ *
+ *
+ */
+ public function send() {
+ if (!$this->to) {
+ throw new \Exception('Error: E-Mail to required!');
+ }
+
+ if (!$this->from) {
+ throw new \Exception('Error: E-Mail from required!');
+ }
+
+ if (!$this->sender) {
+ throw new \Exception('Error: E-Mail sender required!');
+ }
+
+ if (!$this->subject) {
+ throw new \Exception('Error: E-Mail subject required!');
+ }
+
+ if ((!$this->text) && (!$this->html)) {
+ throw new \Exception('Error: E-Mail message required!');
+ }
+
+ foreach (get_object_vars($this) as $key => $value) {
+ $this->adaptor->$key = $value;
+ }
+
+ $this->adaptor->send();
+ }
+} \ No newline at end of file