e-mail -> sms atd.
zricka at logis.cz
zricka at logis.cz
Thu Oct 8 13:34:41 CEST 1998
> Nazdar,
> já používám dva skripty v ksh + awk spoutene cronem.
> smsproc 1x denně (večer) posílá zkrácenou hlavičku mailu ve formátu
> zhruba :
> cislo_mailu od_koho/den/cas/ subject :: cislo_mailu ..... :: atd.
> v maximalne 120 znaků dlouhé řádce.
>
> smsmailproc kontroluje příchozí maily :
> 1- pokud přijde mail z meho domaciho paegasu ihned píše příkazem
> write subject na všechny terminály kde jsem přihlášen (to víte
> manželka)
>
> 2- pokud přijde mail z domu se subjektem LSMAIL pošle seznam mailu
> 3- pokud prijde mail se subjektem SMAIL cislo_mailu pošle
> rozkouskovany
> mail daneho cisla
> Tak dostávám informace o nových mailech, a zároveň si můžu něco nechat
> poslat "celé".
>
> Asi to není moc pěkně napsané, určitě tam jsou spec. věci pro
> platformu
> (DYNIX)
> - problém s formátem výstupu příkazu mailx -H nebo date .. , ale svůj
> účel to plní.
>
> smsproc:
> #!/bin/ksh
>
> TMPFILE=/tmp/$$.mail
>
> TZ=GMT
> UNIXUSER=honza
> SMSADR=honza at sms.paegas.cz
> SMSPROC=/user/honza/smsproc
> export UNIXUSER SMSADR SMSPROC TMPFILE
>
> sleep 30
>
> if /bin/mail -e
> then
> mailx -H > $TMPFILE
> cut -c3-80 $TMPFILE | nawk '
> BEGIN { maxlen = 120; n=1;
> "echo $TMPFILE" | getline f;
> "echo $UNIXUSER" | getline uusr;
> "echo $SMSPROC" | getline smsproc;
> "echo $SMSADR" | getline smsu; }
> {
> mesg="";
> if (substr($2,1,16) != substr(smsu,1,16))
> {
> for (i=8;i<NF+1;i++) mesg=mesg " " $i;
> text1 = substr(sprintf("%s %s/%s/%s/%s::",$1,$2,$3,$6,mesg),1,
> maxlen);
> if ((length(text)+length(text1))> maxlen)
> { fil = f n; n++; print text > fil;
> text = text1;
> }
> else
> { text = text text1; }
>
> }
> }
> END { fil = f n; n++; print text > fil; } '
>
>
> for s in `ls ${TMPFILE}?* `
> do
> #cat $s
> cat $s | mailx -s LSmail $SMSUSER
> sleep 180
> done
> rm ${TMPFILE}*
>
> fi
> #### konec smsproc
>
>
> smsmailproc:
> #!/bin/ksh
>
> TMPFILE=/tmp/$$.mail
>
> TZ=GMT
> UNIXUSER=honza
> SMSADR=honza at sms.paegas.cz
> SMSPROC=/user/honza/smsproc
> export UNIXUSER SMSADR SMSPROC TMFILE
>
> if /bin/mail -e 2>/dev/null
> then
> mailx -H > $TMPFILE 2>/dev/null
> if test -f $TMPFILE
> then
> cut -c3-80 $TMPFILE | nawk 'BEGIN { maxlen = 140;
> "echo ${TMPFILE}2" | getline tmpfile;
> "echo $UNIXUSER" | getline uusr;
> "echo $SMSPROC" | getline
> smsproc;
> "echo $SMSADR" | getline smsu; }
> {
> maxm = $1;
> if (substr($2,1,16) == substr(smsu,1,16))
> { if ($8 == "?")
> { printf("d %s\nq\n",$1) | "mailx -N >/dev/null";
> cmd="mailx -s SMS_HELP " smsu ;
> print "LSMAIL - seznam posty, SMAIL x - poslani mailu cislo x" |
> cmd;
> continue;
> }
> if ($8 == "LSMAIL")
> { printf("d %s\nq\n",$1) | "mailx -N >/dev/null";
> system(smsproc);
> continue;
> }
> if ($8 == "SMAIL" && $9 < maxm)
> { printf("d %s\nq\n",$1) | "mailx -N >/dev/null";
> while("echo \"p " $9 "\nx\n\" | mailx -N" | getline xline)
> {
> text = text " " xline;
> }
> l=length(text);
> if (l>2400) l=2400;
> for(i=1;i<l;i=i+ii)
> {
> if (l-i< maxlen ) ii=l-i; else ii= maxlen ;
> x=substr(text,i,ii);
> print x >> tmpfile;
> }
> continue;
> }
>
> subj= $8 " " $9 " " $10 " " $11 " " $12;
> "date +\"%d:%H:%M\"" | getline dat;
> split(dat,arr,":");
> datakt=arr[1]*24*60+arr[2]*60+arr[3];
> split($6,arr,":");
> datpri=$5*24*60+arr[1]*60+arr[2];
>
> if (((datakt - datpri) > 100 && (datakt-datpri)%60==0) ||
> datakt-datpri<100)
> {
> while ("who -T"| getline)
> {
> if ($1 == uusr && $2 == "+")
> { cmd="write " uusr " " $3 " 2>/dev/null";
> print subj | cmd ;
> }
> }
> }
> }
> } '
>
> if test -f ${TMPFILE}2
> then
> let l=1
> while read line
> do
> echo $line | mailx -s M${l} $SMSADR
> let l=$l+1
> sleep 130
> done < $TMPFILE
> fi
> fi
>
> rm $TMPFILE ${TMPFILE}2 2>/dev/null
>
> fi
> ######konec smsmailproc
>
>
> *-- End of Mail ----------------------------------------------------*
> | From : Libor Stefek Addr.: LOGIS s.r.o. |
> | E-mail : lstefek at logis.cz U Noveho sveta 286 |
> | 744 11 Frenstat p.R. |
> *-------------------------------------------------------------------*
>
More information about the net
mailing list