mars_nwe:
Levelezés PMail-lel
A mars dokumentációja a mellékelt marsmail nevű (dosos) program használatát javasolja, ami tulajdonképpen a /var/spool/mail/$USER-t alakitja át a pmail által használt mailbox formátumra, és igy lesz használható pmaillal.

A megoldás működik (a marsmailt-t kicsit át kellett hackni hozzá, hogy űgy menjen, ahogy én azt elképzeltem), de szerintem nem az igazi, ugyanis ha a felhasználó az inbox-ból nem takaritja el a leveleit, akkor a marsmail következő futtatásánal a már olvasott, de az inboxban levő levelek újra konvertálásra kerülnek (legalábbis úgy rémlik, ezért nem nyerte el tetszésemet).

Az általam alkalmazott megoldás lényege az, hogy a felhasználó linuxos homekönyvtárában kialakitunk egy pmail/in és egy pmail/out könyvtarat. A linuxos home lesz dos-ban az I: könyvtár, és a mars pedig a pmail/in -ből szedi a bejövő, a pmail/out-ba rakja a kimenő leveleit, ahonnan egy cron által futtatott script szedi ki a fileokat és postázza el sendmaillel.

Először megcsináltam a ~/pmail/in és a ~/pmail/out könyvtárakat, majd a .procmailrc-t es a .forward-ot megtöltöttem megfelelő tartalommal:

 mailtrans:~$ cat .forward
 "|/usr/bin/procmail"
 mailtrans:~$ cat .procmailrc
 PATH=/bin:/usr/bin:/usr/local/bin
 MAILDIR=$HOME/pmail/in

 :0:
 * .*
 `/usr/local/bin/sing`
 mailtrans:~$
(Netscape alatt irom ezt, számomra nem annyira feltűnő a különbség, az `/usr/local/bin/sing` körül az a két kis aposztróf a visszafelé-aposztróf [``backtick''])
(Ha a sendmail úgy van beállitva, hogy reflexből a procmailnek adja tovább a bejövő leveleket, akkor a .forward mellőzhető.)

Az /usr/local/bin/-ben levő sing (sort incoming :) nevű script végzi el a bejövő levelek PMail által használt névkonvencióknak (8 szám + .cnm kiterjesztés) megfelelő nevű fileba lerakását:

 mailtrans:/usr/local/bin$ cat sing
 #!/bin/bash
 BASE=$(date +%s|sed 's/.*\(........\)$/\1/')
 echo $BASE.cnm
 mailtrans:/usr/local/bin$
Ezzel a bejövő levelek feldolgozása kész.
A kimenő levelek: a ~/pmail/out könyvtárba kerülnek, ahonnan a már emlitett, a root crontabjából futó script végzi a továbbitást.
 mailtrans:/usr/local/bin$ cat ohspool                   
 #!/bin/bash
 #
 #
 # This script runs through all the user dirs to collect mail that needs to 
 # be sent.
 # Pegasus mail for dos will use a gateway that places outgoing mail in
 # /home/username/pmail/out. All these messages will be picked up by this
 # script and mailed out.
 # Please create a file /etc/ohmaillist that contains valid users that
 # may send mail from dos pmail logged into mars.
 # (I added it to the adduser script so all users can have new mail)
 # Format of the ohmaillist file is just a single username per line

 # Replace with the base dir of your home directories i.e. /home

 homedirs="/home/users"     

 # Replace with your domain name
 dm="mailtrans.sote.hu"

  cd /home/users
  for l in `cat /etc/ohmaillist` 
  do
    FROM=$l
    chmod 660 /var/spool/mail/$l
    for x in `ls $l/pmail/out` 
     do
      if [ "$FROM" == "nwadm" ]; then 
       FROM=supervisor
      fi 
      cat "$l/pmail/out/$x" | sed '1,4d' | \ 
       /usr/sbin/sendmail -f "<$FROM@$dm>" -t
      echo "`date` ohspool: mail sent from=<$l>, to=<`cat $l/pmail/out/$x | \
       sed 's/.$//;5!d;s/.* \([^ ]*@[^ ].*\)/\1/'`>" >> /var/log/ohspool.log
      rm "$l/pmail/out/$x"
    done
  sleep 1
  done

 # ohmail - ends here
 mailtans:/usr/local/bin$ 
