Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.26;
Скачать: CL | DM;

Вниз

TIdMessage не могу получить текст письма !   Найти похожие ветки 

 
312kbps   (2006-11-08 14:25) [0]

mail: TIdMessage;
...............
memo.Lines.AddStrings(mail.Body);

но текст письма я не вижу, вместо теска -
"This is a multi-part message in MIME format."

как это иправить ?


 
Anatoly Podgoretsky ©   (2006-11-08 14:35) [1]

> 312kbps  (08.11.2006 14:25:00)  [0]

Это и есть текст письма, это первая (псевдо) часть, это одназначно говорит, что у тебя есть и другие части. Их тоже надо прочитать, а не только первую.


 
Anatoly Podgoretsky ©   (2006-11-08 14:36) [2]

> 312kbps  (08.11.2006 14:25:00)  [0]

Ах да, забыл главное, ошибка у тебя не то что в 17 строке, а конкретно в точках.


 
app ©   (2006-11-08 14:37) [3]

Делаю очередное исключение, не закрывают ветку как офтопик, а пересылаю ее в Начинающие, Сетей она не заслуживает, но не думай что это буду делать в следующий раз.


 
312kbps   (2006-11-08 14:40) [4]

Как мне получить другие части текста письма ?


 
Anatoly Podgoretsky ©   (2006-11-08 14:49) [5]

> 312kbps  (08.11.2006 14:40:04)  [4]

Сказали же ошибка в точках, там ищи и не заставляй нас заниматься телепатией.


 
312kbps   (2006-11-08 14:58) [6]

if IdPOP3.Connected Then IdPOP3.Disconnect;
 IdPOP3.Host := "хост";
 IdPOP3.Username := "логин";
 IdPOP3.Password := "пароль";
 IdPOP3.Connect();
 i:=IdPOP3.CheckMessages;
 memo.Lines.Add("Всего писем : "+IntToStr(i));
 memo.Lines.Add("");
 if i>0 then
 if IdPOP3.Retrieve(i,mail) then
   begin
     memo.Lines.Add("Кому: "+mail.From.Address);
     memo.Lines.Add("От кого: "+mail.Recipients.EMailAddresses);
     memo.Lines.Add("Тема: "+mail.Subject);
     memo.Lines.AddStrings(mail.Body);
   end;

Не пойму про какие точки Вы гворите ?
текст приема письма, как правильно получить текст письма ?


 
312kbps   (2006-11-08 15:23) [7]

Если я правильно понял, то количество частей текста пиьсма получается -
mail.MessageParts.Count

Как спозицироваться на другой части ?
mail.MessageParts.Items[1] - так не получается (


 
Anatoly Podgoretsky ©   (2006-11-08 15:28) [8]

Смотри справку по TIdMessage, мне ее смотреть неинтересно, поэтому сказать как не могу.


 
312kbps   (2006-11-08 15:38) [9]

Anatoly Podgoretsky
ОГРОМНОЕ ТЕБЕ СПАСИБО , проФФФесионал Анатолий !

Спасибо что не откзал в помощи !


 
Anatoly Podgoretsky ©   (2006-11-08 15:54) [10]

> 312kbps  (08.11.2006 15:38:09)  [9]

Сказал как есть, это относится к свойствам и методам IdMessage справка у тебя есть, зачем мне смотреть неинтерсующую тебя тему. Причину я тебе указал, теперь твоя очеред приложить руки. Вот если будут более конкретные вопросы, а не смотреть справку, то возможно еще что ни будь напишу.

Но у тебя есть возможность стать в позу обиженного, потребовать код, послать меня в эротическое путешествия и т.д. или отнестись конструктивно.


 
312kbps   (2006-11-08 16:02) [11]

Хорошо , конкретные вопросы )))
с MessageParts разобрался
memo.Lines.AddStrings(TIdText(mail.MessageParts.Items[1]).Body);

но вместо нормального текста с рускими буквами, какой-то набор букв и иероглифоф
как мне кодировку изменить или что с этим сделать ?


 
umbra ©   (2006-11-08 16:18) [12]

так надо проверять тип части сообщения. Это может быть, например, прицепленный файл. Надо проверять способ кодирования части. Это может быть plain(простой текст), Base64 или QuotedPrintable. В двух последних случаях надо часть декодировать перед тем как в мемо совать.


 
312kbps   (2006-11-08 16:43) [13]

я в своем почтовом клиенте создаю письмо, набираю произволный текст и отправляю себе.
этой прогой я получаю письмо и пытаюсь прочесть текст !
ни каких файлов я не прикрепляю.

Как декодировать перед тем как в мемо совать ?


 
312kbps   (2006-11-08 16:45) [14]

проверку делаю так
if mail.MessageParts.Items[1] is TIdText then
   memo.Lines.AddStrings(TIdText(mail.MessageParts.Items[1]).Body);


 
umbra ©   (2006-11-08 17:00) [15]

а св-во IdMessage.Charset чему равно?


 
312kbps   (2006-11-08 17:22) [16]

