Levelezés DOS alól (V1.48)

Ez a leírás elavult (de azért tanulságos lehet), az újabb (V2.xx) verziót itt lehet olvasni.

Újdonságok: ZSPPP változó  PPP link down  debug
[Telepítés] [Pmail beállítása] [Netdial beállítása] [Levelezés] [Ékezetes levelek] [Problémák] [Debug] [File lista] [Dolgok_belseje] [Linkek] [Netware]

Összefoglaló

Hogy is lehet DOS-ból levelezni az internet-en?

Ez a leírás főleg az otthonról, telefonon levelezőknek készült, de használhatják azok is, akiknek fix internet elérésük van a munkahelyükön (mint nekem is).

A leírásban a XXX@ZZZ e-mail cimmel mutatok be mindent. Az XXX és ZZZ helyere mindenhol a saját adataidat írd. Pl: jozsi@mail.matav.hu esetében XXX = jozsi, ZZZ = mail.matav.hu

Telepítés

Kell szerezni egy Pmail programot (PMAIL340.ZIP vagy valami ilyesmi) Kell még a DOSPPP06.ZIP, az ND130.ZIP és a ZSMTP1*.ARJ. Ha ezek megvannak, hozzá lehet kezdeni a telepítéshez:

Pmail beállítása

Futtasd le a PCONFIG.EXE-t. Válaszd a [Standalone configuration] menüpontot. Töltsd ki így:
  Home mailbox :   c:\pmail\~8
  New mailbox  :   c:\pmail\~8
  Asynch gateway:  N             <--- ha nincs ilyen sor nálad, az nem baj
Ez azt jelenti, hogy a c:\pmail alatt mindenkinek a saját nevén lesz egy alkönyvtára. (Ez akkor is kell, ha egyedül levelezel a gépen).

A PMAIL-nek meg kell mondani, hogy a kimenő levelekkel mit csináljon. Erre is a PCONFIG.EXE programot kell használni. A [Manage user-defined gateway] menüpontot válaszd. Itt a következőképpen állítsd be a dolgokat:

   GateWay name:            ZSMTPOP
   New mail path:           c:\pmail\XXX
   Is . a program to run:   N
   New mail search mask:    ~d~d.cnm
   Outgoing mail path:      c:\pmail\XXX
   Run for outgoing mail:
   Filename format:         ~d~d.MSG
   Run to validate ...:
   Reply address format:    XXX@ZZZ
   Accept SMTP addresses:   Y
   Simple message headers:  Glue Headers
   UUENCODE attachments:    N
   Burst message:           N      Gateway processes BCC: N
   Strip Gateway name:      Y
   Force all mail through:  N
Ki kell mentened a változásokat, mielőtt kilépsz a PCONFIG-ból.

Másold át a c:\pmail\pmgate.sys file-t a c:\pmail\XXX könyvtárba, azaz:

         copy pmgate.sys XXX
Ezzel készen is van a konfigurálás.

1. Teszt

Indítsd el a MAIL.BAT-ot XXX paraméterrel, azaz valahogy így:
         mail XXX
Küldj egy levelet vele, cimzettnek XXX-et (Te magad vagy az) adj. Nézd meg az új leveleket. Ott kell legyen az előbb írt levél. Töröld ki.

Teszt 2.

Indítsd el megint a
         mail XXX
parancsot. Irj egy levelet pl. a zotyo kukac zotyo.hu címre (azaz nekem). Miután elküldted, lépj ki a pmail-ból. Nézd meg, létrejott-e a levél:
         dir XXX\*.msg

Ha van ilyen file, akkor nézd meg a tartalmát is (már csak kíváncsiságból is). Ha például 1234.MSG a file neve, akkor:

         type XXX\1234.MSG

Ha ezzel is megvagy, töröld ki a levelet, ha nem akarod elküldeni nekem:

         del XXX\1234.MSG

Netdial beállítása

A NetDial program képes arra, hogy feltárcsázza a szolgáltatódat, és a tőle érkező kérdésekre megfelelő válaszokat küldjön neki. Ha minden rendben zajlik, akkor a végén lesz egy PPP-nek nevezett kapcsolatod a szolgáltatód gépével. Ez pedig mindennek az alapja.

A NetDial program a NETDIAL.SCR nevű file-ban leírt parancsokat hajtja végre. Itt lehet neki megmondani, hogy milyen telefonszámot hívjon fel, milyen user néven akarunk bejelentkezni, mi a jelszavunk, stb.
A program kicsit buta, mert csak a netdial.scr nevű file-t szereti (ráadásul az aktuális könyvtárban), más nevet meg sem lehet adni. Ha az EMAIL.BAT-omat használod, az a megfelelő helyről mindig odamásolja a szükséges file-t a c:\pmail könyvtárba.

