diff --git a/lib/Model/IMAPMessage.php b/lib/Model/IMAPMessage.php index 5481ecddd174b6b37a099aa86889a56633f68757..46005a0c3a59ceacd780a59869b696a8dc9b36fc 100644 --- a/lib/Model/IMAPMessage.php +++ b/lib/Model/IMAPMessage.php @@ -414,7 +414,8 @@ class IMAPMessage implements IMessage, JsonSerializable { 'fileName' => $filename, 'mime' => $p->getType(), 'size' => $p->getBytes(), - 'cid' => $p->getContentId() + 'cid' => $p->getContentId(), + 'disposition' => $p->getDisposition() ]; return; } diff --git a/src/components/Composer.vue b/src/components/Composer.vue index 7404c77eed024103e1158c75e5844771909bd412..c4736dbd6a786cf88d3dae0243a56079390b1cdc 100644 --- a/src/components/Composer.vue +++ b/src/components/Composer.vue @@ -463,7 +463,9 @@ export default { // Add attachments in case of forward if (this.forwardFrom?.attachments !== undefined) { - this.forwardFrom.attachments.map(att => { + // We filter attachments with contentDisposition header set to 'inline' as theyr are rendered + // in the HTML body + this.forwardFrom.attachments.filter(att => att.disposition !== 'inline').forEach(att => { this.attachments.push({ fileName: att.fileName, displayName: trimStart('/', att.fileName), diff --git a/src/components/Message.vue b/src/components/Message.vue index 8e42c51a7140e717e3976c6706540be1505e2cf7..817d3c97e20aa61163da55f7fb6ac9ed1e5b27dc 100644 --- a/src/components/Message.vue +++ b/src/components/Message.vue @@ -38,7 +38,7 @@ :body="message.body" :signature="message.signature" :message="message" /> - <Popover v-if="message.attachments[0]" class="attachment-popover"> + <Popover v-if="message.flags.hasAttachments" class="attachment-popover"> <Actions slot="trigger"> <ActionButton icon="icon-public icon-attachment"> {{ t('mail', 'Attachments') }}