diff --git a/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php b/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php index 74cba80f2e155..b7d1136d3085f 100644 --- a/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php +++ b/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php @@ -177,7 +177,7 @@ public function schedule(Message $iTipMessage) { $iTipMessage->scheduleStatus = '5.0; EMail delivery failed'; return; } - $recipientName = $iTipMessage->recipientName ?: null; + $recipientName = $iTipMessage->recipientName ? (string)$iTipMessage->recipientName : null; $newEvents = $iTipMessage->message; $oldEvents = $this->getVCalendar(); @@ -213,9 +213,11 @@ public function schedule(Message $iTipMessage) { $senderName = $senderName->getValue() ?? null; } - if ($senderName === null || empty(trim($senderName))) { + // Try to get the sender name from the current user id if available. + if ($this->userId !== null && ($senderName === null || empty(trim($senderName)))) { $senderName = $this->userManager->getDisplayName($this->userId); } + $sender = substr($iTipMessage->sender, 7); if($sender === false) { $sender = Util::getDefaultEmailAddress('invitations-noreply'); @@ -236,7 +238,6 @@ public function schedule(Message $iTipMessage) { break; } - $data['attendee_name'] = ($recipientName ?: $recipient); $data['invitee_name'] = ($senderName ?: $sender); @@ -244,9 +245,19 @@ public function schedule(Message $iTipMessage) { $fromName = $this->imipService->getFrom($senderName, $this->defaults->getName()); $message = $this->mailer->createMessage() - ->setFrom([$fromEMail => $fromName]) - ->setTo([$recipient => $recipientName ?: $recipient]) - ->setReplyTo([$sender => $senderName]); + ->setFrom([$fromEMail => $fromName]); + + if ($recipientName !== null) { + $message->setTo([$recipient => $recipientName]); + } else { + $message->setTo([$recipient]); + } + + if ($senderName !== null) { + $message->setReplyTo([$sender => $senderName]); + } else { + $message->setReplyTo([$sender]); + } $template = $this->mailer->createEMailTemplate('dav.calendarInvite.' . $method, $data); $template->addHeader(); diff --git a/apps/dav/lib/CalDAV/Schedule/IMipService.php b/apps/dav/lib/CalDAV/Schedule/IMipService.php index 88f8bb8f54e1c..531c1c8af170e 100644 --- a/apps/dav/lib/CalDAV/Schedule/IMipService.php +++ b/apps/dav/lib/CalDAV/Schedule/IMipService.php @@ -70,11 +70,15 @@ public function __construct(URLGenerator $urlGenerator, } /** - * @param string $senderName - * @param $default + * @param string|null $senderName + * @param string $default * @return string */ - public function getFrom(string $senderName, $default): string { + public function getFrom(?string $senderName, string $default): string { + if ($senderName === null) { + return $default; + } + return $this->l10n->t('%1$s via %2$s', [$senderName, $default]); }