Egy minta NETDIAL.SCR-t találsz a ZSMTPOP csomagban, amivel a freemail.c3.hu-ra lehet belépni. Ennek a c:\pmail\XXX könyvtárban a helye. Könnyen átalakítható bármely szolgáltatóhoz való belépésre (telefonszám, usernév és jelszó voltoztatással).

A NETDIAL.SCR-ben a következő dolgokat kell leírni:

Mindezen dolgokhoz két parancs használható. A send paranccsal el lehet küldeni egy szöveget a modemnek. A recv paranccsal pedig egy adott szöveg bejövetelére lehet várakozni. Azt is megadhatjuk, hogy mennyi ideig várjon a szövegre. Sőt, ha szöveget nem adunk meg, akkor csak vár az adott ideig. Az időtartamot ezredmásodpercben kell megadni (6000 = 6 másodperc).

A modemnek is küldhetünk parancsokat, ezeket onnan lehet megismerni, hogy AT-val kezdődnek. Ezekre válaszul OK-t küld a modem, ha minden rendben volt.

A legfontosabb parancsok:

Az ATDT parancsban a telefonszámot is meg kell adni! A számok között szereplő '-' jel nem számít, a 'w' pedig azt jelenti, hogy tárcsahangra kell várni. Ez pl. a 06-al kezdődő számoknál szükséges.

Példák:

1. Inicializáljuk a modemet, erre OK-nak kell jönnie, ha van modem, és
   működik is rendesen.
        send "ATZ\r"
        recv 6000 "OK"

2. Feltárcsázzuk a 06-40-234-3456 számot. Ha ott felveszi a számítógét a
   telefont, akkor egy Username: szöveget küld előtt-utóbb.
        send "ATDT06w40-23403456
        recv 30000 "sername:"

Van olyan szolgáltató, ahol a belépéssel nem jön létre azonnal a PPP kapcsolat, hanem külön el kell indítani a PPP-START, vagy PPP vagy valami hasonló nevű programot. Ilyenkor még két sort be kell írni a NETDIAL.SCR végére. Az egyik sorba az kell, hogy milyen szöveget várjon , a másikba pedig az indítandó program neve (és \r a végére!).

Levelezés

Be kell menned a c:\pmail könyvtárba. Minden programot innen kell majd indítanod. Nem sok van, mindössze kettő.
         C:
         cd \pmail

Ha levelet akarsz írni, akkor a MAIL.BAT-ra van szükséged. Ennek meg kell adnod, hogy mely felhasználó nevében akarsz épp levelet írni. Például így:

         mail XXX
Kilépés után - ha írtál levelet - figyelmeztet, hogy vannak elküldendő leveleid. Ezeket az EMAIL.BAT-al tudod elküldeni.
         email XXX

Az EMAIL.BAT elintézi a szolgáltatód felhívását, a leveleid leszedését és elküldését, és a végén még a telefont is leteszi. Ahhoz, hogy ezeket megtehesse, bizonyos adatokat tudnia kell. Azokat, amiket az XXX\SETMAIL.BAT, XXX\NETDIAL.SCR és az XXX\ZSMTPOP.CFG file-okba beírtál.

Az EMAIL-nak megadhatók plusz paraméterek, azok a ZSMTPOP-nak szólnak, ezek leírását zsmtpop.txt-ben találod. Néhány példa:

Ékezetes levelek

A Pmail-el lehetőség van ékezetes levelek küldésére és fogadására is. Képes rá, hogy megértse a legelterjedtebb levél formátumokat, ő maga pedig Quoted-Printable kódolással tud küldeni ékezetes karaktereket. Be lehet állítani, hogy milyen karakterkészlettel küldjön (pl: ISO-8859-2), és konvertáló táblákkal leírhatjuk, hogy az általunk használt kódkészlet karaktereit (pl: CWI, 852) hogy kell a kívánt kódokká konvertálni. Teendőink tehát:
  1. A PMAIL.INI file-ban kell legyen két bejegyzés:
    	 Use MIME features = Y
             Default MIME character set = ISO-8859-2
    
  2. A ZSMTPOP csomag tartalmaz két konvertáló táblát. Az egyik a CWI, a másik 852-es karakterkészlethez való. Attól függően, hogy melyiket használod a gépeden, a PM-LMTT.CWI vagy PM-LMTT.852 file-t másold a PMAIL.EXE-t tartalmazó könyvtárba, PM-LMTT.RSC néven, pl:
    	 COPY PM-LMTT.CWI C:\PMAIL\PM-LMTT.RSC
    
  3. Ha a levél leszedésnél használod a -i paramétert, akkor add meg a -cwi vagy -852-t is, hogy a letöltésnél jól lásd az ékezetes From: és Subject: -et. Pl:
             email XXX -i -cwi
    

