mirror of
https://github.com/nextcloud/server.git
synced 2026-06-09 08:44:07 -04:00
Merge pull request #36118 from nextcloud/fix/caldav/invitation-outlook-compatibilty
Fix calendar emails to be outlook compatible
This commit is contained in:
commit
9e53934498
3 changed files with 32 additions and 6 deletions
|
|
@ -299,14 +299,12 @@ class IMipPlugin extends SabreIMipPlugin {
|
|||
|
||||
$message->useTemplate($template);
|
||||
|
||||
$vCalendar = $this->imipService->generateVCalendar($iTipMessage, $vEvent);
|
||||
|
||||
$attachment = $this->mailer->createAttachment(
|
||||
$vCalendar->serialize(),
|
||||
$itip_msg = $iTipMessage->message->serialize();
|
||||
$message->attachInline(
|
||||
$itip_msg,
|
||||
'event.ics',
|
||||
'text/calendar; method=' . $iTipMessage->method
|
||||
'text/calendar; method=' . $iTipMessage->method,
|
||||
);
|
||||
$message->attach($attachment);
|
||||
|
||||
try {
|
||||
$failed = $this->mailer->send($message);
|
||||
|
|
|
|||
|
|
@ -75,6 +75,22 @@ class Message implements IMessage {
|
|||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Can be used to "attach content inline" as message parts with specific MIME type and encoding.
|
||||
* {@inheritDoc}
|
||||
* @since 26.0.0
|
||||
*/
|
||||
public function attachInline(string $body, string $name, string $contentType = null): IMessage {
|
||||
# To be sure this works with iCalendar messages, we encode with 8bit instead of
|
||||
# quoted-printable encoding. We save the current encoder, replace the current
|
||||
# encoder with an 8bit encoder and after we've finished, we reset the encoder
|
||||
# to the previous one. Originally intended to be added after the message body,
|
||||
# as it is curently unknown if all mail clients handle this properly if added
|
||||
# before.
|
||||
$this->symfonyEmail->embed($body, $name, $contentType);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts the [['displayName' => 'email'], ['displayName2' => 'email2']] arrays to valid Adresses
|
||||
*
|
||||
|
|
|
|||
|
|
@ -39,6 +39,18 @@ interface IMessage {
|
|||
*/
|
||||
public function attach(IAttachment $attachment): IMessage;
|
||||
|
||||
/**
|
||||
* Can be used to "attach content inline" as message parts with specific MIME type and encoding.
|
||||
*
|
||||
* @param string $body body of the MIME part
|
||||
* @param string $name the file name
|
||||
* @param string|null $contentType MIME Content-Type (e.g. text/plain or text/calendar)
|
||||
*
|
||||
* @return IMessage
|
||||
* @since 26.0.0
|
||||
*/
|
||||
public function attachInline(string $body, string $name, string $contentType = null): IMessage;
|
||||
|
||||
/**
|
||||
* Set the from address of this message.
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in a new issue