-
драсте... сидел сутки но не продвинулся ни на шаг...вопрос по indy 10(pop smpt) и delphi 2009...читал кучу советов но не один не помог..проблема с кодировкой(знаю обсасывался этот вопрос со всех сторон).. проблема номер раз приходит письмо IdMessage1.Headers.Values['Content-Type'] показывает Windows-1251 а выводит что то типа Qepbhq иль на подобии пробовал разбирать письмо перебором частей [Code]for i:= 0 to IdMessage1.MessageParts.Count-1 do begin[/Code] но IdMessage1.MessageParts.Count всегда =0 указывания [Code]procedure TForm1.IdMessage1InitializeISO(var VHeaderEncoding: Char; var VCharSet: string); begin VCharSet:='windows-1251'; VHeaderEncoding := 'Q';//B end;[/Code] толку не дают настройка IdMessage1 на Windows-1251 аналогично..эффект 0...перекомпилить indy тож не могу..каких то файлов не хватает(если можно носом в ссылку где можно качнуть) а то на http://www.indyproject.org не работает качалка... заранее спасибо
-
> ther (29.01.2009 13:06:00) [0]
Какие у тебя заголовки в письме, какая реальная кодировка?
-
из bat Content-Type: text/plain; charset=windows-1251
-
Content-Type, если он относится к нужному куску указан правильно, а какой реальный текст в этом куске?
-
пасиб но уже не не нужно..я перескочил на ics...indy по описанию уж сильно глюкавая..ics хоть безгеморно кодировку определяет...кроме некоторых
-
with LastGeneratedHeaders do begin {CC: If From has no Name field, use the Address field as the Name field by setting last param to True (for SA)...} Values['From'] := EncodeAddress(FromList, HeaderEncoding, TransferHeader, ISOCharSet, True); {do not localize} Values['Subject'] := Subject;//EncodeHeader(Subject, [], HeaderEncoding, TransferHeader, ISOCharSet); {do not localize} Values['To'] := EncodeAddress(Recipients, HeaderEncoding, TransferHeader, ISOCharSet); {do not localize} Values['Cc'] := EncodeAddress(CCList, HeaderEncoding, TransferHeader, ISOCharSet); {do not localize} {CC: SaveToFile sets FGenerateBCCListInHeader to True so that BCC names are saved when saving to file and omitted otherwise (as required by SMTP)...} if FGenerateBCCListInHeader = False then begin Values['Bcc'] := ''; {do not localize} end else begin Values['Bcc'] := EncodeAddress(BCCList, HeaderEncoding, TransferHeader, ISOCharSet); {do not localize} end;
-
Это в модуле IdMessage.pas надо исправить. И перекомпилить IndyProtocolsX.dpk
-
или написать такую штуку: SysLocale.PriLangID := LANG_UKRAINIAN;
-
подобная проблема есть и в HTTPServer. решения данной проблемы нигде нет. может кто что подскажет?
-
Прог, ты гений! :-)
Я сколько искал решение и вот как все просто -
SysLocale.PriLangID := LANG_UKRAINIAN;
Спасибо!!!
-
У меня строка "SysLocale.PriLangID := LANG_UKRAINIAN;" добавлина вот так: pPostMessage := TIdMessage.Create(self); try pPostMessage.Date := now; pPostMessage.Recipients.Add.Address := 'xxxx@telnet.ua'; pPostMessage.From.Address := 'xxxx@telnet.ua'; pPostMessage.From.Name := cCurrentUserName; SysLocale.PriLangID := LANG_UKRAINIAN; pPostMessage.CharSet := 'windows-1251'; pPostMessage.ContentType := 'text/plain; charset=windows-1251'; pPostMessage.ContentTransferEncoding := 'quoted-printable';
-
> подобная проблема есть и в HTTPServer. решения данной проблемы > нигде нет.может кто что подскажет?
Байты, вообще, везде одинаковые (с). Если иначе никак - то можно побайтно сравнить, что куда отдаётся. Сам 9-ку правил слегка на 2009-й делфе. Как я понял (по куче хинтов), её вообще не затачивали под работу на 2009-й. Ничего - мозг благополучно вправлен, HTTPServer 9-ки нормально заработал. Где-то 3-4 часа работы... Всё в юникодовость упирлось, что и ожидалось.
-
Удалено модератором Примечание: спам
-
Удалено модератором
-
|