Demo.rtf 13 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. {\rtf1\ansi\deff0\adeflang1025
  2. {\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fnil\fprq2\fcharset0 Arial Unicode MS;}{\f3\fswiss\fprq2\fcharset128 Arial;}{\f4\fnil\fprq2\fcharset0 Tahoma;}{\f5\fnil\fprq0\fcharset0 Tahoma;}}
  3. {\colortbl;\red0\green0\blue0;\red0\green0\blue128;\red128\green128\blue128;}
  4. {\stylesheet{\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031\snext1 Normal;}
  5. {\s2\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031\sbasedon1\snext2 Body Text;}
  6. {\s3\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af5\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031\sbasedon2\snext3 List;}
  7. {\s4\sb120\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af5\afs20\lang255\ai\ltrch\dbch\af2\langfe255\hich\f0\fs20\lang1031\i\loch\f0\fs20\lang1031\i\sbasedon1\snext4 caption;}
  8. {\s5\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af5\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031\sbasedon1\snext5 Index;}
  9. {\s6\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031\sbasedon1\snext6 Table Contents;}
  10. {\s7\cf0\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ab\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\b\loch\f0\fs24\lang1031\b\sbasedon6\snext7 Table Heading;}
  11. {\*\cs9\cf2\ul\ulc0\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 Internet link;}
  12. }
  13. {\info{\upr{\author J?rg Meier}{\*\ud{\author J\u246\'3frg Meier}}}{\creatim\yr2005\mo7\dy4\hr12\min17}{\revtim\yr1601\mo1\dy1\hr0\min0}{\printim\yr1601\mo1\dy1\hr0\min0}{\comment StarWriter}{\vern6800}}\deftab709
  14. {\*\pgdsctbl
  15. {\pgdsc0\pgdscuse195\pgwsxn11905\pghsxn16837\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Standard;}
  16. {\pgdsc1\pgdscuse195\pgwsxn11905\pghsxn16837\marglsxn1134\margrsxn567\margtsxn567\margbsxn567\pgdscnxt1 HTML;}}
  17. \paperh16837\paperw11905\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\pgwsxn11905\pghsxn16837\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
  18. \pard\plain \ltrpar\s1\cf0\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs52\lang255\ab\ltrch\dbch\af2\langfe255\hich\f3\fs52\lang1031\b\loch\f3\fs52\lang1031\b {\rtlch \ltrch\loch\f3\fs52\lang1031\i0\b About this Demo}
  19. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs28\lang255\ltrch\dbch\af2\langfe255\hich\f3\fs28\lang1031\loch\f3\fs28\lang1031
  20. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 Because I am concerned with emails and because I like Indy, I decided to extract some of my basic functions from my units and build a program that contains a mailserver and a mailclient as an interface between the internet and a local LAN.}
  21. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 These code snippets now go far beyond the limits of a pure demo, it is something you really can start with. It is in every demo easily shown how to do a job with three and a half lines of code, but when you really want to make something solid out of that,
  22. you have to re-write everything. So it comes often they say \u8222\'1eKeep the demo small, it will show how easy the product is to use!\u8220\'1c. That's wrong! A good product like Indy shows up its power, when really used out in the field. I've got an office-mailsystem usi
  23. ng Indy running for 3 years now (just got an automatic mail for mail number 35,000 processed).}
  24. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031
  25. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 They say \u8222\'1eNinety percent of a project's work is don{\lang1031 e in ten percent of the project's time\u8220\'1c.}}
  26. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031{\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0\lang1031 That's true.}
  27. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs28\lang255\ltrch\dbch\af2\langfe255\hich\f3\fs28\lang1031\loch\f3\fs28\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 Dramatically true!}
  28. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031
  29. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 So what I hope to do is to provide you with the ten percent.}
  30. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031
  31. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 What have we got? A couple of units with more or less separated functionallity. Because I use a database for storing all the information about users, mailboxes and emails, I separated that part into a untit and named it POP3DBModule. When you have a look a
  32. t it -surprise, surprise- no database interface in it. Why? Well I'd like to write a demo for Indy, not for Firebird.}
  33. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 Just 3 properties of that DataModule and 5 Procs and 2 independent Functions.}
  34. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 A Form to set, save and reload some values like accounts, passwords etc. ProviderUnit. Take care, the passwords are not encrypted but stored literally!!!}
  35. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 A RAS-unit to handle dial-up. I included an object to handle some of those functions easier.}
  36. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 I admitt not to have any information from where I've got that RAS initially, I would like to mention that guy, it was a good job.}
  37. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 There is the center of this demo, the MboxDataModule which keeps the Indy Servers and Clients together and provides all the functionallity of sending and receiving mail.}
  38. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 The last unit is the controlling form from where you start and stop the server, set the options and from which automatically send and receive of mail is initiated.}
  39. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031
  40. \par \page\pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs28\lang255\ltrch\dbch\af2\langfe255\hich\f3\fs28\lang1031\loch\f3\fs28\lang1031
  41. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs28\lang255\ltrch\dbch\af2\langfe255\hich\f3\fs28\lang1031\loch\f3\fs28\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 I Checked with Outlook express the function of servers and clients and everythig seemed to work well.}
  42. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031
  43. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 Nothing left for you to do? Oh, yes, you can! Spend the remaining 90 percent of work! Making screenshots (of your own forms) write some documentation, implement database connectivity, write a mail-reader, in short: make a product out of it and if you can \u8211\'13
  44. sell it.}
  45. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 Licensing? Easy done, but DO it:}
  46. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031
  47. \par \pard\plain \ltrpar\s6\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031{\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0\cf1{\fs28\f3 Portions of this software are Copyright (c) 1993 - 2005, Chad Z. Hower (Kudzu) and the Indy Pit Crew - }}{\rtlch \ltrch\loch\f0\fs24\lang1031\i0\b0\cf1{\field{\*\fldinst HYPERLINK "http://www.IndyProject.org/" }{\fldrslt \*\cs9\cf2\ul\ulc0\rtlch\ltrch\dbch\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031{\fs28\f3 http://www.IndyProject.org/}}}}
  48. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs28\lang255\ltrch\dbch\af2\langfe255\hich\f3\fs28\lang1031\loch\f3\fs28\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 That fulfills the licence requirements.}
  49. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031
  50. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 So all I can whish you is:}
  51. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 Happy coding!}
  52. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031
  53. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0 J\u246\'f6rg Meier (Bob)}
  54. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031{\field{\*\fldinst HYPERLINK "mailto:[email protected]" }{\fldrslt \*\cs9\cf2\ul\ulc0\rtlch\ltrch\dbch\hich\loch{\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0\fs28\f3 [email protected]}}}
  55. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs28\lang255\ltrch\dbch\af2\langfe255\hich\f3\fs28\lang1031\loch\f3\fs28\lang1031
  56. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031
  57. \par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 {\rtlch \ltrch\loch }
  58. \par }