mat-sz / letterparser

✉️ Isomorphic e-mail parser (with MIME support) written in TypeScript.
BSD 3-Clause Clear License
34 stars 4 forks source link

MultiPart message not parsing #15

Closed thoffmann-fms closed 2 months ago

thoffmann-fms commented 5 months ago

Hi, got an odd one here. const result: LetterparserMail = extract(block.Data); is returning result.html wiith the data not being decoded. e.g. image

Here's the raw data in JSON:

{
    "Data": "Subject: =?iso-8859-1?Q?Resource_Scheduler:_Appointment_Reminder?=\r\nSender: \"sgmh\" <sgmh@xxx.local>\r\nFrom: \"sgmh\" <sgmh@xxx.local>\r\nDate: Thu, 18 Jan 2024 11:42:35 -0500\r\nTo: \"=?iso-8859-1?Q?xxx@xxx=2Eonmicrosoft=2Ecom?=\" <xxx@xxx.onmicrosoft.com>\r\nX-Priority: 3\r\nMIME-Version: 1.0\r\nX-Mailer: JMail 4.5 by Dimac\r\nContent-Type: text/HTML;\r\n\tboundary=\"--NEXT_BM_4AF3382FC1824F4089035FEF82BF1006\"\r\n\r\nThis is a multipart message in MIME format.\r\n----NEXT_BM_4AF3382FC1824F4089035FEF82BF1006\r\nContent-Type: text/html;\r\n\tcharset=\"iso-8859-1\"\r\nContent-Transfer-Encoding: Quoted-Printable\r\n\r\n<body=3EThis is a system reminder of the following scheduled event<br/=3E<br=\r\n/=3EReservation Title: marce cancelled<br/=3E<br/=3EFriday,&nbsp;January&nbs=\r\np;19,&nbsp;2024&nbsp;from&nbsp;5:00&nbsp;PM&nbsp;until&nbsp;5:30&nbsp;PM&nbs=\r\np;Bolivia<br/=3E<br/Location: Andreina; Exchange; ex148<br/=3E<br/=3E     Cu=\r\nrrent Resources: Exchange - ex148<br/=3E<br/=3E     Reservation Link: https:=\r\n//sgmh=2Exxx=2Ecom/ResourceScheduler/scheddtl=2Easp=3FID=3D-1999927282<=\r\nbr/=3E<br/=3E     Options:<br/=3E - No Options - <br/=3E<br/=3E     Thank yo=\r\nu,<br/=3E<br/=3E     Resource Scheduler<br/=3E<br/=3E     Copyright =A9 2000=\r\n-2023 rights reserved=2E</body=3E\r\n\r\n----NEXT_BM_4AF3382FC1824F4089035FEF82BF1006\r\nContent-Type: application/octet-stream; name=\"=?iso-8859-1?Q?Test=2Edocx?=\"\r\nContent-Transfer-Encoding: base64\r\nContent-Description: =?iso-8859-1?Q?Test=2Edocx?=\r\nContent-Disposition: attachment; filename=\"=?iso-8859-1?Q?Test=2Edocx?=\"\r\nContent-ID: <390879B749BA4BE49C72D69BED1D4F2E>\r\n\r\n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\r\nAABbBgAAAAA=\r\n\r\n\r\n----NEXT_BM_4AF3382FC1824F4089035FEF82BF1006--\r\n\r\n",
}
mat-sz commented 5 months ago

@thoffmann-fms This is the correct behavior, your message is of text/html content-type instead of multipart/alternative content-type. The presence of boundary= parameter does not affect the parsing (at least not according to any RFCs I can find on this topic).

Do you know of any e-mail clients that would display your message in a way that you expect it to be displayed in? This seems very incorrect but if at least both Outlook and Gmail display it this way I'm going to add it in.

thoffmann-fms commented 5 months ago

Ok, please give me a few days to get the mail routed to another mail client. It's being generated in a test environment that I need to replicate elsewhere. It's an older implementation of JMail that's sending it, so possibly a bug on that end, too. Thanks.

mat-sz commented 2 months ago

@thoffmann-fms Closing this issue due to lack of activity. Please feel free to reopen if the problem persists.