Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 20.03.2008, 23:05   #1
GragDen
Пользователь
 
Регистрация: 29.08.2007
Сообщений: 10
По умолчанию

Здравствуйте.
у меня вот какая проблема:
написал программку получения почты с помощью компонентов Indy (TIdMessage и TIdPop3), при приеме письма некорректно показывает тело итему сообщения.
Вот отрывок кода:
POP3.Host:='------'; // адресс почтового сервера
POP3.Port:=110; // порт по которому будет осуществляться подключение
POP3.Username:='------'; // Логин пользователя
POP3.Password:='------'; // пароль пользователя
IdMessage.Clear; // очистка буфера для сообщения
POP3.Connect; // подключение по протоколу POP3
Memo1.Clear; // очистка компонента memo для отображения текста письма.
POP3.Retrieve(1,IdMessage); // получение 1 сообщения
Memo1.Lines.AddStrings(IdMessage.Bo dy); // передача сообщения из компонента IdMessage в memo
POP3.Delete(1); // удаление с сервера, полученного сообщения
POP3.Disconnect; // разрыв связи


Пробовал присваивать кодировки KOI-8 или WINDOWS-1251 - без толку

вот просто текст темы (это как он его показывает) - =?KOI8-R?B?8NLJ18XUIMTFzsnTLg==?=

Помогите чем можете.

Цитата:
Это текст тела письма:

------=_Part_6764_27739647.1205952517715
Content-Type: text/plain; charset=KOI8-R
Content-Disposition: inline
Content-Transfer-Encoding: base64

8NLJ18XUIOTFzsnTy8EKCi0tIArzINXXwdb FzsnFzSDkxc7J0y4K
------=_Part_6764_27739647.1205952517715
Content-Type: text/html; charset=KOI8-R
Content-Disposition: inline
Content-Transfer-Encoding: base64

8NLJ18XUIOTFzsnTy8E8YnIgY2xlYXI9ImF sbCI+PGJyPi0tIDxicj7zINXXwdbFzsnFzS Dkxc7J
0y4K
------=_Part_6764_27739647.1205952517715--

GragDen вне форума
Старый 20.03.2008, 23:34   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

1. добавьте корректную кодироку в headers письма.
Вот отрывок кода:
Цитата:
POP3.Host:='------'; // адресс почтового сервера
POP3.Port:=110; // порт по которому будет осуществляться подключение
POP3.Username:='------'; // Логин пользователя
POP3.Password:='------'; // пароль пользователя
IdMessage.Clear; // очистка буфера для сообщения
POP3.Connect; // подключение по протоколу POP3
Memo1.Clear; // очистка компонента memo для отображения текста письма.
POP3.Retrieve(1,IdMessage); // получение 1 сообщения
Memo1.Lines.AddStrings(IdMessage.Bo dy); // передача сообщения из компонента IdMessage в memo
POP3.Delete(1); // удаление с сервера, полученного сообщения
POP3.Disconnect; // разрыв связи
хоть одну строчку, относящуюся к кодировке видите ?
тема описывается в headers письма, кодировка содержимого у вас отображается в base64 поэтому и бред видите.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума
Старый 27.03.2008, 19:44   #3
GragDen
Пользователь
 
Регистрация: 29.08.2007
Сообщений: 10
По умолчанию

Я использовал CHarSEt, присваивал ему разные кодировки. но без толку. Мож я чето не правильно делаю.

Может кто-нибудь подскажет как написать код с поддержкой кодировки, и какие компоненты при этом нужно использовать?

Последний раз редактировалось KORN; 08.02.2009 в 06:47. Причина: учимся пользоваться правкой
GragDen вне форума
Старый 31.03.2008, 09:17   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Ответ я уже вам написал.
Относительно кодировки в теме письма: вы не указываете кодировку в заголовках письма
По поводу содержимого: незачем указывать base64
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума
Старый 08.02.2009, 05:12   #5
Dark_Cat
Пользователь
 
Регистрация: 08.02.2009
Сообщений: 11
По умолчанию

Также пробовал получить почту с mail.ru, но русские символы в Memo отображаются некорретно. Пробовал прописать кодировку письма в свойстве CharSet не помогает. Предполагаю, что содержимое поля используется только для кодировки отправляемых сообщений.
Возможно, текст сообщения представлен в виде Ansi строки, а компонент индентифицирует его как Unicode? Не подскажете как решить проблему совместимости?
Dark_Cat вне форума
Старый 08.02.2009, 06:49   #6
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

http://programmersforum.ru/showthread.php?t=10231
тебе сюда
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как обновить indy 9 на indy 10 Пилигрим Компоненты Delphi 16 30.04.2010 10:11
Indy 9 против Indy 10 OrdJONY Свободное общение 2 08.11.2008 20:28
INdy + fpc Dmtr Паскаль, Turbo Pascal, PascalABC.NET 7 29.05.2008 00:03
indy v10 [Pr1_Zr4k] Компоненты Delphi 1 21.04.2008 21:42