Problémás esetek

Az bizony előfordul, hogy nem megy minden elsőre. Az a baj, hogy ezerféleképpen tud valami rossz lenni, és csak egyféleképpen jó. Ez sokszor meglátszik. Ilyenkor persze tenni kell valamit, de mit? Attól fögg, mi volt a hiba:

Invalid COM port. Ezt a hibát a NetDial vagy az EPPPD szokta jelezni. Általában akkor jelentkezik, ha a modem a COM3 vagy COM4-en van, de nem úgy van beállítva a soros kártya, hogy a szokásos port címen (BASE) és a szokásos interrupton (IRQ) elérhető lenne.
Ilyenkor a SETMAIL.BAT-ban a ZSCOM=COM3 sor helyett direkt meg kell adni a port címet (hexedecimálisan is lehet) és az IRQ-t, valami ehhez hasonló módon: ZSCOM=BASE 0x2f8 IRQ 5.

Script timeout. Ezt a NetDial jelzi, ha az egyik NETDIAL.SCR-ben megadott recv utasítással várt szöveg nem érkezik meg. Ennek sajnos igen sok oka lehet.

PPP link is down... hibát kapunk, ha a szolgáltatóhoz nem sikerült rendesen belépni. Az EPPPD program üzeni ezt, mivel úgy találja, hogy nincs élő PPP kapcsolat. Oka az lehet, hogy rossz user nevet, vagy jelszót adtunk meg, vagy valamiért nem indult el a szolgáltatónál a PPP kapcsolatot felépítő program.
ÚJ! Ennek oka az is lehet, hogy a szolgáltató PPPD programot váltott, ami már nem engedi meg a PAP azonosítás nálküli belépést. Ilyenkor a
ZSPPP változóban adhatjuk meg a user nevet és a password-öt.

No dialtone. Ilyet a modem tud mondani, mikor tárcsázni akar, és nem kap vonalat. Ennek aztán nem sok oka lehet. Vagy be sincs dugva a drót a modembe, vagy tényleg nincs vonal. Esetleg vacak modemünk van (nekem van egy ilyen).

BUSY. A modem ezt mondja ha a hívott szám foglalt. Ilyenkor érdemes később újra megpróbálni.

Ismertlen host. Ez a ZSMTPOP hibajelzése. Megpróbálta a ZSMTPOP.CFG-ben megadott server gépnek az IP címét meghatározni, és az nem sikerült. Vagy nem létezik ilyen nevő gép (elírtad a nevét), vagy a nameserver gépek címei vannak rosszul megadva. Ezektől kérdezi le a program a gépnévhez tartozó IP címet.
Ugyanezt a hibát okozta az EMAIL.BAT-om előzőz (1.30 előtti verzió) egy hiba is. A javított EMAIL.BAT-al a hiba meg kell szűnjön. Az volt a gond, hogy egy

REM echo my_ip=bootp > wattcp.cfg
sorról azt hittem, hogy az megjegyzés. De a bolond COMMAND.COM az átírányítás miatt máshogy kezelte, és beleírt a wattcp.cfg-be. Ettől annak első sora elveszett. Ezt a REM sort kihagyva az EMAIL.BAT-ból minden rendbejön.

Nincs IP címem hibát akkor kapunk, ha a ZSMTPOP nem tudja meghatározni a gép IP címét. Ez azt jelenti, hogy a wattcp.cfg file-ban nincs benne a my_ip beállítása. A V1.30 előtti EMAIL.BAT sajnos tudott ilyet létrehozni.

Rossz levél küldő és Nincs címzett hibákat is a ZSMTPOP jelez, ha az elküldendő levél első pár sora nem olyan, mint lennie kellene. Ha a Pmail-t használod, ilyen hiba nem fordulhat elő. Ha kézzel is belejavítasz néha a file-ba, akkor igen.

Nincs elég hely a környezeti változóknak hiba azt jelzi, hogy nem minden SET parancsot lehetett végrehajtani. Ennek két oka lehet. Vagy eleve elég kevés hely van hagyva nekik, vagy a sok SET parancs (pl. AUTOEXEC.BAT-ban) miatt elfogyott a szabad hely.
A megoldás az, hogy a COMMAND.COM-nak meg kell adni, hogy több helyet hagyjon a változóknak. Ez a config.sys-ben a shell= sorban tehető meg (lásd valamely DOS leíráast), valami ehhez hasonló módon: (utána persze újra kell indítani a gépet)

         shell=c:\command.com /e:1024 /p

