aboutsummaryrefslogtreecommitdiffstats
path: root/src/threadlistmodel.h
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-20 18:41:21 +0200
committerDanilo M. <danix@danix.xyz>2026-08-20 18:41:21 +0200
commit14e74f8f92ce949230e3008de8fd24d0c5a18153 (patch)
tree1c9af4b288533652a40c1abc42201f1aa0e24ba8 /src/threadlistmodel.h
parent90cf14b0b23218f0ca01a280998e855a00b47567 (diff)
downloadqtmaildir-14e74f8f92ce949230e3008de8fd24d0c5a18153.tar.gz
qtmaildir-14e74f8f92ce949230e3008de8fd24d0c5a18153.zip
feat(compose): build outgoing messages with GMime, item 123
One built message serves three consumers: the autosaved draft, the bytes on the send command's stdin, and the sent copy. A draft is therefore byte-identical to what would be sent. Three GMime defaults are wrong for this application and each is corrected explicitly, because all three fail only on accented text and this user writes Italian: GMime encodes as iso-8859-1 unless told otherwise, so the subject carries an explicit utf-8 argument. g_mime_text_part_set_text() encodes with whatever charset is set when it is CALLED, so setting the charset afterwards produces a part labelled utf-8 carrying latin-1 bytes; the content stream is built directly instead. And neither Date nor Message-ID is generated unless asked for, and a message without a Message-ID cannot be threaded by anything that receives it. Attachments are checked at build time rather than at attach time: a file can vanish in between, and a message missing the thing it was written to carry must never reach the send command. An account with no address fails the build rather than producing a message with an empty From. Config::account() returns a default-constructed Account for an unknown key rather than failing, so without that guard a bad key would produce silently malformed mail. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015muoUo2GdxmBDSp5vjYcbE
Diffstat (limited to 'src/threadlistmodel.h')
0 files changed, 0 insertions, 0 deletions