Following phenomenon can occur in Thunderbird.
Any 'HTML mail send' falls into a Table Cell of following Table.
The 'mystery for user' occurs only in (C-1) of following Table.
When Convertible=Yes, in ordinal environment, reason why a 'HTML mail send' falls into (C-1) is that
recipient is Prefers=Unknown, because user usually keeps Prefers=Unknown in Address Book.
So, "probability of that 'mystery for user' occurs in (C-1)" is drastically changed to low,
by "interpret Prefers=Unknown as HTML or Text".
Group | CaseID | allHtml | allPlain | Prefers=Unknown in recipients | Convertible | Current Action | Comment |
---|---|---|---|---|---|---|---|
allHtml | A-1 | true | false | No Unknown | Yes | nsIMsgCompSendFormat:: HTML | |
A-2 | true | false | No Unknown | No | nsIMsgCompSendFormat:: HTML | ||
allPlain | B-1 | false | true | No Unknown | Yes | nsIMsgCompSendFormat:: PlainText | Auto-Downgrade |
B-2 | false | true | No Unknown | No | nsIMsgCompSendFormat:: PlainText | Auto-Downgrade Possible data loss for mail sender, because Not-Convertible (Note: Never for Text Domain recipent) | |
Mixed (With Unknown) | C-1 | false | false | Unknown is containd in recipients | Yes | nsIMsgCompSendFormat:: PlainText | Auto-Downgrade Cause of mystery for user If Unknown is interpreted as HTML, changed to (A-1) or (D-1). If Unknown is interpreted as Text, changed to (B-1) or (D-1). So, mistery disappers. |
C-2 | false | false | Unknown is containd in recipients | No | UseSendOptions | ||
Mixed (No Unknown) | D-1 | false | false | No Unknown | Yes | nsIMsgCompSendFormat:: PlainText | Auto-Downgrade Can produce same phenomenon as 'mystery for user' but it's not mystery for user because reason of text/plain is understandable/acceptable for user (Text Domain reipient is requested) recipients=HTML+Text(no Unknown) is pretty rare in user's environment | D-2 | false | false | No Unknown | No | UseSendOptions |
Group | CaseID | allHtml | allPlain | Prefers=Unknown in recipients | Convertible | Current Action | Comment |
Note: Convertible : Yes : aConvertible==Convertible::Plain, No : aConvertible==Convertible::No |
Because phenomenon when Auto-Detect is used,
and because relevant conditions is A_function(allHtml, allPlain) and aConvertible,
if a condition is changed from true to false, mystery disappears.
So, many workarouds are already well known.
And some solutions are requested.
Cause of phenomenon | Solution | Description of solution |
---|---|---|
Auto-Detect is used(forcced) | Don't use Auto-Detect | (Official-1) Delivery Format=HTML Only or Both |
Option not to use Auto-Detect | (Enhancement-1) Bug 136502 | |
!allHtml && !allPlain | Get allHtml=true or allPlain=true | (Official-2) Correctly set Prefers=HTML or Prefers=Text in Address Book |
aConvertible is Yes | Force aConvertible=No by tag, color setting | (Workaround-1) background color=#FEFEFE, text color=#FFFFFF etc., use <B></B>, <FONT> etc. |
Fake aConvertible=No, without calling Tb's functiom | (Workaround-2) Install 'Always HTML' addon | |
aConvertible=No from Tb's function | (Enhancement-2) Bug 414299 (tag) | |
(Enhancement-3) Bug 584313 (CSS Style) |
Any HTML falls into a Table Cell of following Table.
If Not-Convertible is returned to "tag which has style attribute",
probability of that 'mystery for user' occurs is drastically changed to low in 'CSS Style is used' cases of Simple HTML cases.
Type-1-1/Type-2-1 is current design/implementation.
Bug 414299 is for Type-2-1.
Bug 584313 is for Type-1-2/Type-2-2.
Repeated "severe/critical/massive format/data loss" seems "CSS data is lost in Type-1-2 case of the Table".
What kind of simple HTML can produce Convertible=Yes? | |||
---|---|---|---|
HTML type | used HTML tag | No CSS | CSS Style is used |
Simple HTML-A (Type-1) | Body Text, <P>, <PRE> only | Type-1-1 O | Type-1-2 O |
Simple HTML-B (Type-2) | Type-1 + <TT>, <A> with link text==link url | Type-2-1 O | Type-2-2 O |
Complex HTML (Type-3) | Tag for format is used | Type-3-1 X | Type-3-2 X |
Minimum "Simple HTML" example:
<html><body bgcolor="#FFFFFF" text="#000000">
Type text here </body></html> Minimum "Complex HTML" example:
<html><body bgcolor="#FEFEFE" text="#000000">
Type text here </body></html> |