![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Задумка написать почтовый клиент, который не будет скачивать письма на компьютер для прочтения в целях безопасности, а лишь будет оповещать о получении нового письма с выводом информации об отправителе, с возможностью перейти на сайт, удалить и т.д. вот собственно наброски кода, перепробовал разные варианты, в чем я ошибаюсь?
Код:
procedure TForm1.Timer1Timer(Sender: TObject); var i,j: integer; begin timer1.Interval:=1000; timer1.Enabled:=true; POP3.Host:='pop3.mail.ru'; POP3.Port:=110; POP3.Username:='ххх'; POP3.Password:='******'; pop3.Connect; i:= pop3.CheckMessages; if i>j then begin showmessage('У вас новое сообщение!'); end; j:=i; pop3.Disconnect; end; Последний раз редактировалось Admin, 29.07.2009 в 22:10. |
#2
|
||||
|
||||
![]() Гм... а задать интервал и состояние таймера не проще при создании формы? а лучше - в Object Explorer?
Имхо, у тебя начальное состояние таймера - false, и он никогда не включится. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#3
|
|||
|
|||
![]() Идея в принципе не совсем правильная. Хотя в большинстве случаев может и сработать. Кто сказал, что за время между проверками, пользоваталь не удалит часть писем? Это раз.
Два. Ни где, ни в каких RFC не сказано, что между подключениями к серверу он должен сохранять порядок писем. Это так. Темы к размышлению ![]() |
#4
|
||||
|
||||
![]() по моему такое делать не правильно!!!Т.к. я уже делал почтовые клиенты и знаю этот код лажа.
Причина: Конектится через каждую минуту к серваку это ппц будет грузить прогу (возможно зацикливание), ди потом где гарантия что он порграмма успеет приконектится к серверу и проверить почту за 1 сек? (Возможно веть такое что скорость нета маленькая). . Советую: Конект сделать допустим на 1 кнопочку. А в таймер запихать такое Код:
if pop3.connected then if pop3.checkmessage>0 then ShowMessage('ура почтальном печкин приехал ;)') else ShowMessage('Нету писем =('); [ iNewStar.Ru ] - Продам! Вопросы в ПМ |
#5
|
||||
|
||||
![]() timer1.Interval:=1000;
дык если каждую секунду проверять то забанят ) Делаю курсовые и лабораторные на Delphi, GPSS, Assembler, C++. Заказать и почитать отзывы можно на сайте, который указан в этой теме Дешево! |
#6
|
|||
|
|||
![]() Цитата:
этот код тоже не верный, т.к. pop3.checkmessage больше нуля, если ящик не пустой, а наличие новых сообщение подтверждается сравниванием настоящего значения с предыдущим |
#7
|
|||
|
|||
![]() все работает вот код. Объявил j, как глобальную переменную в отдельном юните, обнулил ее в FormCreate. не подскажите какова допустимая частота подключения к почтовому серверу, раз в минуту допустим или чаще можно???
Код:
uses glob; procedure TForm1.FormCreate(Sender: TObject); begin POP3.Host:='pop3.mail.ru'; POP3.Port:=110; POP3.Username:='p-pp'; POP3.Password:='123456'; timer1.Interval:=10000; timer1.Enabled:=true; j:=0; end; procedure TForm1.Timer1Timer(Sender: TObject); var i:integer; begin pop3.Connect; i:= pop3.CheckMessages; memo1.Lines.Add(inttostr(j)+' '+inttostr(i)); if i>j then begin showmessage('У вас новое сообщение!'); j:=i; end; pop3.Disconnect; end; procedure TForm1.FormDestroy(Sender: TObject); begin pop3.Disconnect; end; Последний раз редактировалось Admin, 29.07.2009 в 22:10. |
#8
|
|||
|
|||
![]() И так программа работает, если кому-то надо могу код выложить, осталось 2 вопроса:
(1) до первой проверки на наличие новых писем переменная j:=0, а значит если пришло письмо в момент, когда программа выключена, а затем я ее включил то сообщения о получении письма не будет, а если в сравнении убрать and (j<>0), то при первом включении всегда будет одно лишнее сообщение Цитата:
(2) программа письма на комп не скачивает, а значит нужна возможность по нажатии определенной кнопки перейти на почтовый сервер, так вот вопрос: как сделать так, чтобы поля логин и пароль брались из эдитов и шаг авторизации пропускался, т.е. мне надо сразу попасть во входящие на mail.ru например |