Az /etc/ohmaillist nevű fileban vannak felsorolva azok a felhasználók, akik küldhetnek pmaillel levelet, minden sorban egy felhasználónév, semmi trükközés.

Ez a script elvégzi a válogatást, és /var/log/ohspool.log-ba logolja áldásos tevékenységet.

A script a root crontabjából fut, esetünkben 5 percenként, amihez a következő cronbejegyzés szükséges:

 0/5 * * * * /usr/local/bin/ohspool

FIGYELEM: az ohspool script jelenlegi állapotában nem lockolja a fileokat, igy a még lehetséges legkisebb időközt, amikor a futás megfelelő, empirikus úton (probálgatással :) lehet jól belőni. Ha túl gyakran fut, előfordulhat, hogy úgymond 'utoléri magát', és kétszer küld el egy levelet; ha túl ritkán, akkor háborognak a felhasználók, hogy lassú a levélváltás.

Ezekután az adduser scriptbe célszerű beletenni egy sort acélból, hogy az újonnan hozzáadott usert vegye fel a pmail-használók közé, valamint az /etc/skel-be beirni egy forward és egy procmailrc-t, valamint a pmai, pmail/in és pmail/out könyvtárakat.

A PMail-t be kell állitani úgy, hogy a frissen kreált gateway-ünket használja, es ne azt, amit ő szeretne. (3.11-es PMail-ről van szó, a többit nem ismerem)

Supervisor-ként a PCONFIG programmal lehet beállitani a gatewayt:

pconfig -> Manage User Defined Gateways -> Define New Gateway

A beállitások:

  ::: I              Gateway name : [OH              ]                   I.::::
  ::: I            *New mail path :  i:\pmail\in                         I|::::
  ::: I    Is ^ a program to run? :  N                                   I|::::
  ::: I     *New mail search mask :  *.cnm                               I|::::
  ::: I       *Outgoing mail path :  i:\pmail\out                        I|::::
  ::: I    *Run for outgoing mail :                                      I|::::
  ::: I          *Filename format :  ~d~d.CNM                            I|::::
  ::: I   Run to validate address :                                      I|::::
  ::: I     *Reply address format :  ~n@geped.inet.neve                  I|::::
  ::: I   Accepts SMTP addresses? :  Y                                   I|::::
  ::: I   Simple message headers? :  Simple headers                      I|::::
  ::: I     UUEncode attachments? :  N                                   I|::::
  ::: I           Burst messages? :  N                                   I|::::
  ::: I       Strip gateway name? :  Y                                   I|::::
  ::: I   Force all mail through? :  Y                                   I|::::

És még valami: úgy látom a pmail.exe valami miatt nem szereti, ha nem abból a könyvtárból van inditva, ahol ő leledz, invalid resource-ra hivatkozik. Ezen az sem segitett, ha path-ba raktam, úgyhogy célszerű egy mail.bat-ot felkérni arra, hogy váltson át a megfelelő meghajtó megfelelő könyvtárába, és ott inditsa el a pmail.exe-t.

Pásztor György" <pasztor@gyakg.u-szeged.hu> megjegyzése:

A DOS-ban kell lennie egy környezeti változónak aminek a neve PMAILRSC ezt kell beállítani valamire: ez lehet hu, eng, nds; attól függúen hogy milyen nyelvű pmailt akarsz hasznalni, ugyanis a pmail több nyelvű feliratokkal is használható, minden a pmailrsc értékétúl függ. Ilyen rsc fileokat, úgy emlékszem a Ságvári Gimnázium ftp-szerveréről (ftp://ftp.gyakg.u-szeged.hu) tölthetsz le. (Es egyéb novelles kiegészítőket is...) De ettől függetlenul ezeknek lehet, hogy path-ban kell lenniük... Ja és még annyit, hogy ha pmailrsc-nek nds van beállítva, akkor ahhoz pmailnds.exe nevű file kell, es az nds (novel4.x) hálózatokhoz való...

A MARS NDS-t nm tud, így ez a része nem érint bennünket.

ice@rulez.org


This document is: http://localhost/var/www/cgi-bin/fom?file=111

[Search] [Appearance] [Show Edit Commands]
The Faq-O-Matic is by Jon Howell.