diff options
author | Anna Larch <anna@nextcloud.com> | 2023-02-20 18:57:56 +0100 |
---|---|---|
committer | Anna Larch <anna@nextcloud.com> | 2023-02-21 14:37:11 +0100 |
commit | ed708150760505cb3571c9f6fd257d1485f71eb7 (patch) | |
tree | b47d2d820e643ef1bc65c8c8499aed2c759dc52f /lib | |
parent | 5fcb55a2a9653575eec1c9d3551d6a887a22b84f (diff) | |
download | nextcloud-server-ed708150760505cb3571c9f6fd257d1485f71eb7.tar.gz nextcloud-server-ed708150760505cb3571c9f6fd257d1485f71eb7.zip |
Fix calendar emails to be outlook compatible
Signed-off-by: Anna Larch <anna@nextcloud.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/Mail/Message.php | 16 | ||||
-rw-r--r-- | lib/public/Mail/IMessage.php | 12 |
2 files changed, 28 insertions, 0 deletions
diff --git a/lib/private/Mail/Message.php b/lib/private/Mail/Message.php index 01beefcc6d6..35d6f96d33a 100644 --- a/lib/private/Mail/Message.php +++ b/lib/private/Mail/Message.php @@ -76,6 +76,22 @@ class Message implements IMessage { } /** + * 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 * * @param array $addresses Array of mail addresses diff --git a/lib/public/Mail/IMessage.php b/lib/public/Mail/IMessage.php index 35a67bc4bb8..b3cc86839f1 100644 --- a/lib/public/Mail/IMessage.php +++ b/lib/public/Mail/IMessage.php @@ -40,6 +40,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. * * If no "From" address is used \OC\Mail\Mailer will use mail_from_address and mail_domain from config.php |