| 
							ymhuk
							
						 | 
						
							
								  | 
								
									
									 «  : 30-03-2006 20:21 »   | 
								
								 | 
							  
							 
							Кто знает как можно автоматически обновлять базу данных (у меня база в Access - использую ADO) по электронной почте. То есть при получении мыла, база должна автоматически обновляться. Нужна любая инфа, ссылки, примеры. Заранее ОГРОМНОЕ СПАСИБО всем желающим помочь. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Знаешь мало - поучись, знаешь много - поделись. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							zubr
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #1 : 31-03-2006 03:58 »   | 
								
								 | 
							  
							 
							Надо делать прогу, которая будет через определенные промежутки времени получать почту, ее анализировать, при получении нужной информации ее обрабатывать и обновлять БД. Для получения почты можно использовать готовые Delphi-компоненты, реализующие протокол POP3, к примеру TIdPOP3. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							PooH
							
								Глобальный модератор
								
								 
								  Offline
								Пол:   
								
								... и можно без хлеба!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #2 : 31-03-2006 06:21 »   | 
								
								 | 
							  
							 
							Узай The Bat (мож и у других клиентов такая фича есть - не знаю). Настрой сортировщика писем на автоматическое сохранение аттача (с перезаписью существуещего файла) или с сохранением и запуском внешней программы. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Удачного всем кодинга! -=x[PooH]x=- 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Igel
							
						 | 
						
							
								  | 
								
									
									«  Ответ #3 : 01-04-2006 15:38 »    | 
								
								 | 
							  
							 
							Так, посмотрим на задачу со стороны. Вырисовывается такая картина: 1. Есть БД и программа работающая с этими данными. 2. Изменения/обновления данных приходят по почте. 2.1. Это либо новые записи - конкретный случай       Это "макрос" - который дополняет или изменяет или удаляет записи в БД - общий случай. 2.2. Почтовый клиент может быть любой, следовательно программа, которая работает с БД должна в любом случае получить и переработать данные. 2 варианта: писать надстройки для всех почтовых клиентов самых распространенных или перехватывать почту до клиента.
  Что еще? А да , можно сделать в самой программе классическое обновление. А уж как оно идет - через почту или сразу через сайт - не суть важно. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Ёжики, это не только ценные шкурки... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							ymhuk
							
						 | 
						
							
								  | 
								
									
									 « Ответ #4 : 03-04-2006 20:04 »   | 
								
								 | 
							  
							 
							zubr, я понял, что нужно испльзовать протокол POP3, и я знаю как это делать с помощью стандартного для Делфи 5 компонента NMPOP3. Компонентом TIdPOP3 я пробовал пользоваться ("метод нучного тыка"), естественно ничего не получилось, потому что у NMPOP3 и TIdPOP3 разные свойства и функции.  Я уже начал подумывать создать второе приложение, которое будет принимать почту и передавать ее основной моей проге. На всякий случай еще раз уточню задачу: клиенты отсылают мне инфу на мыло. Я принимаю почту соответствующую сначала заданной теме письма(например, "обновление"), а затем и содержащимся данным. Ну и затем обновляю данные в базе. Мне обязательно нужно использовать Делфи 7, но я не могу подключить пакет FastNet, содержащий NMPOP3, с которым моя задача была бы уже решена. Я думаю может мне удалить пакет Indy и тогда конфликт исчезнет. PooH, мне нужно чтобы использовалась только моя прога, а идея интересная. Igel, писать надстройки для почтовых клиентов это слишком для курсовой. Ну, а почту в общем перехватывать и не надо. Жду новых идей или просто советов. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Знаешь мало - поучись, знаешь много - поделись. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							RomCom
							
						 | 
						
							
								  | 
								
									
									 « Ответ #5 : 04-04-2006 12:19 »   | 
								
								 | 
							  
							 
							ИМХО Indy получше будет чем FastNet. Если есть возможность скачай и поставь последнию версию Indy, кажется 10 последняя. Там все просто, вот пример приема почты: var CountMsg,i:Integer; begin  IdPOP31.Host:='pop.mail.ru';  IdPOP31.Username:='my_login';  IdPOP31.Password:='my_pasword';  IdPOP31.Connect;  CountMsg:=IdPOP31.CheckMessages; //количество сообщений в ящике  Label1.Caption:=inttostr(CountMsg);  for i:=1 to CountMsg do  begin   IdPOP31.Retrieve(i,IdMessage1); //принимаем сообщение №i   //чтото делаем с сообщением в IdMessage1  end;  IdPOP31.Disconnect; end;
   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 04-12-2007 21:30 от Алексей1153++ »
								 | 
								
									 
									Записан
								 | 
							  
							 
							R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							ymhuk
							
						 | 
						
							
								  | 
								
									
									 « Ответ #6 : 04-04-2006 20:33 »   | 
								
								 | 
							  
							 
							RomCom, сппасибо попробую. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Знаешь мало - поучись, знаешь много - поделись. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							x77
							
								Модератор
								
								 
								  Offline
								Пол:   
								
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #7 : 04-04-2006 21:32 »   | 
								
								 | 
							  
							 
							а в каком виде приходит обновление? что это? новый мдб-файл, который надо целиком заменить? тогда просто настраивается почтовик на сохранение вложений от определённого юзера или с определённой темой в определённую папку, пишется батник, который проверяет эту папку на наличие определённого файла, (разархивирует его, если надо), и заменяет им базу. вызов самого батника прописывайтся в Sheduled Jobs виндов на каждую ночь, например. большинство подобных задач решаются безо всякого программирования в принципе, так и передай своему преподу   если данные приходят в виде некоего скрипта или отдельного файла, который надо объединять с существующей базой, а не тупо заменять её, то там правильнее сделать нормальный репликационный механизм. можно взять любой готовый с поддержкой ОДБС и натравить его на присылаемый по почте апдейты. вообще говоря, я бы рекомендовал продублировать темку в ветке общие вопросы или в базах данных, потому что аксцесс ну очень специфичная приблуда, очень тесно интегрированная с теми же почтовыми службами (аутглюк), и вполне вероятно, что там для подобных вещей может быть предусмотрен  штатный функционал.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							ymhuk
							
						 | 
						
							
								  | 
								
									
									 « Ответ #8 : 06-04-2006 21:25 »   | 
								
								 | 
							  
							 
							Все всем впасибо прога работает и принимает почту и базу обновляет. Пришлось делать своим способом - через 2 приложения. Но теперь еще одна проблема не сделать прогу отправляющую мыло. Не пойму smtp сервер мне отказывает что-ли. Подскажите который не трубует авторизации. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Знаешь мало - поучись, знаешь много - поделись. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							RomCom
							
						 | 
						
							
								  | 
								
									
									 « Ответ #9 : 07-04-2006 00:58 »   | 
								
								 | 
							  
							 
							По моим наблюдениям сейчас все более менее солидные smtp сервер требуют авторизации. И это гуд. Веление времени, спам и все такое   Отправку делаешь через IdSMTP (Indy)?  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							DemonicAlligator
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #10 : 07-04-2006 10:46 »   | 
								
								 | 
							  
							 
							Простая консольная программа. Отправляет файлы из определённого каталога скопом на е-mail. Без авторизации. Если требуется авторизация - Indy-компоненты легко позволяют её сделать... program MailSender;
  {$APPTYPE CONSOLE}
  uses   Windows, Classes, SysUtils,   IdSMTP, IdMessage;
  Const
      LogFileName:String='mail.log';     FilesDirName:String='c:\mail\files\';     OutboundDirName:String='c:\mail\outbound\';     FromAddress:String='твой e-mail';     FromHost:String='твой smtp-сервер';     RecipientAddress:String='e-mail получателя';     FromName='Твоё имя';
  Var i:Integer;     lFile:TextFile;     SMTP:TIDSmtp;     Msg:TIdMessage;     fileList:TStringList;
  Function ToAnsi(iStr:String):String; Var      pBuf:PChar; Begin      pBuf:=AllocMem(length(iStr)+1);      OemToChar(PChar(iStr),pBuf);      Result:=String(pBuf);      FreeMem(pBuf); end;
  Procedure BuildFileList; var   sr: TSearchRec; Begin     FileList:=TStringList.Create;     if FindFirst(FilesDirName, faAnyFile, sr) = 0 then     begin       repeat         begin          if (sr.Attr and (faVolumeID	+ faDirectory))<>0 Then Continue;          FileList.Add(ExtractFilePath(FilesDirName)+sr.Name);         end;       until FindNext(sr) <> 0;       FindClose(sr);     end; end;
  begin
      Writeln('MailSender 1.0.1.1');     If (UpperCase(ParamStr(1))='-HELP')or(ParamCount<2) Then      Begin        Writeln('MailSender <files_path> <recipient> [<outbound>]');        Halt;      end;
      If ParamCount>0 Then      FilesDirName:=IncludeTrailingPathDelimiter(ParamStr(1));
      If ParamCount>1 Then      RecipientAddress:=ParamStr(2);
      If ParamCount>2 Then      OutboundDirName:=ParamStr(3);
      Writeln('Checking files...');     BuildFileList;
      If FileList.Count <=0 Then Exit;
      SMTP:=TIdSmtp.Create(nil);     SMTP.Host := FromHost;     SMTP.Port := 25;     SMTP.MailAgent := 'MailSender 1.0.1.1';
      Msg:=TIdMessage.Create(nil);     Msg.From.Name := FromName;     Msg.From.Address := FromAddress;     Msg.ReplyTo.EMailAddresses := FromAddress;     Msg.UseNowForDate := True;     Msg.Recipients.EMailAddresses := RecipientAddress;     Msg.MessageParts.Clear;     Msg.Encoding := meMIME;     Msg.AttachmentEncoding := 'MIME';     Msg.MessageParts.AttachmentEncoding := 'MIME';
      For i:=0 to FileList.Count-1 do     Begin      With TIdAttachment.Create(Msg.MessageParts,FileList[i]) do        Begin         ContentTransfer:='base64';        End;     End;
      Msg.SaveToFile(OutboundDirName+RecipientAddress+'_'+                    FormatDateTime('ddmmyyyyhhmmss',Now)+'.msg');
      try       try         Writeln('Sending...');         SMTP.Connect(10000);         SMTP.Send(Msg);         Writeln('Sent...');       except on E:Exception do        Begin         Writeln('ERROR: ' + E.Message);        End;       end;     finally       if SMTP.Connected then SMTP.Disconnect;     end;     Msg.Free;     Smtp.Free;     Writeln('Clean-up...');     For i:=0 to FileList.Count-1 do      DeleteFile(FileList[i]);     Writeln('Finished'); end.
   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 04-12-2007 21:31 от Алексей1153++ »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							x77
							
								Модератор
								
								 
								  Offline
								Пол:   
								
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #11 : 07-04-2006 10:48 »   | 
								
								 | 
							  
							 
							Синий Аллигатор, добро пожаловать на борт    
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	| 
		
		
	 | 
	
		
		
			
				
					
						| 
							Never
							
						 | 
						
							
								  | 
								
									
									 « Ответ #13 : 07-04-2006 15:40 »   | 
								
								 | 
							  
							 
							х77, Ахтунг! Синий вышел  на тропу   ))  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							не умеете летать- не мучайте метлу! 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							ymhuk
							
						 | 
						
							
								  | 
								
									
									 « Ответ #14 : 10-04-2006 21:05 »   | 
								
								 | 
							  
							 
							RomCom, с помощью Инди. Вот с авторизацией часто возникает проблема. Иногда сервак шлет мессагу, мол попробуйте еще раз позднее, но и позднее не выходит. Синий Аллигатор, код схож с моим. Попробую еще раз. Надеюсь получится. Ну вощето у меня выбора нет     нужна 5 по курсовой.    
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Знаешь мало - поучись, знаешь много - поделись. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							ymhuk
							
						 | 
						
							
								  | 
								
									
									 « Ответ #15 : 12-04-2006 22:15 »   | 
								
								 | 
							  
							 
							Еще одна проблема. На этот раз с отчетами в Дельфи. Я создаю в Rave отчет, подключаю его к проекту.  Могу просмотреть только отчеты не берущие данные из какой-либо базы данных. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Знаешь мало - поучись, знаешь много - поделись. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							x77
							
								Модератор
								
								 
								  Offline
								Пол:   
								
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #16 : 13-04-2006 17:02 »   | 
								
								 | 
							  
							 
							наверное, кроме создания отчёта, стоит создать и базу данных?   а вообще, Рэйв - это зло. неужели нельзя фаст-репорт юзать или что-то ещё приличное?  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							ymhuk
							
						 | 
						
							
								  | 
								
									
									 « Ответ #17 : 13-04-2006 18:09 »   | 
								
								 | 
							  
							 
							x77,  база есть. То есть рейв использовать не стоит. Что-то с фастом я вообще не знаком. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Знаешь мало - поучись, знаешь много - поделись. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							x77
							
								Модератор
								
								 
								  Offline
								Пол:   
								
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #18 : 13-04-2006 18:14 »   | 
								
								 | 
							  
							 
							так сделай на том, с чем знаком. есть масса вариантов, которые позволяют обходиться вообще без генераторов отчётов - формировать и распечатывать HTML на основе данных в базе, или скармливать всё в Excel, к примеру. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							ymhuk
							
						 | 
						
							
								  | 
								
									
									 « Ответ #19 : 13-04-2006 18:22 »   | 
								
								 | 
							  
							 
							Да  ятак всегда и поступаю. Но почему-то раньше я уже пользовался этим проверенным способом, а теперь не получается Рейв не может подключиться к данным. Может потому что я использую ADO при подключении(иначе никак у меня Access), а раньше я использовал BDE/ 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Знаешь мало - поучись, знаешь много - поделись. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							x77
							
								Модератор
								
								 
								  Offline
								Пол:   
								
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #20 : 13-04-2006 18:32 »   | 
								
								 | 
							  
							 
							цепляйся а аксесу через ODBC - и получишь то же самое БДЕ, если проблема только в этом. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							ymhuk
							
						 | 
						
							
								  | 
								
									
									 « Ответ #21 : 14-04-2006 20:41 »   | 
								
								 | 
							  
							 
							x77, попробовал походу проблема не в этом. Сейчас пытаюсь через html строить  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Знаешь мало - поучись, знаешь много - поделись. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							x77
							
								Модератор
								
								 
								  Offline
								Пол:   
								
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #22 : 14-04-2006 21:04 »   | 
								
								 | 
							  
							 
							база в принципе читабельна? она открывается откуда-нибудь кроме абсцесса?
  я не понимаю, что именно не идёт... настроить ОДБС-подключение - достаточно тривиально. Заюзать БДЕ для доступа - тем более. Выкинуть данные в эксель или в ХТМЛ - вообще ерунда. 
  что конкретно не выходит? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							ymhuk
							
						 | 
						
							
								  | 
								
									
									 « Ответ #23 : 14-04-2006 21:55 »   | 
								
								 | 
							  
							 
							база читается отлично. Сейчас занимаюсь отчетами через html. Кое-что выходит спасибо за совет я про этот прием даже не подумал. А вот Райв так и не зароботал так что от него окончателно откказался. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Знаешь мало - поучись, знаешь много - поделись. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							x77
							
								Модератор
								
								 
								  Offline
								Пол:   
								
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #24 : 14-04-2006 22:31 »   | 
								
								 | 
							  
							 
							спрашивай, только одна просьба на будущее. на новые вопросы создавай новые темы    
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							ymhuk
							
						 | 
						
							
								  | 
								
									
									 « Ответ #25 : 14-04-2006 23:21 »   | 
								
								 | 
							  
							 
							x77, будет много хлама. Пока вопросов нет. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Знаешь мало - поучись, знаешь много - поделись. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							ymhuk
							
						 | 
						
							
								  | 
								
									
									 « Ответ #26 : 18-04-2006 18:38 »   | 
								
								 | 
							  
							 
							Всем  спасибо за помощь. Сдал курсач. 5 обеспечена. А обновление даже никто не проверял поверили на слово. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Знаешь мало - поучись, знаешь много - поделись. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							x77
							
								Модератор
								
								 
								  Offline
								Пол:   
								
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #27 : 18-04-2006 21:02 »   | 
								
								 | 
							  
							 
							ymhuk, поздравляем    
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	 |