Инди: TidMessage премахва всички акценти, как да деактивирам това?

Изпращам имейли, използвайки компонентите indy TidSMTP и TidMessage.

Писмата, които получавам са без ударения.

Ако направя например:

MyTIdMessage.Body.Text := 'Tèst';

Докато получавам имейла, виждам „Тест“ вместо „Тест“

Има ли начин да кажете на TIdMessage да не игнорира ударенията или това е грешка?

Забележка: Използвам Indy 10.5.8.0


person LaBracca    schedule 22.11.2010    source източник
comment
коя версия на delphi използвате? Току-що направих тест с Delphi XE/Indy 10.5.7 и работи много добре, изпращайки през сървър за обмен (игнорирайки коя версия) към gmail.   -  person jachguate    schedule 22.11.2010
comment
Акцентите изискват използването на Unicode, който не се поддържа във VCL/RTL преди Delphi 2009. Indy трябва да премине през много допълнителни ръчни обръчи, за да поддържа Unicode в Delphi 2007 и по-стари, така че винаги е възможно да сме пропуснали нещо тук-там.   -  person Remy Lebeau    schedule 23.11.2010
comment
AFAIK акцентите не се нуждаят от Unicode - само кодиране за прехвърляне на съдържание и набор от знаци, който ги поддържа. Например с charset=iso-8859-1 и Content-Transfer-Encoding:quoted-printable   -  person    schedule 23.11.2010
comment
Разбира се, символите извън 7-битовия диапазон трябва да бъдат правилно кодирани, като се използва форматът за кодиране на прехвърляне, т.е. използването на печатаем в кавички più става pi=F9. Инди кодира ли правилно съобщение? Надявам се.   -  person    schedule 23.11.2010


Отговори (2)


Уверете се, че сте задали правилното Enconding, ContentTransferEncoding и CharSet. Тъй като е един от най-старите протоколи, пощата е проектирана да се използва от компютри, използващи само 7 бита, и следователно знаците, различни от US-ASCII, трябва да бъдат кодирани. Има няколко различни начина (цитирани-за печат и др.)

Също така проверете събитието OnInitializeISO.

person Community    schedule 22.11.2010
comment
Благодаря решението беше MyIdMessage.Encoding := meDefault; - person LaBracca; 23.11.2010

Уверете се, че сте задали правилния CharSet, като направите това

MyIdMessage.CharSet := 'US-ASCII';

стойностите на низовете са изброени в масива IdCharsetNames.

person Mike Taylor    schedule 22.11.2010
comment
US-ASCII не изглежда най-удобният за акцент набор от знаци. За повечето западноевропейски езици бих използвал ISO-8859-1 или ISO-8859-15 (евро и пълна поддръжка на фински/френски), ако използването на UTF-8 не е опция. Windows-1252 е почти подобен на ISO-8859-1, но също така включва -15 знака (с различни кодови точки). Други езици се нуждаят от различни набори от символи (или UTF). - person ; 23.11.2010
comment
„US-ASCII“ беше само пример за това как да го настроя, възнамерявах да използват набора символи, който отговаря на техните нужди. - person Mike Taylor; 23.11.2010