Signed-off-by: Joas Schilling <coding@schilljs.com>tags/v13.0.0beta1
@@ -347,7 +347,8 @@ class ShareByMailProvider implements IShareProvider { | |||
$share->getNode()->getName(), | |||
$link, | |||
$share->getSharedBy(), | |||
$share->getSharedWith() | |||
$share->getSharedWith(), | |||
$share->getExpirationDate() | |||
); | |||
} catch (HintException $hintException) { | |||
$this->logger->error('Failed to send share by mail: ' . $hintException->getMessage()); | |||
@@ -369,12 +370,14 @@ class ShareByMailProvider implements IShareProvider { | |||
* @param string $link | |||
* @param string $initiator | |||
* @param string $shareWith | |||
* @param \DateTime $expiration | |||
* @throws \Exception If mail couldn't be sent | |||
*/ | |||
protected function sendMailNotification($filename, | |||
$link, | |||
$initiator, | |||
$shareWith) { | |||
$shareWith, | |||
\DateTime $expiration) { | |||
$initiatorUser = $this->userManager->get($initiator); | |||
$initiatorDisplayName = ($initiatorUser instanceof IUser) ? $initiatorUser->getDisplayName() : $initiator; | |||
$subject = (string)$this->l->t('%s shared »%s« with you', array($initiatorDisplayName, $filename)); | |||
@@ -382,6 +385,12 @@ class ShareByMailProvider implements IShareProvider { | |||
$message = $this->mailer->createMessage(); | |||
$emailTemplate = $this->mailer->createEMailTemplate(); | |||
$emailTemplate->setMetaData('sharebymail.RecipientNotification', [ | |||
'filename' => $filename, | |||
'link' => $link, | |||
'initiator' => $initiatorDisplayName, | |||
'expiration' => $expiration, | |||
]); | |||
$emailTemplate->addHeader(); | |||
$emailTemplate->addHeading($this->l->t('%s shared »%s« with you', [$initiatorDisplayName, $filename]), false); |
@@ -45,6 +45,10 @@ class EMailTemplate implements IEMailTemplate { | |||
protected $urlGenerator; | |||
/** @var IL10N */ | |||
protected $l10n; | |||
/** @var string */ | |||
protected $emailId; | |||
/** @var array */ | |||
protected $data; | |||
/** @var string */ | |||
protected $htmlBody = ''; | |||
@@ -348,6 +352,18 @@ EOF; | |||
$this->htmlBody .= $this->head; | |||
} | |||
/** | |||
* Set meta data of an email | |||
* | |||
* @param string $emailId | |||
* @param array $data | |||
* @since 12.0.3 | |||
*/ | |||
public function setMetaData($emailId, array $data = []) { | |||
$this->emailId = $emailId; | |||
$this->data = $data; | |||
} | |||
/** | |||
* Adds a header to the email | |||
*/ |
@@ -662,7 +662,8 @@ class Manager implements IManager { | |||
$share->getNode()->getName(), | |||
$this->urlGenerator->linkToRouteAbsolute('files.viewcontroller.showFile', [ 'fileid' => $share->getNode()->getId() ]), | |||
$share->getSharedBy(), | |||
$emailAddress | |||
$emailAddress, | |||
$share->getExpirationDate() | |||
); | |||
$this->logger->debug('Send share notification to ' . $emailAddress . ' for share with ID ' . $share->getId(), ['app' => 'share']); | |||
} else { | |||
@@ -681,12 +682,14 @@ class Manager implements IManager { | |||
* @param string $link link to the file/folder | |||
* @param string $initiator user ID of share sender | |||
* @param string $shareWith email address of share receiver | |||
* @param \DateTime $expiration | |||
* @throws \Exception If mail couldn't be sent | |||
*/ | |||
protected function sendMailNotification($filename, | |||
$link, | |||
$initiator, | |||
$shareWith) { | |||
$shareWith, | |||
\DateTime $expiration) { | |||
$initiatorUser = $this->userManager->get($initiator); | |||
$initiatorDisplayName = ($initiatorUser instanceof IUser) ? $initiatorUser->getDisplayName() : $initiator; | |||
$subject = (string)$this->l->t('%s shared »%s« with you', array($initiatorDisplayName, $filename)); | |||
@@ -694,6 +697,12 @@ class Manager implements IManager { | |||
$message = $this->mailer->createMessage(); | |||
$emailTemplate = $this->mailer->createEMailTemplate(); | |||
$emailTemplate->setMetaData('files_sharing.RecipientNotification', [ | |||
'filename' => $filename, | |||
'link' => $link, | |||
'initiator' => $initiatorDisplayName, | |||
'expiration' => $expiration, | |||
]); | |||
$emailTemplate->addHeader(); | |||
$emailTemplate->addHeading($this->l->t('%s shared »%s« with you', [$initiatorDisplayName, $filename]), false); |
@@ -51,6 +51,13 @@ namespace OCP\Mail; | |||
* @since 12.0.0 | |||
*/ | |||
interface IEMailTemplate { | |||
/** | |||
* Set meta data of an email | |||
* | |||
* @since 12.0.3 | |||
*/ | |||
public function setMetaData($emailId, array $data = []); | |||
/** | |||
* Adds a header to the email | |||
* |