Форум: "Начинающим";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];
ВнизПроверка почты Найти похожие ветки
← →
Novichok_New © (2007-02-17 16:27) [0]Создаю свою программу для приёма/передачи почты с помощью бесплатного компонента «SakEmail»:
procedure TForm1.CntClick(Sender: TObject);
begin
SakPOP1.Host := EditHost.text;
SakPOP1.UserId := EditUserId.text;
SakPOP1.UserPasswd := EditPasswd.text;
StatusBar1.Panels[0].text := "Wait a moment, please...";
SakPOP1.connect;
if SakPOP1.POPError then
begin
MessageDlg( "Connect failed. Maybe the server is down or not responding.",
mtError, [mbOk], 0);
exit;
end;
if not SakPOP1.login then
begin
ShowMessage("Unauthorized access...");
exit;
end;
SakPOP1.Init;
showMessage( "You have " + intToStr( SakPOP1.NewMsgsCount) + " new msg(s) of " +
intToStr( SakPOP1.MsgsCount));
BtnCancel.Enabled := true;
sakPOP1.retrieveAllMessages( SakMsgList1);
BtnCancel.Enabled := false;
SakPOP1.Disconnect;
if SakMsgList1.count > 0 then
begin
currentMsg := 0;
showCurrentMsg;
end;
StatusBar1.Panels[0].text := "Done. " + intToStr( SakMsgList1.count) + " msgs retrieved.";
end;
За отсутствие документации к оному, появилось несколько вопросов:
1. Как прописать сюда код для кнопки «Стоп», прерывающей приём почты?
2. Как дополнить код следующим: при завершении загрузки письма автоматически удалять его с сервера. Если к письму существует «аттачмент», то не удалять письмо и задать вопрос – загрузить файл сейчас или сделать это позже? Соответственно, как из данного кода «выдернуть» строки отвечающие за загрузку аттачмента, чтобы сделать это позже?
← →
Novichok_New © (2007-02-17 16:41) [1]На первый вопрос я предполагаю ответ:
procedure TForm1.BtnCancelClick(Sender: TObject);
begin
SakPOP1.Cancel;
end;
Но,ведь, для чего-то BtnCancel.Enabled := false - написали! Значит, в процессе приёма почты, нажатие на неё может вызвать ошибку?
← →
S@shka © (2007-02-17 22:47) [2]Ответ на данный вопрос - не возможен
ибо "За отсутствие документации к оному"
+ BtnCancel.Enabled := true;
sakPOP1.retrieveAllMessages( SakMsgList1);
BtnCancel.Enabled := false;
retriveALL - не предполагает прерывания....
Итог: Читать по одному сообщению через а-ля retriveMessage (messageID)
← →
Novichok_New © (2007-02-18 08:50) [3]Может, действовать по аналогии с другими компонентами?
Как, например, при использовании Indy удалять письмо с сервера и прерывать приём почты?
← →
Novichok_New © (2007-02-18 09:39) [4]Можно поставить вопрос по-другому:
- как загрузить только заголовки (От, Кому, Тема, Дата);
- после выбора писем пользователем (допустим, с помощью CheckBox-ов в ListView) загрузить только эти письма;
- полностью очистить почтовый ящик;
← →
Novichok_New © (2007-02-18 09:45) [5]Мне главное – узнать: как отделять аттачмент от письма, или (лучше) как загружать письмо по – частям (отдельно «Тема», отдельно «Текст письма» … «аттачмент»)?
Если с удалением писем с сервера ещё как-то можно разобраться, то про такие операции никто не писал!
← →
Novichok_New © (2007-02-18 18:39) [6]Народ!
Неужели нет способа проверить почту без закачки вложений?
← →
Dmitrij_K (2007-02-18 18:53) [7]
> как отделять аттачмент от письма, или (лучше) как загружать
> письмо по – частям (отдельно «Тема», отдельно «Текст письма»
> … «аттачмент»)?
AFAIK
можно только загружать отдельно заголовок или заголовок+несколько строк тела письма. Отдельно загрузить аттач или текст письма не получится
← →
Novichok_New © (2007-02-19 16:02) [8]можно только загружать отдельно заголовок или заголовок+несколько строк тела письма...
Друг, как?!? Второй день, перерыл везде - одни упоминания, что подобное возможно! Indy, FastNet, SakEmail... пример бы для чего-угодно!
Плиз...
~~:-(
← →
Dmitrij_K (2007-02-19 16:12) [9]В Indy функция так и называется "Получить Заголовок" по-английски.
← →
Novichok_New © (2007-02-19 16:48) [10]Я правильно понимаю:
POP3.Connect; // подключение по протоколу POP3
POP3.RetrieveHeader(intIndex, IdMessage); //ТОЛЬКО ЗАГОЛОВОК ПИСЬМА :-)
POP3.Retrieve(1,IdMessage); // получение сообщения с body
POP3.Disconnect; // разрыв связи
???
← →
Novichok_New © (2007-02-19 16:55) [11]Если да, то из ниже перечисленного можно "выудить" из POP3.RetrieveHeader(intIndex, IdMessage);
Label1.Caption := IdMessage.From.Text;
Label2.Caption := IdMessage.Recipients.EmailAddresses;
Label3.Caption := IdMessage.CCList.EMailAddresses;
Label4.Caption := IdMessage.Subject;
Label5.Caption := FormatDateTime("dd mmm yyyy hh:mm:ss", IdMessage.Date);
Label6.Caption := IdMessage.ReceiptRecipient.Text;
Label7.Caption := IdMessage.Organization;
← →
Novichok_New © (2007-02-19 16:55) [12]Если да, то что из ниже перечисленного можно "выудить" из POP3.RetrieveHeader(intIndex, IdMessage);
Label1.Caption := IdMessage.From.Text;
Label2.Caption := IdMessage.Recipients.EmailAddresses;
Label3.Caption := IdMessage.CCList.EMailAddresses;
Label4.Caption := IdMessage.Subject;
Label5.Caption := FormatDateTime("dd mmm yyyy hh:mm:ss", IdMessage.Date);
Label6.Caption := IdMessage.ReceiptRecipient.Text;
Label7.Caption := IdMessage.Organization;
← →
Dmitrij_K (2007-02-19 23:07) [13]
> Novichok_New © (19.02.07 16:55) [12]
ЭТО ВОПРОС?
Вытянуть можно все что есть в заголовке сообщения
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.06 c