Ha nálad más hiba fordul elő, írd meg (lehetőleg a megoldást is), és beépítem ebbe a leírásba.

Debug

Ha baj van, akkor valahogy ki kell találni, hogy mi a fene okozza. Ha az előző részből (Problémás esetek) nem derül ki, mi a teendő, akkor próbálkozni kell:

File-ok a könyvtárakban

Minden itt leírt dolog ki kellett már derüljön eddig is, de azért itt most összefoglalom, hogy melyik file-nak melyik könyvtárban a helye.
  c:\pmail
    email.bat       leveleket elküldi/leszedi - ezt kell használni !
    mail.bat        levél írásra - ezt kell használni !
    zsmtpop.exe     az én SMTP/POP3 programom (email.bat hívja)
    pmail.exe       pegazus mail program (mail.bat hívja)
    pmail.cfg       pmail config file (pmail hasznélja)
    pegazus.rsc     pmail resource file (pmail használja)
    netdial.exe     tárcsázó program (email.bat használja)
    epppd.exe       packet driver-t csinál (email.bat használja)
    epppdd.exe      packet driver-t csinál (debug-oláshoz kell csak)
    termin.com      packet driver-t kiirtja (email.bat használja)
    wattcp.cfg      config file (EMAIL.BAT csinálja ZSMTPOP használja)
    ip-ip.bat       EPPPD hozza létre (EMAIL.BAT használja)
    pmgate.sys      XXX könyvtárból ide másolja az EMAIL.BAT
    netdial.scr     XXX könyvtárból ide másolja az EMAIL.BAT
    setmail.bat     XXX könyvtárból ide másolja az EMAIL.BAT
    xxx\
      netdial.scr   netdial adatfile, (EMAIL.BAT használja)
      setmail.bat   adat beállító batch, (EMAIL.BAT használja)
      pmgate.sys    Pmail gateway definíciós file (EMAIL.BAT használja)
      zsmtpop.cfg   ZSMTPOP config file. (ZSMTPOP használja)
      pmail.ini     pmail ini file (pmail csinálja és használja)
      *.cnm         az új (még nem olvasott levelek)
      *.msg         a még el nem küldött levelek
      *.pm*         pmail saját dolgai

A dolgok belseje

Ha esetleg érdekel, hogyan is néznek ki a config és batch file-ok, amikről szó volt, akkor nézz be ide:

Mit hol találsz:

Egy-egy elérési helyet idetettem, de persze száz másik helyről is letölthetők a programok (kivéve a ZSMTPOP-ot, mert az csak tőlem).

Direkt internet kapcsolat

Vannak olyan szerencsések, akiknek direkt internet kapcsolatuk van (pl. a vállalatnál, ahol dolgoznak). Nekik valamivel egyszerűbb talán az életük. Csak a Pmail és ZSMTPOP programokra van szükségük, a többi (NetDial, EPPPD, TERMIN) nekik nem kell.

Persze nekik is el kell valahogy érniók, hogy legyen egy packet driver-ük, hiszen a ZSMTPOP csak azzal tud működni. Erről található leírás az Internet használata DOS-ból c. irományomban.

Mivel az email.bat-ot nem használják, saját maguknak kell egyszer létrehozni a megfelelő wattcp.cfg file-t.

Novell NetWare

Ha Novell NetWare alatt használod a Pmail-t, akkor a [User Defined Gateway] helyett használhatod az [SMTP Internet Mail Interface] módszert is (én hónapok óta így levelezem).

Hozz létre a SYS volume-on egy \SMTPMAIL könyvtárat (ha még nincs), olyan jogokkal, hogy bárki írhasson bele, olvashasson belőle.

A PCONFIG programban válaszd az [SMTP internet...] pontot. Ezeket állítsd be (NNN helyére a novell szervered nevét írd!):

   Spool interface: Y
   Output path: \\NNN\SYS\SMTPMAIL
   Enabled: Y
   Preferred: Y
   Use Always: N
A többi beállítás a ZSMTPOP szempontjából érdektelen.

Más leírások a DOS-os levelezésről

Vannak más leírások is (persze angolul), ha érdekel, nézd meg őket.
Internet használata DOS-ból (én írtam)
Vissza a DOS lapomra
Vissza a honlapomra
Levél nekem: zotyo kukac zotyo.hu