Charset is not set when I attach a Text/plain attachment
Description
Twake mail do not set charset when sending a text attachment.
Charset should always be set because otherwise many problem arise.
Actual behaviour
MIME-Version: 1.0
Subject: Test
From: Benoit TELLIER <[email protected]>
To: =?ISO-8859-1?Q?Beno=EEt_TELLIER?= <[email protected]>
Date: Tue, 13 Feb 2024 23:01:18 +0000
Message-ID: <[email protected]>
Content-Type: multipart/mixed;
boundary="-=Part.17f.732e3d28e1c76db4.18da4b40791.62ef5e3fa995057d=-"
---=Part.17f.732e3d28e1c76db4.18da4b40791.62ef5e3fa995057d=-
Content-Type: multipart/alternative;
boundary="-=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=-"
---=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=-
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Test
---=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=-
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div>Test<br><br></div>
---=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=---
---=Part.17f.732e3d28e1c76db4.18da4b40791.62ef5e3fa995057d=-
Content-Type: text/plain; name="=?US-ASCII?Q?id=5Frsa.txt?="
Content-Disposition: attachment
Content-Transfer-Encoding: base64
c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFDQVFDa0dXMkp5c2lKR2hQZXdBOXRr
bVFFQm5EVjRaQ0llLy92ZFoyV0RybnZiNlZLQzdpWldjODFpU1ZkTFcxUkRBTll4c3ExN0dQanpV
OFlWdk9sRkFJSk1WTm9ESWhuQWtYOU9VUUJpd1hpOHlHZ3FLNGR0RmIxczJBRzNrQmxNUFFJOE5K
MkpLT2Z5MW51VnJubEtoVDlCVnpYMm5iSjNOak9PZlkxQlJEaDZZcVl1a2RuejBUT2k1Rkp1YUJT
NDZQemx3eWdIa0dzeXBLVHM2Y2FUNjBRdjl3eWFadm4yenN1RmNML3o2Mmd3aGZyZGFsakF1UGRX
cERlNG1IRVFmMXA2SXNRMDdPb0lwTmRHQ0tLZHRZQlVTcktzTXRpMllLUGZpSzB2WGU1L3owRWJE
VlRja1BrY3NwQ2cwYVZuZTB2eFVsRGt2U2pwV2tiQkZ0YTk5ekJjOVlJL0ROK28vRmtONlFTdXV5
U29tNDZkamZpUjdqSzNMRmJKUkhaem9BblNvaTZvRlR0MW1LWjNzam44bnZWUG1PV3pJWHY0Tm1O
R1ExZHFrV1hXcUtyQjlIZUZiQnRPWVAzaEkxQ0kvaVhNbVR1SkdvcHVTUmlTNW1QZXlSQWV6VGtk
UG8vZ2NSVWNzbklhVW1EallUWHBFNzU3Yk5LWVNHbFJsS3FrbEhKc2JveEdTK0NaVzBJS2dZeTdG
cmZRZ1FGMTdvaUpWM1JJQ1VHcU9rM1I2VnZOYlhlL2VmZS9IT24xd0lZUS9qVGRzY0hCamRIM2FF
MmY4Y3dVS1IzNUtWNlJ1SE4vYVpiekxiVkJxUEMvUTcwd3NMQlloV29Da1dRMElUUmxGV2N3bnN3
VTE5NnlGWkVHSmthOUNEaHZQdUVBV0NLWnFRT3gyMnRoYWVSQlE9PSBiZW53YUBob3Jpem9uCg==
Expected behaviour
MIME-Version: 1.0
Subject: Test
From: Benoit TELLIER <[email protected]>
To: =?ISO-8859-1?Q?Beno=EEt_TELLIER?= <[email protected]>
Date: Tue, 13 Feb 2024 23:01:18 +0000
Message-ID: <[email protected]>
Content-Type: multipart/mixed;
boundary="-=Part.17f.732e3d28e1c76db4.18da4b40791.62ef5e3fa995057d=-"
---=Part.17f.732e3d28e1c76db4.18da4b40791.62ef5e3fa995057d=-
Content-Type: multipart/alternative;
boundary="-=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=-"
---=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=-
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Test
---=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=-
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div>Test<br><br></div>
---=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=---
---=Part.17f.732e3d28e1c76db4.18da4b40791.62ef5e3fa995057d=-
Content-Type: text/plain; name="=?US-ASCII?Q?id=5Frsa.txt?=" charset=PLATEFORM-CHARSET
Content-Disposition: attachment
Content-Transfer-Encoding: base64
c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFDQVFDa0dXMkp5c2lKR2hQZXdBOXRr
bVFFQm5EVjRaQ0llLy92ZFoyV0RybnZiNlZLQzdpWldjODFpU1ZkTFcxUkRBTll4c3ExN0dQanpV
OFlWdk9sRkFJSk1WTm9ESWhuQWtYOU9VUUJpd1hpOHlHZ3FLNGR0RmIxczJBRzNrQmxNUFFJOE5K
MkpLT2Z5MW51VnJubEtoVDlCVnpYMm5iSjNOak9PZlkxQlJEaDZZcVl1a2RuejBUT2k1Rkp1YUJT
NDZQemx3eWdIa0dzeXBLVHM2Y2FUNjBRdjl3eWFadm4yenN1RmNML3o2Mmd3aGZyZGFsakF1UGRX
cERlNG1IRVFmMXA2SXNRMDdPb0lwTmRHQ0tLZHRZQlVTcktzTXRpMllLUGZpSzB2WGU1L3owRWJE
VlRja1BrY3NwQ2cwYVZuZTB2eFVsRGt2U2pwV2tiQkZ0YTk5ekJjOVlJL0ROK28vRmtONlFTdXV5
U29tNDZkamZpUjdqSzNMRmJKUkhaem9BblNvaTZvRlR0MW1LWjNzam44bnZWUG1PV3pJWHY0Tm1O
R1ExZHFrV1hXcUtyQjlIZUZiQnRPWVAzaEkxQ0kvaVhNbVR1SkdvcHVTUmlTNW1QZXlSQWV6VGtk
UG8vZ2NSVWNzbklhVW1EallUWHBFNzU3Yk5LWVNHbFJsS3FrbEhKc2JveEdTK0NaVzBJS2dZeTdG
cmZRZ1FGMTdvaUpWM1JJQ1VHcU9rM1I2VnZOYlhlL2VmZS9IT24xd0lZUS9qVGRzY0hCamRIM2FF
MmY4Y3dVS1IzNUtWNlJ1SE4vYVpiekxiVkJxUEMvUTcwd3NMQlloV29Da1dRMElUUmxGV2N3bnN3
VTE5NnlGWkVHSmthOUNEaHZQdUVBV0NLWnFRT3gyMnRoYWVSQlE9PSBiZW53YUBob3Jpem9uCg==
Where PLATEFORM-CHARSET is for instance UTF-8
Can we hardcode UTF-8 ? or detect it directly from file?
Do you have access to OS default?
How hard to detect it?
IMO, detecting it from file is most accurate
IMO, detecting it from file is most accurate
but it takes time and a lot of memory consumption when reading file byte.
We will use UriData of dart:core. It will only take less memory to store at the time of parsing.
We will use UriData of dart:core. It will only take less memory to store at the time of parsing.
Looks great! just check it's not too bad perf wise ;-)