I'm not sure if this is the right place to post this issue, but text_flowed or format=flowed doesn't seem to be respected by k9-mail. This makes the formatting of text quite awkward when reading e-mail sent by clients that support this feature (Thunderbird, mutt).
This is probably the same as issue 6327 on Google Code, but since that platform is closing, it's good to have it here.
Basically, the headers in K9 show:
Content-Type: text/plain; charset=utf-8
while the headers of the sent message in a different e-mail client will show:
Content-Type: text/plain; charset=utf-8; format=flowed
I am using version 5.004 from F-Droid.
It is still not supported in current version 5.007 (from F-Droid).
This seems like a violation of mail standards, namely RFC 2646 or the newer RFC 3676. The RFC describes the format=flowed feature, which allows sending mails with soft linebreaks (i.e. they are wrapped at display width) and arbitrary length of a line. This is backwards compatible so that clients not supporting it will still display them at least readable.
K-9 cannot interpret the format=flowed header flag, so those mails are always displayed with fixed linebreaks after <80 characters, no matter of my current display width. That renders wide displays useless as I will not be able reading mails over the full width.
A more severe problem arises when displaying such a mail on a device with a limited display width, e.g. smartphones. Here the text is forced into a mixture of soft (at display border) and hard (after CRLF) line breaks:
This is paragraph text that is meant to be flowed
across several lines.
However, the sending mailer is converting it to
format=flowed text at a width
of 79 characters, which causes it to look like
this when shown on a smartphone
with only 50 character lines.
Not only does K-9 not support displaying flowed lines, but it is also not capable of creating them.
When setting “text only” as formatting, K-9 will encode them by default as 8bit instead of quoted printable. That allows by standard only for paragraphs of 997 characters length. If you write a longer one, there will be a hard line break. You cannot see this in your compose window. It will just be inserted on sending the mail.
So this is intransparent as K-9 mail changes the content after composing the mail. This could be solved with format=flowed.
I think this task is quite important, and it is labeled "help wanted" for good reason. If anyone wants to see this done, I encourage them to contribute it as a pull request, or as an intermediate step outline the implementation in prose here.
this was done in #1835, just forgot to close this issue :)
Is this really fixed? I'm using version 5.401 and seeing something similar:
I start writing an email on my computer, then switch to K-9 to upload some files from my phone. When I re-open the draft on my computer, there are line-breaks on every line at about 80 characters.
If this is something different, I'm happy to open a new issue.
As far as I can tell, only the display of format=flowed messages should be fixed (and is now finally in the stable version), not the composing. I cannot test it myself because 5.400 is out only since December 27th, but F-Droid did not update its version yet (still 5.208).
For my part I would be happy if all these messages will be displayed properly. Composing is another problem. But I agree that it is unacceptable when K-9 does not respect the format of a previously composed mail. It looks as if format=flowed is removed from the header on saving the draft, so that your mail client on the computer cannot display properly, even if the raw mail content did not change.
Maybe you can check this? Compose a mail on your computer (what client are you using?) and have a look at the headers. Under _Content-Type_ there should be format=flowed. Then open the mail in K-9, resave and then reopen on your computer. Check if the header line still is the same.
Sorry, I think I may have been mistaken. I am using gmail in a browser as my client on my computer, and it seems that that is the source of the linebreaks.
When I looked closer into the headers, there was no format field. Just content="text/html; charset=UTF-8". The headers are unchanged by K-9, the only changes to metadata were nonces.
It turns out that gmail is inserting linebreaks every 60 characters even before I open it in K-9. I never would have expected gmail to be inserting linebreaks, since when I change the width of my compose window in gmail, the lines dynamically adjust. Anyway, it might be something for K-9 to be aware of, but I'd say it's google's problem, not K-9's.
I just checked in Thunderbird 60.4.0 and my plain text emails are:
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
The quick brown fox jumps over the lazy dog. All work and no play makes
Jack a dull boy
In K-9 v5.600 they are:
Content-Type: text/plain;
charset=utf-8
Content-Transfer-Encoding: quoted-printable
The quick brown fox jumps over the lazy dog=2E All work and no play makes=
=20
Jack a dull boy
This clearly isn't working correctly as it should. It creates even more problems when you reply to something that was drafted in Thunderbird.
https://fastmail.blog/2016/12/17/format-flowed/
https://joeclark.org/ffaq.html
I'd really like to see this fixed.
@tya99: If you use that text in K-9 Mail and input it without any line breaks it comes out like you'd expect:
Content-Type: text/plain;
charset=utf-8
Content-Transfer-Encoding: quoted-printable
The quick brown fox jumps over the lazy dog=2E All work and no play makes J=
ack a dull boy
But if you manually add the line break to the input it will of course also end up in the output.
That being said, replying to a format=flowed message doesn't do the right thing. I created issue #3868 for that.
Most helpful comment
It is still not supported in current version 5.007 (from F-Droid).
This seems like a violation of mail standards, namely RFC 2646 or the newer RFC 3676. The RFC describes the
format=flowedfeature, which allows sending mails with soft linebreaks (i.e. they are wrapped at display width) and arbitrary length of a line. This is backwards compatible so that clients not supporting it will still display them at least readable.K-9 receiving and displaying e-mails
K-9 cannot interpret the
format=flowedheader flag, so those mails are always displayed with fixed linebreaks after <80 characters, no matter of my current display width. That renders wide displays useless as I will not be able reading mails over the full width.A more severe problem arises when displaying such a mail on a device with a limited display width, e.g. smartphones. Here the text is forced into a mixture of soft (at display border) and hard (after CRLF) line breaks:
Sending mails with long lines is intransparent and changes content
Not only does K-9 not support displaying flowed lines, but it is also not capable of creating them.
When setting “text only” as formatting, K-9 will encode them by default as 8bit instead of quoted printable. That allows by standard only for paragraphs of 997 characters length. If you write a longer one, there will be a hard line break. You cannot see this in your compose window. It will just be inserted on sending the mail.
So this is intransparent as K-9 mail changes the content after composing the mail. This could be solved with
format=flowed.