mail.CharSet:="koi8-r"; пробовал windows, тоже не помагает (

а потом весь текст ввиде html, все в тегах (

"<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=koi8-r">
<META content="MSHTML 6.00.2900.2963" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
......."


 
umbra ©   (2006-11-08 17:32) [17]

так все у Вас работает. Это и есть тело вашего сообщения. Просто мемо умеет отображать только текст, а хтмл для него - слишком сложно


 
312kbps   (2006-11-08 17:36) [18]

хорошо, я в своем клиенте настроил чтоб исходящее сообщение было ввиде текста, все равно абра-кадабра ))) приходит !

если текст ввиде хтмл, как его можно прочитать просто как текст ?


 
stone ©   (2006-11-08 17:50) [19]


> а потом весь текст ввиде html, все в тегах (

Не весь есть такая же часть (MessagePart) без тегов, только абракадабра от этого не исчезнет, нужно перевести символы в нужную кодировку. Для этого есть несколько способов - самы простой банальная замена символов в цикле.


 
312kbps   (2006-11-08 17:54) [20]

не понял )))
в какой части MessagePart можно без тегов ?
цикл это не серьезно, можно же как-то програмными средствами поменать кодировку, а вот как ????


 
stone ©   (2006-11-08 18:03) [21]


> в какой части MessagePart можно без тегов ?

Их несколько, при хтмл-формате письма оно обязательно MIME, обычно при разборе MessageParts сначала идет  MessagePart без тэгов, а потом с тэгами. Таких частей может быть несколько, особенно если письма с вложениями и т.д.

> цикл это не серьезно, можно же как-то програмными средствами
> поменать кодировку, а вот как ????

есть что-то типа TidDecoder, но я сейчас не вспомню всех тонкостей работы с ним


 
Ketmar ©   (2006-11-08 18:47) [22]

вообще-то никакого надёжного варианта кроме разбора html руками нет.


 
Anatoly Podgoretsky ©   (2006-11-09 00:03) [23]

> 312kbps  (08.11.2006 17:54:20)  [20]

> в какой части MessagePart можно без тегов

Тебе же дали URL по теории сетей для того, что бы его читал.

В части text/plain


 
312kbps   (2006-11-09 09:54) [24]

в самой первой части MessagePart находится текст тела письма, без тегов

