{\rtf1\ansi\deff0\adeflang1025 {\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;}} {\colortbl;\red0\green0\blue0;\red0\green0\blue128;\red128\green128\blue128;} {\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;} {\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;} {\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;} {\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;} {\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;} {\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;} {\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;} {\*\cs9\cf2\ul\ulc0\rtlch\af4\afs24\lang255\ltrch\dbch\af2\langfe255\hich\f0\fs24\lang1031\loch\f0\fs24\lang1031 Internet link;} } {\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 {\*\pgdsctbl {\pgdsc0\pgdscuse195\pgwsxn11905\pghsxn16837\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Standard;} {\pgdsc1\pgdscuse195\pgwsxn11905\pghsxn16837\marglsxn1134\margrsxn567\margtsxn567\margbsxn567\pgdscnxt1 HTML;}} \paperh16837\paperw11905\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\pgwsxn11905\pghsxn16837\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc \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} \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 \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.} \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, 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 ng Indy running for 3 years now (just got an automatic mail for mail number 35,000 processed).} \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 \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.}} \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.} \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!} \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 \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.} \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 \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 t it -surprise, surprise- no database interface in it. Why? Well I'd like to write a demo for Indy, not for Firebird.} \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.} \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!!!} \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.} \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.} \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.} \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.} \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 \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 \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.} \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 \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 sell it.} \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:} \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 \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/}}}} \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.} \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 \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:} \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!} \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 \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)} \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:Emil@jmeiersoftware.de" }{\fldrslt \*\cs9\cf2\ul\ulc0\rtlch\ltrch\dbch\hich\loch{\rtlch \ltrch\loch\f3\fs28\lang1031\i0\b0\fs28\f3 Emil@jmeiersoftware.de}}} \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 \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 \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 } \par }