OEAPI is enconding agnostic, in order to use non-english characters you
must encode them as specified with RFC 2047.
Outlook Express is an ANSI application and requires the operating
system's support for other languages to be installed to properly display
non-english characters, if the required fonts are not installed it will
display question marks (?) instead.
Other limitation of OE is that it will not display the subject correctly
if the correct charset is not specified in a MIME header. It requires
this in the header of the message:
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="utf-8";
reply-type=original
Content-Transfer-Encoding: 8bit
You may need to change this if you are using other encoding or html format.
Thank you for contacting Nektra's OEAPI Support.
Regards,
Federico
--
Nektra Advanced Computing
http://www.nektra.com
alexander goldberg wrote:
> Since OEAPI reads/writes parts of e-mail messages into BSTR it must
> encode different MIME single-byte sequences into double-byte BSTR.
> Therefore your library should contain parts of code which decode/
> encode MIME. Am I right?
>
The enconding and decoding operations are done by OE/WinMailf, OEAPI
only requests that data to them.
> Now I'm talking about error in the MIME encoding in OEAPI. Outlook
> Express encoded into MIME all non-english characters in the name of
> attachments when the message was created.
>
> Now I call OEMessage.GetFilename function and it should return me
> attachment's filename as BSTR. OEAPI returns me filename in BSTR
> neither as valid Unicode data nor MIME single-byte string but as
> string of the "question" marks.
>
This seems to be a bug in the GetFilename() and GetBodyProp() methods of
OEAPI.
> Please take into account - I've spoken about incoming message which
> had been created by remote mail client, and this message was CORRECTLY
> mime-encoded. Now OE/WM display this incoming message correctly but
> OEAPI does not.
>
Sorry, I've erroneously interpreted that you wanted to write new
messages, not to read existing ones.
> You are not right. OE6 is partially Unicode-compatible. As I wrote
> already I tested message with Russian/Arabic/Hebrew characters and OE
> displayed Attachments, Subject and Body text properly (except
> message's subject in the message list box).
>
We know that OE is not a Unicode application and some properties like
To, From, Subject are stored as ANSI strings, regardless of the encoding
specified in the messages, that's the information OE displays in the
message list, and that's the information OEAPI gets, so this fields
won't appear correctly. Nevertheless this properties will still be
readable directly from the messages using the GetBodyProp() method, once
it's fixed.
> Moreover I can't but mention that Windows Mail is fully Unicode-
> compatible and it displays multi-language messages absolutely
> correctly. But OEAPI under WM does not work properly with characters
> which are not present in the current User Locale (not in the installed
> fonts).
We are using the same OE interfaces that that work with ANSI on Windows
Mail, we will make research about WM's Unicode interfaces, so we'll need
time to check this out.
> I'm ready to send you the above mentioned message with multi-languages
> data strings as .eml file and I'm ready to upload somewhere
> screenshots with correct OE and incorrrect OEAPI demo screens. Fill
> free to contact me for any additional information you need, to help
> you reproduce the problem I've come across.
>
> Hope hearing from you soon, since your reply is crucial for my further
> plans and actions.
>
> Alex Goldberg
>
Thanks for providing those messages, we have checked this out and it
seems that this is a bug on GetBodyProp() and GetFilename() methods.
Thank you for your reports.
Please take you account on other methods which returns BSTR data too. For example GetSubject() and GetNormalSubject() methods have same bug.
Hmm... I just checked non-european characters in "To" and "From" header properties (OE6). Really some problem exists when OE inserts data from the "Address Book" (it seems Address Book is not Unicode- compatible by itself). But in case you enter address manually it will be stored as MIME correctly. Moreover OE6 create/read/display 'Subject' property correctly (as I mentioned earlier).
If I'll create message by myself and use SetBodyProp(), SetBodyFromFile(), AttachFile() whether I must specify non-english text/filenames as Unicode data string (BSTR) or I have to encoded them into MIME by myself beforehand?
Thank you very much for your excellent support.