> Sounds reasonable. Changing it. But I don't see wrong to have a fallback. Take into account that we'll be breaking the flow for the whole inbox.

I don't know what you mean with breaking the flow of the inbox.
Regarding the fallback encoding I think that would be good if we have a high probability of getting lucky with the default, But I think that the problem is that we would need to try at least 3 of most used encodings to see which one works better in order to not being as wrong as the chardet code :/

Something like:
```python
# this will try to encode the data with a list of encodings and stop if it works
for enc in ['ISO-8859-1', 'utf-8']:  # use here the most used encodings
    try:
        data = data.encode(enc)
        break
    except UnicodeError:
        pass

if isinstance(data, unicode):  # any of the encodings worked
    data = data.encode(enc, 'replace')  # enc could be any of the most used, anyway, it will show '?'s
```

And even if we use the code above, we may encode some data without failure and it may not be the right encoding, showing other characters instead of the originals.

> Maybe it makes more sense to switch the if / try order?
Yes, is better :).