diff options
author | Joas Schilling <coding@schilljs.com> | 2017-10-18 15:39:22 +0200 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2017-10-18 15:44:19 +0200 |
commit | ce27e8cf34daea23117a9e5e0134957889aac332 (patch) | |
tree | c48d3cb82055d5fca1eb0f5cd3de466a7b7c477e /lib/private/Mail | |
parent | cc798fd65f48e4cfc4748f35859c453a6eff4e25 (diff) | |
download | nextcloud-server-ce27e8cf34daea23117a9e5e0134957889aac332.tar.gz nextcloud-server-ce27e8cf34daea23117a9e5e0134957889aac332.zip |
Add attachment support to emails
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'lib/private/Mail')
-rw-r--r-- | lib/private/Mail/Attachment.php | 78 | ||||
-rw-r--r-- | lib/private/Mail/Message.php | 20 |
2 files changed, 98 insertions, 0 deletions
diff --git a/lib/private/Mail/Attachment.php b/lib/private/Mail/Attachment.php new file mode 100644 index 00000000000..7b85ad1dbb9 --- /dev/null +++ b/lib/private/Mail/Attachment.php @@ -0,0 +1,78 @@ +<?php +/** + * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> + * + * @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\Mail\IAttachment; + +/** + * Class Attachment + * + * @package OC\Mail + * @since 13.0.0 + */ +class Attachment implements IAttachment { + + /** @var \Swift_Mime_Attachment */ + protected $swiftAttachment; + + public function __construct(\Swift_Mime_Attachment $attachment) { + $this->swiftAttachment = $attachment; + } + + /** + * @param string $filename + * @return $this + * @since 13.0.0 + */ + public function setFilename($filename) { + $this->swiftAttachment->setFilename($filename); + return $this; + } + + /** + * @param string $contentType + * @return $this + * @since 13.0.0 + */ + public function setContentType($contentType) { + $this->swiftAttachment->setContentType($contentType); + return $this; + } + + /** + * @param string $body + * @return $this + * @since 13.0.0 + */ + public function setBody($body) { + $this->swiftAttachment->setBody($body); + return $this; + } + + /** + * @return \Swift_Mime_Attachment + */ + public function getSwiftAttachment() { + return $this->swiftAttachment; + } + +} diff --git a/lib/private/Mail/Message.php b/lib/private/Mail/Message.php index b4d1e4dbe7a..35c2c2d84ea 100644 --- a/lib/private/Mail/Message.php +++ b/lib/private/Mail/Message.php @@ -23,6 +23,7 @@ namespace OC\Mail; +use OCP\Mail\IAttachment; use OCP\Mail\IEMailTemplate; use OCP\Mail\IMessage; use Swift_Message; @@ -44,6 +45,25 @@ class Message implements IMessage { } /** + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachment() { + return new Attachment(\Swift_Attachment::newInstance()); + } + + /** + * @param IAttachment $attachment + * @return $this + * @since 13.0.0 + */ + public function attach(IAttachment $attachment) { + /** @var Attachment $attachment */ + $this->swiftMessage->attach($attachment->getSwiftAttachment()); + return $this; + } + + /** * SwiftMailer does currently not work with IDN domains, this function therefore converts the domains * FIXME: Remove this once SwiftMailer supports IDN * |