summaryrefslogtreecommitdiffstats
path: root/lib/private/Mail
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2017-04-11 15:09:27 -0500
committerGitHub <noreply@github.com>2017-04-11 15:09:27 -0500
commit6bd1c50dc32ccc208723ef08af72b8bfe99b58bb (patch)
tree33d39d58978b08068fe1654bebb6a4e599881eb9 /lib/private/Mail
parent8175ac6ecd58f08417fc5129af6a490fd3a4bc3b (diff)
parentf3a78ee39d3146dcc4b11ceb84759b0a602f9266 (diff)
downloadnextcloud-server-6bd1c50dc32ccc208723ef08af72b8bfe99b58bb.tar.gz
nextcloud-server-6bd1c50dc32ccc208723ef08af72b8bfe99b58bb.zip
Merge pull request #4304 from nextcloud/add-email-template-to-ocp
Add IEMailTemplate to public OCP API
Diffstat (limited to 'lib/private/Mail')
-rw-r--r--lib/private/Mail/EMailTemplate.php1
-rw-r--r--lib/private/Mail/IEMailTemplate.php112
-rw-r--r--lib/private/Mail/Mailer.php24
3 files changed, 23 insertions, 114 deletions
diff --git a/lib/private/Mail/EMailTemplate.php b/lib/private/Mail/EMailTemplate.php
index c84af6331dc..402916cf74a 100644
--- a/lib/private/Mail/EMailTemplate.php
+++ b/lib/private/Mail/EMailTemplate.php
@@ -28,6 +28,7 @@ namespace OC\Mail;
use OCP\Defaults;
use OCP\IL10N;
use OCP\IURLGenerator;
+use OCP\Mail\IEMailTemplate;
/**
* Class EMailTemplate
diff --git a/lib/private/Mail/IEMailTemplate.php b/lib/private/Mail/IEMailTemplate.php
deleted file mode 100644
index baa29735988..00000000000
--- a/lib/private/Mail/IEMailTemplate.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-/**
- * @copyright 2017, Morris Jobke <hey@morrisjobke.de>
- *
- * @author Morris Jobke <hey@morrisjobke.de>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-namespace OC\Mail;
-
-use OCP\Defaults;
-
-/**
- * Interface IEMailTemplate
- *
- * Interface to a class that allows to build HTML emails
- *
- * Example:
- *
- * <?php
- *
- * $emailTemplate = new EMailTemplate($this->defaults, $this->urlGenerator, $this->l10n);
- *
- * $emailTemplate->addHeader();
- * $emailTemplate->addHeading('Welcome aboard');
- * $emailTemplate->addBodyText('You have now an Nextcloud account, you can add, protect, and share your data.');
- *
- * $emailTemplate->addBodyButtonGroup(
- * 'Set your password', 'https://example.org/resetPassword/q1234567890qwertz',
- * 'Install Client', 'https://nextcloud.com/install/#install-clients'
- * );
- *
- * $emailTemplate->addFooter('Optional footer text');
- *
- * $htmlContent = $emailTemplate->renderHTML();
- * $plainContent = $emailTemplate->renderText();
- */
-interface IEMailTemplate {
- /**
- * @param Defaults $themingDefaults
- * @param \OCP\IURLGenerator $urlGenerator
- * @param \OCP\IL10N $l10n
- */
- public function __construct(Defaults $themingDefaults,
- \OCP\IURLGenerator $urlGenerator,
- \OCP\IL10N $l10n);
-
- /**
- * Adds a header to the email
- */
- public function addHeader();
-
- /**
- * Adds a heading to the email
- *
- * @param string $title
- */
- public function addHeading($title);
-
- /**
- * Adds a paragraph to the body of the email
- *
- * @param string $text
- */
- public function addBodyText($text);
-
- /**
- * Adds a button group of two buttons to the body of the email
- *
- * @param string $textLeft Text of left button
- * @param string $urlLeft URL of left button
- * @param string $textRight Text of right button
- * @param string $urlRight URL of right button
- */
- public function addBodyButtonGroup($textLeft, $urlLeft, $textRight, $urlRight);
-
- /**
- * Adds a logo and a text to the footer. <br> in the text will be replaced by new lines in the plain text email
- *
- * @param string $text
- */
- public function addFooter($text = '');
-
- /**
- * Returns the rendered HTML email as string
- *
- * @return string
- */
- public function renderHTML();
-
- /**
- * Returns the rendered plain text email as string
- *
- * @return string
- */
- public function renderText();
-}
diff --git a/lib/private/Mail/Mailer.php b/lib/private/Mail/Mailer.php
index 8a6b6fce899..852806b2e43 100644
--- a/lib/private/Mail/Mailer.php
+++ b/lib/private/Mail/Mailer.php
@@ -24,6 +24,8 @@ namespace OC\Mail;
use OCP\Defaults;
use OCP\IConfig;
+use OCP\IL10N;
+use OCP\IURLGenerator;
use OCP\Mail\IMailer;
use OCP\ILogger;
@@ -54,18 +56,28 @@ class Mailer implements IMailer {
private $logger;
/** @var Defaults */
private $defaults;
+ /** @var IURLGenerator */
+ private $urlGenerator;
+ /** @var IL10N */
+ private $l10n;
/**
* @param IConfig $config
* @param ILogger $logger
* @param Defaults $defaults
+ * @param IURLGenerator $urlGenerator
+ * @param IL10N $l10n
*/
- function __construct(IConfig $config,
+ public function __construct(IConfig $config,
ILogger $logger,
- Defaults $defaults) {
+ Defaults $defaults,
+ IURLGenerator $urlGenerator,
+ IL10N $l10n) {
$this->config = $config;
$this->logger = $logger;
$this->defaults = $defaults;
+ $this->urlGenerator = $urlGenerator;
+ $this->l10n = $l10n;
}
/**
@@ -77,6 +89,14 @@ class Mailer implements IMailer {
return new Message(new \Swift_Message());
}
+ public function createEMailTemplate() {
+ return new EMailTemplate(
+ $this->defaults,
+ $this->urlGenerator,
+ $this->l10n
+ );
+ }
+
/**
* Send the specified message. Also sets the from address to the value defined in config.php
* if no-one has been passed.