Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.10.2010, 19:16
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию И снова индейцы

Пытаюсь сделать на инди почтовый клиент, хотя бы с приемом почты. Написал, однако вместо русского текста получаю абракадабру. Пример:

? au naaeae aeiau iiauoa,ianoi a?iaa anou. > I?eia?ii oae. Anou aua ii?aeaiey?

вместо

Я бы сделал диоды повыше,место вроде есть.

> Примерно так. Есть еще пожелания?

Что это за кодировка? Как это исправить? В заголовках сообщений все нормально, только в тексте бредятина. Спасибо.

З.Ы. Indy 10, Delphi 10.
для получения использую
IdPOP31.Retrieve(j, IdMessage2);
Ответить с цитированием
  #2  
Старый 20.10.2010, 15:27
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Никто не сталкивался?
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 20.10.2010, 21:08
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

ВНИМАНИЕ, ВНИМАНИЕ!!!
Я нашел лазейку в Indy. Не знаю, как они это сделали, но при использовании TIdMessage.SaveToFile в файл пишется НОРМАЛЬНЫЙ русский текст (если он конечно не в base-64 и не закодирован). Отделяется BODY в файле двумя enter'ами (строка #13+#10+#13+#10). Соответственно берем, считываем файл в строку, ищем через POS(#13+#10+#13+#10,s) в ней нужное место и копируем оттуда и до конца в idMessage.Body.
Сейчас думаю как сделать нормальное определение Base64 и MIME.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #4  
Старый 21.10.2010, 18:43
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Еще почему-то этот инди не читает Multi-Part Message. Он считает их обычным текстом. А в этом тексте полно директив, которые пользователю незачем. Мда, индейцы меня разочаровали...
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #5  
Старый 23.10.2010, 18:52
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Меня разочаровал ты.
1. Пишешь в википедии "кракозябры", и получаешь полную таблицу "правильная/ошибочная кодировки". Находишь нужную пару, и ищешь в гугле процедуру преобразования.
2. Мультипарт - это то что с файлами? Тогда попробуй вытащить аттачи. Заюзай гугл / мозг.

Я тоже раньше не любил Indy, но с ними надо просто разобраться... Хотя, в программах, где критичен малый размер, лучше использовать WinSock, но это лирическое отступление.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #6  
Старый 24.10.2010, 00:24
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

"кракозябры" не помогут ни сколько - я и руками анализировал выводимые символы, и пол интернета облазил по этому поводу - все бестолку. Везде пишут мол "в 7й делфе все норм, а в 9й и выше нихрена." А переставлять делфу ради одного проекта неохота.

мультипарт - не только файлы. там могут быть просто куски текста в разной (или даже в одной) кодировках, могут быть файлы, картинки, HTML - все, что душе угодно. У меня на почте одно такое лежит - где индеец выводит че-то вроде ==-part12345?content-type=text/plain и т.д. потом текст в base-64 и в конце типа конец части в том же стиле. И так несколько раз с разными данными.

А насчет винсока - это как раз в тему))) на нем есть стандартное для мыла? или же все дешифровщики, анализаторы и т.д. надо руками писать?
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #7  
Старый 24.10.2010, 00:36
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Скажу больше - руками придётся писать даже запросы к серверу, и обрабатывать всё, что он тебе пришлёт
З.Ы. ссылки в подписи запрещены, перечитай правила. Админ будет ругацо
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj

Последний раз редактировалось PhoeniX, 24.10.2010 в 00:42.
Ответить с цитированием
  #8  
Старый 24.10.2010, 15:41
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Нее, мне мыло не настолько нужно))) С винсоком я поработать и не прочь, но вот разбираться с протоколами мыла, запросами/ответами - обойдусь
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:35.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter