
     GyikSoft Mail v3.x
     ~~~~~~~~~~~~~~~~~~

Szempontok:
  - Biztonsgos, NEM VESZHET EL LEVL!
  - Gyors, hlzatra optimalizlva.
  - Prhuzamos levelezs kezelse
    (id szerinti rendezs, ismtld levelek kiszrse)
  - Gyorsan s egyszeren kezelhet
  - On-line s Off-line levelezs (SMTPMAIL)

################################################################################

Billentyk:

F1 - about
F2 - save (new/folder) -> (textfile)
F3 - address book
Enter - View (MIME multipart, quoted-printable, ISO  dekdolssal)
Ctrl+Enter - RAW view (vltozatlanul mutatja az eredeti levelet)
F4 - edit
 C - compose new
 R - reply
 F - forward
F5 - copy (new/folder) -> (folder)
F6 - move (new/folder) -> (folder)
F7 - Search  (Ctrl+F7 - Search next)   from/to/subject-ben lehet keresni
 X - Selective search - kijelli amikben megtallta
Shift+F7 - search next backward - visszafel keresi
Ctrl+P - az aktulis levl (amin ll) feladjnak elz levelre ugrik
F8 - delete (new/folder)
F9 - make new folder
F10 - select folder
 I - index on/off  (dtum szerinti logikai rendezs)
Ctrl+I - fizikai indexels (SORT)
Grey +/-  - select/deselect all
 P - Pack folder to -PACKED-.PMM  (kiszedi a fileokat s a header feleslegs sorait)
 H - Select HIX - kijelli a HIX jsgokat
Ctrl+F - Filtered_movemail - a FILTERS.INI szerint folderekbe rendezi a leveleket
ESC - Exit

Compose/Reply vgn: ("Are you sure?" krdsnl)
  Y - yes, elkldi a levelet
  N - no, visszalp az elejre s lehet mdostani a cmeket, s a levelet
  A - Attachment hozzadsa, megkrdi az encoding-ot is
  C - CC: mez megadsa (!!! mg nincs megrva !!!)
  Ctrl+C - Abort

Address-book: (fmenbl vagy INPUT-ablakbl F3-ra bejn)
  INS - j sor hozzadsa. (ha cm, akkor a rek.from mez a default)
  F4  - .ADR file editlsa

IDX-update
  - ha foldert vlt, s nem stimmel az IDX file a PMM-hez
  - ha hozzad a PMM-hez (F5/F6) akkor viszi a flageket is! (mode_byte,...)
  - baj van ha nem kompatibilis IDX-filet tall

################################################################################

5letek:
=======
- fizikai_indexel: optimalizl6na, ha mondjuk az els 150 levl ugyanolyan
  sorrendben marad akkor azokat bkn hagyhatn... (mint a delete_mail)
- newmailbl az elolvasottakat tmsolni a MAIN.PMM-be, rkrdezssel
- bugfix: trt copy_to_folder UPCASE-olta a levelet a kodolas(); miatt.
- BUG: ha sok file ki van jelolve es F2(=save) akkor mindnel kulon
  rakerdez a PQ konvertalasra es a sortordelesre.

TUDTAD?
=======
- a cim lehet .ADR file neve is
- ha keressnl csak egy *-ot irsz be, akkor az attacsot tartalmazo levelek
  jelolodnek ki


TERVEK:
~~~~~~~
t kne tervezni az index-file szerkezett, s jraindexelni mindent!
 - rek.size   = a vals mret a folderben
 - rek.msize  = a karakterek szma a levl szvegben
      ( kikszbln a soremels- s ressor problmt )
 - rek.mail_crc = csak a rek.msize-be tartozra szmoln
 - rek.msgid = vagy dword-n az msg-ID CRC-je, vagy string-ben az msgid
 - ki kne kszblni azt is ha vki CC:-zte a levlistra a levelet
   mert gy a filtered_movemail nem veszi szre!
2 rszre kne bontani az index-et!
  1. index: fix rekordhossz (rek), pozicik, CRC-k, s pozici a 2. indexbe
  2. index: asciiz (vagy pascal) stringek, a From:, To:, Subject:, MsgID
     mezk tartalma.
  => gyorsabb lenne az 1. index kezelse, s rvidebb lenne az index
  => elg lenne az 1. index-re vigyzni, a 2. brmikor jragenerlhat

TUDJA:
======

M3_2L:    [98/01/24]
~~~~~~
- generate_index tdolgozva kicsit, mert az INBOX tipusnl
  kihagyta a "From "-okat s emiatt trls utn a Netscape
  nem tudta kezelni a file-t...
- Filtered_movemail: a keresst trtam, seekf2(i) helyett
  seek(f2,i) van, felesleges index szerint haladni, gyis
  minden mezo sorrakerul 1*, vizsont igy gyorsabb
- Tagline support: mailer3.ini-ben Taglines="filenv"
  vletlenszeren vlaszt egy sort s ha az alrsban
  '%tagline'-t tall akkor azt kicserli erre.
  A pon az hogy a vletlen kivlasztst _egyszeri_
  vgigolvasssal csinlja, s egyenletes eloszlssal,
  anlkl hogy elre tudn hny tagline van a file-ban!!!
- A levlrs vgn az "Are you sure"-nl lehet ctrl+C-t
  nyomni s akkor 3x rkrdezs helyett azonnal kilp!
- filter-ezbe: normlisabban rja ki a dolgokat s csak
  a vgn vr bill.re
- generate_index nem rewriteolja az inbox indext tbb!
- save_mail_to_folder-nel inbox support bekapcsolva
- save_mail_to_folder-bl function lett, s ha nem sikeres a
  move (nem ltezo folder, etc) akkor nem trli le a levelet!!!
- sendmail tamogatja mind a 3 formatumot (101,msg,netscape-outbox)
- reply_to-t visszairtam kerdezgetosre, MP3 lista miatt

- Uj dolgot fedeztem fel: a netscape-es levelekben van egy
  Content-length: mez, ami bytera egyezik (+-3 byte) a
  rek.msize mezovel. Ezt fel lehetne hasznlni a levlen
  belli "From " megklnbztetsre!



M3_2K:
~~~~~~
- Filterek -> automatikus MOVEMAIL (lsd. FILTERS.INI)
  indtsa: Ctrl+F
- Refresh -> Ctrl+R  (hasznos ha sok levelet trltl s zavar)
  -> F10-rl kiszedtem a delete_mails-ot! (mert zavart...)
- Bugfix: a 25 foldertl kiakadt, mert csak array[23] volt...
- Bugfix: Filtered_movemail: nem torolte a leveleket ha az mfs
  nem folder

M3_2J:
~~~~~~
- view_mailnak j paramter: saveall
  -> mostmr a REPLY is ezt hasznlja!
     - a b64/uue file-okat kihagyja a replynl
     - minden ms part-ot a neki megfelel dekdols utn berak F1-be
     - az alrst is berakja a vgre (j rutin: sign_f1)


M3_2I:
~~~~~~
- Ujrairt SETUP beolvas, mostmr MAILER3.INI-nek hvjk a configot
  s sokkal tbb minden llthat benne...
- Helyzetjelents:  ;)
   - a base64 dekodolo a view_mail-ban nem muxik valami jol
   - egy nagy kaosz mar a save_mail2 rutin...
   - mg mindig nincs CC:
   - view_mail nem tud reply-zni

M3_2H:
~~~~~~
- BUG: rossz az inbox->pmm masolas.
  => Teljesen tdolgozott save_mail_to_folder;
  - mostmr a readln_sor-t hasznlja
  - tmogatott output tipusok: CNM, PMM, Inbox
  - msize bugfixalva (sor=#10 helyett sor='' kellett az UNTIL-hoz)
- bugfix:  ( a close hianyzott )
  {$I-} reset(f1);if IOResult=0 then begin close(f1);goto ujrnd;end; {$I+}
- BUGFIX: meg a MIME megjelenites is neha valamiert
    oka: nem volt idezojelben a "boundary"

M3_2G:
~~~~~~
- base64 dekodolo rutin feljavitva, figyelembe veszi az "="-eket a sor
  vegen es csak a megfelelo szamu byte-ot dekodolja
- view_mail-ba base64 dekodolas, nem tul jo, az egeszet at kell dolgozni
- BUG: rossz az inbox->pmm masolas.
- BUG: meg a MIME megjelenites is neha valamiert

M3_2F:
~~~~~~
- Sortrdels-krds defaultja NO (eddig YES volt)
- encode_file kijavtva:
    - Base64-nl jelezni kell a vgt (egy vagy kt darab = -jel)
    - UUE kdols hiba lett, mivel az UUE egy betvel (hossz) tbb
      mint a B64 -> hibzott -> javtva
      Mostmr csak a minimlis mennyisg kdot trolja
    - UUE-nl lemaradt a vgrl az "end", mivel enc_uue<>2
    Krds: XXE-nl hogy van a fejlc???
- compose_message:  ellenorzi a levelet, ha van ekezet akkor bejon
  a kodolas-valaszto menu. (javaslatom: "ISO quoted" )
- view_mail-on kisebb mdositasok
  mostmar jol jeleniti meg a kodlapos leveleket (kodlap_tbl:array)
- bugfix: szpen elszllt az egsz (fagyi, win95 alatt meg VH)
  ha base64 kdols ISO-s de _res_ sort tallt:
    l:=(length(sor)-1) div 4;   -> l=32767 vagy ilyesmi lett...
- bugfix:  CNM-be msols nem mkdtt

M3_2D:  v3.1
~~~~~~
- HIX support
- coder_hu digest support
- bugfix: mostmr a readln_sor csak akkor ll le $1A-ra ha mfs=mfs_pmm
- bugfix: a MIME/multipart dolog egyel kevesebb part-ot mutatott
  mint amennyi van, ez altalaban eleg is volt ha volt a vegen lezaro sor.
- mostmr az uuencodolt fileokat tartalmazo nem-multipart leveleket
  is ugy kezeli mintha multipart lenne!!!


M3_2C:  v3.1
~~~~~~
- save_mail2 ujrairva, a folder-es s nem-folder-es olvasas osszekombinalva
  egy readline; rutinba -> nincs benne 2x ugyanaz a rutin...
- szveg trdels!!!
  - space, vesszo, kotojel esetn jl vlasztja el
  - a szavak elvlasztsa mg nem az igazi... (kne elvlasztsi sztr :-)
  - normlisan lekezeli a sor elejn a "> "-okat (reply)
  - a marg (max sorhossz) a forrsban llthat (most 85)
  - egyelre csak Ctrl+ENTER-es viewnl trdeli
- replystr globalis valtozo lett
- sor2_tordelo kulon rutin lett
- MIME-multipart levelek tamogatasa, ha ilyenre nyomsz ctrl+entert
  akkor bejon egy menu hogy melyik reszt akarod megnezni (mint a PMAIlben)
  Ide kene majd a B64/UUE/... dekodolot is beepiteni!!!
  Reply meg nem megy ra, de kellene!


M3_2B:  v3.1
~~~~~~
- Megcsinltam a multipart-MIME formtumot, s a kdolst:
    - 7bit  (tkonvertlja az kezetest kezetlenre)
    - 8bit, Quoted-printable  - ASCII vagy ISO kdlappal
    - UUE,Base64,XXE
    - Code91 (mg nem tudja)
- Nem kerdez r hogy a Reply-To: cimet hasznalja-e, hanem ha van akkor
  azt hasznalja!


M3_2A:
~~~~~~
- Az egsz select_folder teljesen trva:
   Keres egy FOLDERS.INI filet, s abban vannak a folderek
   felsorolva. Az egsz folder_dir\*.FOL dolog kitrlve, mert
   hlyesg volt. Mostmr tbb helyen lehetnek .PMM-ek is!
   (PMM-nl a filemask is megengedhet, a tbbinl konkrt nv kell)
- COPYSELF trva (BUG volt: a folder_nev megvltozott s nem brt irni bele)
  -> 2 konstans : _copyself1,_copyself2
  Ha az elst nem tudja megnyitni, akkor prblja a msikba.


M3_1E:
~~~~~~
- Teljesen ujrairt ISO ertelmezo, mert a Base64-el kodolt From: s
  Subject: mezokkel nem tudott mit kezdeni (lasd. Coder-l #587-ben)
  -> alahuzasjel-problema is megoldodott, mivel mr csak azt dekdolja
     kdlappal ami az ISO-n bell volt, a cmet nem!

- vizszintes scrollnl 2-szer kellet megnyomni a nyilat hogy 1x mozduljon
  (xx:=0 volt xx:=1 helyett)

M3_1D:
~~~~~~
- Bele/ki tud menni ENTER-re a coder-l@ -ekbe.
  -> Ehhez tbbszint MFS kellett... de nem lehetett rekurzvan.
     -> mfs_level vltoz s egy tmb.

M3_1B:
~~~~~~
- Tudja olvasni a Netscape Inbox es a digest (Coder-l) formatumokat is.

M3_1A:       [98/01/07]   v3.0 beta1
~~~~~~
- A nem vltoz rszek kiszedve SR1.PAS-ba. (nyir, upcstr, menu, msg_box... rutinok)
- a menu-rutin atirva, mostmar 2 oszlopot kezel (menuitems1[],menuitems2[])
  -> normalisabb lett a select_folder
- select_folder ket bemeno boolean parametere feleslegesse valt -> torolve
- Uj fogalom: mail-filesystem
  -> uj valtozok: mfs_*  (lasd a .PAS elejen)
  -> mfs-valtas: procedure set_mfs(i:integer);
     Ez allitgatja a fileneveket, es nem temp_nev:=_temp_nev meg hasonlok
     vannak.
  -> uj tipusok:
      mfs_cnm=0;       Newmail
      mfs_101=1;       SMTPMAIL-os OutBox
      mfs_pmm=2;       Folder-ek
      mfs_inbox=3;     UNIX/Netscape newmail-ja
      mfs_outbox=4;    Netscape OutBox-ja
      mfs_hix=5;       HIX ujsag
      mfs_digest=6;    majordomo-levlista digest formaban (pl. coder-l)
    !! Ebbol egyelore csak CNM, a 101 es a PMM mukodik!!!
  -> valtozok kicsit megkavarva, temp_nev megszunt vegre, helyette
     mfs_path, mfs_index es mfs_folder
     -> kicsit attekinthetobb lett az egesz (szerintem)
- Valtozok az elejen kommentezve, kiveve amire nem jottem ra :(
- Pufferek osszevonva, vmiert 2 volt (blockcopy-nak es readln_sor-nak is volt)
- redraw;-ban kis vltozs:
  1. akkor is seek-elt ha mr nincs is levl (amikor res sort rajzol ki)
  2. optimalizltam a seek-et, csak akkor seek-el, ha nem j helyen
     ll (act_rek vltoz)

MAIL1D11:    [97/12/29]
~~~~~~~~
- jrartam az encodolt, mostmr elmletben supportolja az UUE,XXE,Base64
  formtumokat. Gyakorlatban mg nem, mert mindig encoding=2-vel hvom meg.
  TESZTELNI!!!

MAIL1D11:    [97/12/28]
~~~~~~~~
- thalyezett folderek:
  Ha .FOL vg filet tall a folder_dir-ben, akkor az egy "link",
  azaz egy szvegfile ami a valdi nevet/helyet tartalmazza.
  Azrt kell, mert tbb meghajtn is lehetnek folderek.
- Ha a sendmail nem talal COPYSELF.PMM-et, akkor keres COPYSELF.FOL-t is
- bugfix: foldereknl is rt az index-fileba, mert amire a save_cnmidx
  meghivodott addigra a _temp_nev mar at volt allitva
  -> uj valtozo: actual_newmail:boolean, true ha newmailban vagyunk
- bugfix: a save_cnmidx nem irta at a memoriaban ezert csak ujrainditaskor
  latta az uj ertekeket!
  -> atirva az egesz save_cnmidx, mostmar a memoriaba szamolja ki es
  blockwrite-al irja ki -> gyorsabb is lett

MAIL1D10:    [97/12/28]
~~~~~~~~
- NEWMAIL-ok adatait elmenti egy CNMFILES.IDX fileba, gy emlxik
  a FLAG-ekre NEWMAIL-nl is!  A file 'minirek' rekordokbol all.
  Ja, s max. 200-ra emlxik mivel a memriban trolja futskor.

MAIL1D9:     [97/12/15]
~~~~~~~~
- Lehet a NEWMAIL-ba is Copyzni meg Moveolni (F5/F6), ilenkor generl CNM
  nevet s abba menti.  Sok rtelme nincs, fleg tesztelshez kell!

MAIL1D8:     [97/12/14]
~~~~~~~~
- j megjelentsi md: Ctrl+ENTER  ilyenkor tmsolja file-ba s
  a msolatot jelenti meg, ez akkor rdekes ha NEWMAIL-ban akarunk
  Quoted-printable levelet megnzni.
- Ha forwardolsz (a SUBJECT eleje "Fwd:") akkor megkrdezi hogy
  mentse-e COPYSELF-be. (mert nem biztos hogy akarjuk)
- Ha forwardolsz akkor a levl elejre berja hogy '---forwarded message---'
  s az eredeti feladt, eredeti subjectet.
  Ja, s a To: mezt resen hagyja (a rgebbi verzik az eredeti To:-t rtk
  oda, de annak semmi rtelme nincsen)
- Ha REPLY-nl a "From:" cm s a "Return-path:" vagy 'Reply-To:" cm
  eltr akkor megkrdi hogy melyiket hasznlja.
  (ehhez ltrehozva:  procedure reply_to;)
- ALIAS-kezels, azaz rvid nevek hasznlata a teljes E-Mail cm helyett:
  ALIASES.ADR file-ban, "rvidnv emailcim" formban.
  A cmnl (From: s To:) elg a rvid nevet berni.
  Ha nem tallja meg, akkor hozzfzi a @sparta.banki.hu-t
  (ide kne mg egy Novell-es USERNV-lekrdezs, hogy ltezik-e
   a SPARTA-n ilyen nev user, s ha nincs akkor hibazenet)
  Az "emailcim" lehet egy lista neve is, pl.: "arpi arpi.adr"
5let: elg egy rszlett berni a rvid nvnek, a tbbit kitallja,
   esetleg ha tbbre is igaz akkor menbl vlaszthatjuk ki a jt
- Mr From:-nl is meghvja ADDHOST()-ot gy elg garpad-ot berni
  a @sparta...-t hozzteszi.
- Address-book neve is megad6 cmknt, pl: To: ESP-UUE.ADR
  (.ADR kell legyen a vge!)
  A To: mezbe ez lesz: "Multiple recipients of list <emailcimed>"
    (ez a configfile-ban tdefinlhat a "_multi_to=" vltozval)
  A COPYSELF-be berja a listatagok nevt is.
- Gyorsgombok a menknl!
    FOLDER-kivlaszts:
        M = MAIN-P.PMM, MAIN.PMM
        C = COPYSELF.PMM
        N = NEWMAIL
    .ADR-kivlaszts:
        A = A.ADR
        S = SELF.ADR
    FILESELECTOR:
        B = BASSPASC.REG

MAIL1D7:
~~~~~~~~
- Tud Quoted-Pritable => ASCII (Dos/Win kodlap) konverziot.
  automatikusan rakerdez ha ilyet talal.

MAIL1D6:
~~~~~~~~
- COMPOSE: Csak az editlt rszt msolja COPYSELF-be. (attacs-ot nem!)
- COMPOSE: a COPYSELF krdsre csak "N" vagy "Y" vlaszt fogad el, ESC-et nem
- COMPOSE: ha mg 1x se editlt (mg a cmnl nyomott ESC-et) akkor
  nem krdi meg hogy akar-e COPYSELF-et.
- SENDMAIL: delay(300) lecskkentve delay(200)-ra.
- ATTACS-UUE: tesz egy res sort a begin 644 el
- ATTACS: az [_attacs_dir]-bl (="FILES\") szedi a fileokat
- ADDRESS: hozzrakja a host,domainnevet ha hinyzik:
    pl.:  garpad  ->  garpad@sparta.banki.hu
          arpi@banki4 -> arpi@banki4.banki.hu

MAIL1D5:
~~~~~~~~
- Biztosabb levlklds, ha ESC-et nyom akkor rkrdez hogy COPYSELF-be
  azrt eltegye-e. (pl ksbbi folytats cljbl)
- UUE attacs: Compose/Reply vgn "Are you sure"-re A-t kell nyomni,
  s akkor bejn egy fileablak...
  tbbet is lehet hozzrakni, meg ha N-et nyomsz akkor attaccsal egyutt
  editalni... (ha birja a qedit)
- Compose new: default.txt msoldik t, ha ltezik.

MAIL1D4:
~~~~~~~~
- a CNM-eket nem olvassa vgig, csak a headert -> gyorsabb
  akkor szmol mail_crc-t s kdolst mikor PMM-be msolja
- rek.msize hiba javtva, mostmr mxik rendesen a select_duplicate is.
- delete_mails gyorsitas: kulon valtozoban figyeli hogy van-e torlendo
  level, es csak akkor megy vegig a fileon. ez megoldja azt is ha
  az utolso levelen allva torlunk levelet F10-el es ESC-el vissza
  akkor ne alljon le runtimeerror-ral.
- UPCASE-bug javtva (kodolas() upcaseolta SOR-t, mieltt kiirtuk a folder-be)

MAIL1D3:
~~~~~~~~
- clrsr kilpskor
- bugfix: select_duplicate nem allitotta be selected_db-t

MAIL1D2:
~~~~~~~~
- sszevontam az update_index s generate_index rutinokat, valamint a
  REK-mveleteket egy feldolg_init s egy feldolg_sor rutinba. Ettl
  kicsit ttekinthetbb, s nem kell 3 helyen fejleszteni 1szerre
- Mostmr a NEWMAIL-t is lehet rendezni (I) s CRC-zni (?).
- Bugfix-ek a logikai indexels miatt
- Vdelem arra az esetre, ha hibs a TEMP-file (pl. disk full)
  egyelre csak F8 s Ctrl+I esetn
- INPUT rutinba: Home s End billentyk kezelse
- Mostmr lehet olyan folder-hez is msolni (F5/F6) amelyiknek 0 byte-os
  IDX-e van
- PackMail funkci, P billentyre. az aktulis Folder-t packolja t egy
  -PACKED-.PMM-be, gy hogy az UUE/BASE64 fileokat kiszedi, s a fejlcbl
  a Received:-okat is. Igy a lnyeg megmarad, de jval kevesebb helyen!
- Fell kiirja a selected_size-t, azaz a kivlasztott levelek ssz. hosszt

MAIL1D1:
~~~~~~~~
- Dtum szerinti rendezs. j mez a REK-ben: date_bin, ami egy longint, s
  a dtum+id-vel arnyos. Rendezs (indexels) kapcsolsa: I billentyvel.
  Megj: ez csak logikai rendezs, teht csak a kirst befolysolja.
- size-md defaultja true, azaz a fejlc nlkli hosszt rja ki (vlts: S)
- Fizikai rendezs, Ctrl+I billentyre.
  tmsolja TEMP-be az egszet, majd a megfelel sorrendben vissza.
  5let: optimalizl6na, ha mondjuk az els 150 levl ugyanolyan sorrendben
        marad akkor azokat bkn hagyhatn... (mint a delete_mail)
- A FOLDER-ek IDX-jben nem trolja az fname-t, mert gysem frt el s
  rtelme se volt ( rek.fname:=''; )

MAIL1C4:
~~~~~~~~
- mg pr BUG fixed...

MAIL1C3:
~~~~~~~~
- select_duplicate funkci, ? billentyre
  kijelli az sszes olyan levelet, ami mr elfordult valahol abban a folderben
- trlsbl kiszedtem a debug-kiirsokat
- fejlcbe belekerlt a rek.msize is, ami a levl fejlc nlk. hossza
  (sel_duplicate-nak kellett)
  kirsnl vlts: S

MAIL1C2:
~~~~~~~~
- a kldtt levelekrl msolat COPYSELF.PMM-be
  (ha nem ltezik, akkor nem)
- mens Select_Folder
- kilpskor rkrdez
- F6 bugok javtva
  - elszr nem trlte le a NEW-bl
  - aztn meg tmsolta a rek.torolve flag-et is
  - aztn nem lltotta a rek.torolve-t
  - vgl mkdik :)
- bugfix: reply-nl nem lltotta be a REPLY flag-et, EDIT-nl viszont igen
- bugfix: F6-nl nem trlte a kijellst


