Конференция "Сети" » Кодировка темы сообщения и поля " Отправитель" [D6, WinXP]
 
  • Yurij-7 (29.01.08 17:29) [0]
    Уважаемые мастера, прошу помочь разобраться почему при отправке сообщения, тема и поле отправитель приходят в виде крякозябликов


    Form1.IdMessage1.Body.Clear;
     Form1.IdMessage1.ClearBody;
     Form1.IdMessage1.Clear;
     Form1.IdMessage1.ClearHeader;

     Form1.IdMessage1.CharSet := 'windows-1251';
    //Form1.IdMessage1.ContentType := 'mime';
     Form1.IdMessage1.ContentType := 'text/html; charset=windows-1251';
     //Form1.IdMessage1.ContentTransferEncoding := 'quoted-printable';
     Form1.IdMessage1.ContentTransferEncoding := '8bit';
  • umbra © (29.01.08 17:40) [1]
    а где зжесь тема и отправитель?

    uses ..., IdEncoderMIME, ....;
    {......................}
    Form1.IdMessage1.Subject := '=?windows-1251?B?' + TIdEncoderMIME.EncodeString ('вот моя тема') + '<>?=';



    Точно так же с отправителем.
  • Yurij-7 (29.01.08 17:42) [2]
    когда подключаю IdEncoderMIME, пишет что нет файла IdEncoderMIME.dcu

    первый раз работаю с ИНди, ничего не могу понять.
  • clickmaker © (29.01.08 17:56) [3]
    IdCoderMIME.pas?
  • Yurij-7 (29.01.08 18:00) [4]
    да, такого файлика у меня нету ((
  • Anatoly Podgoretsky © (29.01.08 18:48) [5]
    > Yurij-7  (29.01.2008 18:00:04)  [4]

    Инди они разные бывают и каждый раз революция.
    А ты сделал поиск по вхождению?
  • Yurij-7 (29.01.08 19:14) [6]
    да. и всеравно ничего не находит (
  • umbra © (30.01.08 10:52) [7]

    > IdCoderMIME.pas

    этот модуль есть и в инди 9 и в 10
  • Плохиш © (30.01.08 10:56) [8]

    > Yurij-7   (29.01.08 17:29)  
    > Уважаемые мастера, прошу помочь разобраться почему при отправке
    > сообщения, тема и поле отправитель приходят в виде крякозябликов

    Осмелюсь предположить, что у клиента по-умолчанию стоит кодировка отличная от русской...
  • Yurij-7 (30.01.08 17:20) [9]
    нет, кодировочка как раз 'windows-1251'
    а когда на английском пишу тему то все ок получается ...
  • Dennis I. Komarov © (30.01.08 17:25) [10]
    > [9] Yurij-7   (30.01.08 17:20)

    А знаешь что такое "B?" и зачем оно там?
  • Yurij-7 (30.01.08 17:30) [11]
    чесно сказать не вкурсе ...
    подскажите пож.
  • Dennis I. Komarov © (30.01.08 17:33) [12]
    Сперва покажи то, на что жалуешся, а то мы этого так и не увидели
  • Yurij-7 (30.01.08 17:38) [13]
    Ну это обычные черные палочки в поле отправитель и тема, это даже символом нельзя назвать
  • Dennis I. Komarov © (30.01.08 17:43) [14]
    А header посмотреть? rfc 822 говорит о чем?
  • Yurij-7 (30.01.08 18:00) [15]
    это в пришедшем письме ?
  • Dennis I. Komarov © (30.01.08 18:03) [16]
    Есть функция EncodeString в модуле EncdDecd. Можешь ее прикрутить к [1]
  • Dennis I. Komarov © (30.01.08 18:05) [17]
    > [15] Yurij-7   (30.01.08 18:00)

    Письмо это структурированный текст. Не плохо было бы разобраться в нем.

    Subject: [Subjecct text]
    From: [Sender]
  • Yurij-7 (30.01.08 18:09) [18]
    сделал так Form1.IdMessage1.Subject := EncodeString ('Открытие');
    и пришло вот такое : zvLq8Pvy6OUg6Oft5fHgICLP5fDx7u3g6/zt7uPuIOrw5eTo8u7i4O3o/yI=
  • umbra © (30.01.08 18:14) [19]

    > и пришло вот такое : zvLq8Pvy6OUg6Oft5fHgICLP5fDx7u3g6/zt7uPuIOrw5eTo8u7i4O3o/yI=
    >

    Все правильно Просто надо после приема сделать
    DecodeString

  • Yurij-7 (30.01.08 18:15) [20]
    а как же это сделать если у каждого пользователя свой почтовый клиент, я батом пользуюсь, а ктото Аутглюком :)
  • umbra © (30.01.08 18:16) [21]

    > сделал так Form1.IdMessage1.Subject := EncodeString ('Открытие');
    >
    > и пришло вот такое : zvLq8Pvy6OUg6Oft5fHgICLP5fDx7u3g6/zt7uPuIOrw5eTo8u7i4O3o/yI=
    >

    а, не досмотрел. Я ж вам в [1] писал, что надо присваивать.
  • Yurij-7 (30.01.08 18:20) [22]
    у меня наверное инди какойто не такой, у меня нет модуля IdEncoderMIME (((((
  • Dennis I. Komarov © (30.01.08 18:23) [23]
    > [22] Yurij-7   (30.01.08 18:20)

    Конечно не такой :)
    Ты не понимаешь что делает EncodeString и зачем
  • umbra © (30.01.08 18:26) [24]
    uses ..., EncdDecd, ....;
    {......................}
    Form1.IdMessage1.Subject := '=?windows-1251?B?' + EncodeString ('вот моя тема') + '<>?=';

  • Dennis I. Komarov © (30.01.08 18:27) [25]
    > [24] umbra ©   (30.01.08 18:26)

    А зачем "<>"
  • Yurij-7 (30.01.08 18:33) [26]
    супер, убрал "<>"  и все вышло
    огромное спасибо за помощь, чесно, очень признателен !
    в примерах все так красиво пишут но когда берешь практику выход все не так :)))
  • Yurij-7 (30.01.08 18:36) [27]
    если не трудно то подскажите еще такой момент
    делаю так
    Form1.IdMessage1.ContentType := 'text/html; charset=windows-1251';

    но когда в атач прикладываю 2 рисунка или текстовика и 1 htm файл, то он по умолчанию не открываеться в почтовом клиенте, надо самому открывать, а как сделать что бы сообщение было в виде вэбстранички ?
  • Dennis I. Komarov © (30.01.08 18:41) [28]
    > [27] Yurij-7   (30.01.08 18:36)

    Content-Type: multipart/mixed; boundary="--NextPart--"

    This is a multi-part message in MIME format.

    --NextPart--
    Content-Type: application/octet-stream;
    name="test.ext"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment;
    filename="test.ext"

    UEsDBBQAAgAIABBolyo7/YSyEwkAAMIgAAAIAAAAZGF0YS5odG2tWltv21YSfk6B/odZF7tIC114
    l+UjE3AduzZgr4VEQFvAL7rQFhFa1FJ03GyRX7Q/YV+ybR+KdIM2QRbbl2IZWbRlXWiKarIb2IU6
    ...

    изучай RFC
  • umbra © (30.01.08 18:46) [29]

    > А зачем "<>"
    >

    это ошибка в днк :)
  • Yurij-7 (30.01.08 18:49) [30]
    ну насколько я понял то отправитель и тема сообщения это в одной части сообщения и кодируются одним способом, а атачмент это другая часть сообщения и надо кодировать другой кодировкой ?
  • Anatoly Podgoretsky © (30.01.08 19:17) [31]
    > Yurij-7  (30.01.2008 18:49:30)  [30]

    Без RFC тебе удачи не видать, будешь тыкаться в потемках и даже не понимать ответов и кода.
  • Yurij-7 (30.01.08 19:40) [32]
    ок, спасибо, буду изучать
  • umbra © (30.01.08 23:05) [33]

    > но когда в атач прикладываю 2 рисунка или текстовика и 1
    > htm файл, то он по умолчанию не открываеться в почтовом
    > клиенте, надо самому открывать, а как сделать что бы сообщение
    > было в виде вэбстранички ?
    >

    именно это подробно описано в рфц 1872. Там и примеры есть.
  • Anatoly Podgoretsky © (31.01.08 09:17) [34]

    > но когда в атач прикладываю 2 рисунка или текстовика и 1
    > htm файл, то он по умолчанию не открываеться в почтовом
    > клиенте, надо самому открывать, а как сделать что бы сообщение
    > было в виде вэбстранички ?

    Никак, в виде странички изображения отдельны от таблицы, это означает, что у тебя должно быть минимум три письма, и картинки должны быть сохранены на диск, а оригинальное письмо должно быть отредактировано.
    Картинки в письме не передаются как вебстраничка, а как вебархив, кроме случаев, когда картинки вообще не передаются, а тебя за ними заставляют лезть в Интернет.

    Читай RFC, иначе так и останешься дураком.
    RFC это честь, ум и совесть программиста.
  • Yurij-7 (31.01.08 20:48) [35]
    :) спасибо
    буду изучить
 
Конференция "Сети" » Кодировка темы сообщения и поля " Отправитель" [D6, WinXP]
Есть новые Нет новых   [134431   +14][b:0][p:0.002]