но вот с кодировкой ни чего не входит (((


 
312kbps   (2006-11-09 10:14) [25]

mail.CharSet:="multipart/alternative; boundary="----=_NextPart_000_0283_01C703E7.6E28E110""

это как понимать ?
может это помочь в декодировании текста ?


 
Anatoly Podgoretsky ©   (2006-11-09 10:20) [26]

> 312kbps  (09.11.2006 09:54:24)  [24]

> в самой первой части MessagePart находится текст тела письма, без тегов

Предположение дикое, не подтвержденное ни RFC ни писателями и самое главное никогда не выполняемое, ну если только не напишешь кривого писателя, который полностью плевал на RFC
Но тогда я сомневаюсь, что эти сообщения кто то будет понимать.


 
Anatoly Podgoretsky ©   (2006-11-09 10:21) [27]

> 312kbps  (09.11.2006 10:14:25)  [25]

Ну так и понимай - буква в букву - это просто RFC заголовок, в котором только латинские буквы,
а конкретный вопрос?


 
Anatoly Podgoretsky ©   (2006-11-09 10:23) [28]


> как мне кодировку изменить или что с этим сделать

Изменить с помощью процедур перекодировки.
не меняя - указать кодировку, в том предмете, про который ты спрашиваешь.


 
Anatoly Podgoretsky ©   (2006-11-09 10:25) [29]


> цикл это не серьезно, можно же как-то програмными средствами
> поменать кодировку

Если не нравится цикл, то используй таблицы перекодировки или чужие функции без исходного текста.


 
312kbps   (2006-11-09 10:25) [30]

практически ни чего не понял (((
что такое RFC ?
действительно из первой части MessagePart дастается только текст без тегов

но вот как с кодировкой разобраться, я так и не понял, даже не понял в каком нарпавлении искать, работать !


 
Anatoly Podgoretsky ©   (2006-11-09 10:28) [31]

Зря ты в сети полез, предварительно не поинтересовавшись теорией.
RFC - Request For Comments


 
312kbps   (2006-11-09 10:31) [32]

да почему в сети - то ?

принимаю письмо и всего лишь хочу чтоб текст письма был читабельным

я так понимаю (может и ошибаюсь) , что в этом ни чего сложного нет, просто я не знаю (даже понятия не имею) как это декодировать ! :-(


 
Anatoly Podgoretsky ©   (2006-11-09 10:32) [33]


> но вот как с кодировкой разобраться, я так и не понял

А вот теперь тебя не понять, в такой постановке вопрос слишком обширный, можно говорить на любые темы, можно говорить и телепатировать что ты так и не понял.


 
312kbps   (2006-11-09 10:35) [34]

как текст письма -
"&#245;&#210;&#193;! H&#193;&#205; &#208;&#210;&#197;&#196;&#204;&#207;&#214;&#201;&#204;&#201; &#203;&#210;&#213;&#208;&#206;&#217;&#202; &#203;&#207;&#206;&#212;&#210;&#193;&#203;&#212; &#206;&#193; &#208;&#207;&#211;&#212;&#210;&#207;&#202;&#203;&#213; 12-&#220;&#212;&#193;&#214;&#206;&#207;&#199;&#207;
&#214;&#201;&#204;&#207;&#199;&#207; &#196;&#207;&#205;&#193;. &#245; &#215;&#211;&#197;&#200; &#194;&#213;&#210;&#206;&#217;&#202; &#220;&#206;&#212;&#213;&#218;&#201;&#193;&#218;&#205;. &#247;&#217;&#208;&#201;&#204;&#201; &#206;&#193; &#210;&#193;&#196;&#207;&#211;&#212;&#209;&#200; 2 &#209;&#221;&#201;&#203;&#193;
&#208;&#201;&#215;&#193;."

перевести в нормальный читабельный вид -
"Ура! Hам предложили крупный контракт на постройку 12-этажного
жилого дома. У всех бурный энтузиазм. Выпили на радостях 2 ящика
пива.
"


 
Anatoly Podgoretsky ©   (2006-11-09 11:05) [35]

> 312kbps  (09.11.2006 10:31:32)  [32]

Оно и так читабельно, ничего делать не надо. Надо научиться пользоваться почтовым клиентом.
Декодировать это просто Ch := Tbl[Ch];


 
Anatoly Podgoretsky ©   (2006-11-09 11:07) [36]

> как текст письма -

Укажи правильную кодировку в почтовом клиенте.
То что ты сюда послал перекодированию не подлежит.


 
Anatoly Podgoretsky ©   (2006-11-09 11:09) [37]

Если ты забыл ссылку, то повторяю http://book.itep.ru
Плюс поиск в Сети по слову RFC, неполный набор rfc есть на моем сайте, порядка 3500 штук, свежий в Сети.


 
Ketmar ©   (2006-11-09 12:12) [38]

>[32] 312kbps 9-Nov-2006, 10:31
>просто я не знаю (даже понятия не имею) как это декодировать ! :-(
три волшебных буквы: RFC. ага.


 
312kbps   (2006-11-09 14:24) [39]

хоть бы один пример привели , как правильно (в читабельном виде) прочитать текст письма !


 
Ketmar ©   (2006-11-09 14:54) [40]

о. оно ещё и возмущается. не хотят, видите ли, бесплатно пахать на великого 312kbps. приведём. хоть 10, хоть сто. оплату озвучь только.


 
Anatoly Podgoretsky ©   (2006-11-09 15:02) [41]

А про что вопрос, вроде бы вопрос давно решен, вижу по сообщениям от автора.


 
312kbps   (2006-11-09 15:50) [42]

Удалено модератором


 
Anatoly Podgoretsky ©   (2006-11-09 16:02) [43]

Я так и понял, что ты сам же приводя правильный текст не понял, что ты поимел доступ к частям.

Не коверкая чужие ники, закрою.


 
312kbps   (2006-11-09 16:07) [44]

укажи мне,пожалуйста, где искать правильный(читабельный) доступ к тексту письма ?

как ображаться к частям я уже понял


 
Anatoly Podgoretsky ©   (2006-11-09 16:10) [45]

> 312kbps  (09.11.2006 16:07:44)  [44]

Это уже вопрос не этой ветки, зачем помойку устраивать?


 
312kbps   (2006-11-09 16:14) [46]

новую верку что то не хочется открывать )
мне бы получить ответ и я исчезну ))))


 
Anatoly Podgoretsky ©   (2006-11-09 16:30) [47]

> 312kbps  (09.11.2006 16:14:46)  [46]

Ну как хочешь?
А модератор потерпит это безобразие, хорошо если в Прочее перекинет, а если закроет или удалит?
А ты что владелец данного форума, ведь его многие читают и делают поиск. Ну зачем мне в нее заходить по поводу кодировки, если здесь получают текст письма?


 
312kbps   (2006-11-09 16:40) [48]

понял
закрывайте )))


 
Anatoly Podgoretsky ©   (2006-11-09 17:03) [49]

Ну что-ж раз сам просишь, но ответ будет симметричным



Страницы: 1 2 вся ветка

Текущий архив: 2006.11.26;
Скачать: CL | DM;

Наверх




Память: 0.59 MB
Время: 0.054 c
2-1162831438
Sp1r1t
2006-11-06 19:43
2006.11.26
Таймер


15-1162915986
ArtemESC
2006-11-07 19:13
2006.11.26
"Следы в джунглях" Моэм


1-1161092738
MegaVolt
2006-10-17 17:45
2006.11.26
Некорректно отображаются Hint в ListView с OwnrDraw :(


2-1162797963
dbnz3
2006-11-06 10:26
2006.11.26
вопрос


15-1162815807
TIF
2006-11-06 15:23
2006.11.26
C++ или Delphi