Большой Воронежский Форум
» Программирование>Проблема с NMPOP31 в Дельфи 6. Не удается принять почту.
RDman 23:38 30.01.2007
Привет. Ну если с отправкой почты и кодировкой письма)) более - менее разобрался, теперь есть небольшая проблемка с получением почты. Для приема почты мспользуется NMPOP31, свойства которого установлены в соотв. с тем как указано в букваре)) по Дельфи. По порядку все: прогу пишу пока для пробы, состоит она из 3х кнопок и поля Memo. При коннекте ошибки не возникает, а возникает почему то при дисконнекте. И еще главное: принятое сообщение хранится в MailMessage, как правильно с ним работать и с его свойствами? Для наглядности прикрепляю картинки с кодом. Подскажите плиз.
Изображения
Нажмите на изображение для увеличения
Название: Code.JPG
Просмотров: 14
Размер:	39.3 Кб
ID:	89918   Нажмите на изображение для увеличения
Название: Error.JPG
Просмотров: 18
Размер:	20.5 Кб
ID:	89919  

[Ответ]
RDman 23:40 30.01.2007
Button1Click - устанавливает связь,
Button2Click - разрывает связь, при этом возникает ошибка,
Button3Click - как получить текст из письма, со всеми остальными делами(например с вложениями, с заголовком письма и т.д.).
Спасибо. [Ответ]
$t@R0stA 23:57 30.01.2007
RDman, милый человечек я тебе помочь ничем не смогу....Я просто буду поддерживать тебя морально.... [Ответ]
X0R 08:34 31.01.2007
Приложи полный код проекта. [Ответ]
RDman 20:36 31.01.2007
x0r, дык это весь код. Все остальное стандартно создаваемое Дельфями. [Ответ]
X0R 20:52 31.01.2007
Я делал так:
Это подключение к серверу

procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
begin
IdPOP31.Host := LEServ.Text;
IdPOP31.Username := LEName.Text;
IdPOP31.Password := LEPass.Text;
IdPOP31.Connect;
if IdPOP31.Connected then
Memo1.Lines.Add('Соединение с сервером установлено')
else
begin
Memo1.Lines.Add('Ошибка при соединении!');
Exit;
end;
Memo1.Lines.Add('Новых сообщений на сервере: ' + IntToStr(IdPOP31.CheckMessages));
for i := 1 to IdPOP31.CheckMessages do
begin
IdPOP31.RetrieveHeader(i, IdMessage1);
ListBox2.Items.Add(IdMessage1.Recipients.EMailAddr esses + ' -- ' + IdMessage1.Subject);
end;
end;

А это получение сообщения

procedure TForm1.ListBox2DblClick(Sender: TObject);
var
i : Integer;
s : String;
begin
IdPOP31.Retrieve(ListBox2.ItemIndex + 1, IdMessage1);
Memo2.Clear;
Memo2.Lines.AddStrings(IdMessage1.Body);
end; [Ответ]
RDman 20:56 31.01.2007
x0r, cпасибо, буду пробовать. А что касается вложений (если они есть в получаемом письме), как их извлечь? [Ответ]
X0R 21:05 31.01.2007
Насчет вложений хз, а дельфы у меня ща нет, так в данный момент C# учу Но если уж совсем никак у тебя не пойдет мож и поставлю [Ответ]
RDman 21:13 31.01.2007
x0r, ясно ... Да разберусь думаю. Долго возиться времени нет просто... [Ответ]
RDman 23:13 01.02.2007
IdPOP31.RetrieveHeader IdPOP31.CheckMessages в Д6 нет таких свойств в этом компоненте... почти половины свойств нет(( [Ответ]
X0R 08:14 02.02.2007
RDman
Я в 2006 писал, у меня Indy10 стояла. Рекомендую обновить дельфу [Ответ]
RDman 13:27 02.02.2007
x0r, ок обновимся) [Ответ]
Вверх