IRcap — File Browser
ircap871-mircscripts_2799 / ircap871-mircscripts_2799 / mod / mail / mail.mrc
mail.mrc — 15.49 KB — Download this file
;IRcap8 3d0297482deda47a00695642ec93126a
menu menubar {
$s(e-mail)
.$s(1): mailnotif
.-
.$s(2): mandamail
.$s(3): run notepad s\log\smail.txt
.-
.$m(269): icoe-mail
}
on 1:connect: if ($gettok($readini(%perfil,email,op),1,44) == on) && (!$timer(mail)) { .timerMAIL -oi 1 30 mailnotif -n }
alias MANDAMAIL .load -rs mod\mail\smail.mrc | dmail $1-
alias -l o return $gettok(%mail.o,$1,44)
alias -l S return $hget(mail,$1)
alias MAILNOTIF {
%mail.o = $readini(%perfil,email,op)
if (!%tmp.mail.lee1) {
if ($o(1) == on) { .timerMAIL -oi 1 $calc($o(2) * 60) mailnotif -n } | else { .timerMAIL off }
}
if (v isin $1) { mail.gui | titulamail | return }
window -c @e-mails | window -c @maills1 | window -hls @maills1
if (n !isin $1) mail.gui
%mail.blanca = $replace($readini(%perfil,email,lb),|,)
%mail.negra = $replace($readini(%perfil,email,ln),|,)
%mail.pal = $replace($readini(%perfil,email,lp),|,)
mailcierrasocks
unset %tmp.cmailn
%tmp.mail.nn = 0
if (%tmp.mail.lee1) { sockopen CMAIL1 $gettok(%tmp.mail.lee1,1,32) 110 | sockmark CMAIL1 $gettok(%tmp.mail.lee1,2-3,32) $gettok(%tmp.mail.lee1,1,32) 110 0 1 1 | inc %tmp.mail.nn | unset %tmp.mail.lee1 }
else {
var %n = 0 | :L1 | inc %n 1 | var %d = $readini %perfil EMAIL %n | if ($len(%d) > 5) { if ($gettok(%d,4,32) != off) { sockopen CMAIL $+ %n $gettok(%d,1,32) 110 | sockmark CMAIL $+ %n $gettok(%d,2-3,32) $gettok(%d,1,32) 110 0 1 1 | inc %tmp.mail.nn } | goto L1 }
}
echo -st $logo $+ $s(4) ( $+ %tmp.mail.nn $s(5) $+ )...
.timerMAIL.FORZA -oi 1 60 mail.forza
}
alias mail.gui {
if (!$1) {
window -c @mail
var %a = $readini ircap.ini ww mail
%mail.skla = 280 150
guiwin @Mail %a $s(e-mail)
window -hls @maills1
}
var %w = $window(@mail).w , %h = $window(@mail).h
%mail.ls1 = 10 40 $calc(%w - 40) $int($calc((%h / 14) - 6)) 1 0 mail.click @maills1 arbol
var %y = $calc(%h - 36) , %x = $calc($window(@mail).w / 2)
%mail.bt = $calc(%x - 126) %y 100 borramail_1 $s(6) $chr(124) $calc(%x + 10) %y 100 mail.click_0 $s(7)
guilista @mail mail.ls1
guidib @mail
if (!$1) { window -wa @mail | sss wina }
}
alias redim.@mail {
guiwin @mail x x $window(@mail).w $window(@mail).h
mail.gui redim
titulamail
if $1 == fin { wmueve2 @mail }
}
alias mail.cierra {
mailcierrasocks
unset %tmp.mail.* %mail.*
window -c @maills1
window -c @e-mails
window -c @mail
window -c @mail-msg
window -c @mail-m0
}
alias -l mailcierrasocks {
.timerMailCierra-* off
sockclose cmail*
sockclose dmail*
sockclose leemail*
}
on 1:sockopen:CMAIL*: titulamail | if $sockerr > 0 { scon -a echo -st $logo $gettok($sock($sockname).mark,1,32) 4 $+ $s(8) $+ : $sock($sockname).wsmsg | sockclose $sockname | titulamail | return }
on 1:sockclose:CMAIL*: .timerTITULAMAIL -mo 1 200 titulamail
on 1:sockread:CMAIL*: {
var %a
sockread %a
var %p = $gettok($sock($sockname).mark,7,32) , %c = $gettok(%a,1,32) , %m = $gettok($sock($sockname).mark,1,32)
if -ERR isin %c { scon -a echo -st $logo $gettok($sock($sockname).mark,1,32) 4 $+ $s(8) $+ : %a | sockwrite -tn $sockname quit | sockclose $sockname | titulamail | halt }
if %p == 5 {
if ($left(%a,5) == from:) { set %tmp.mail.f. [ $+ [ %m ] ] $strip($gettok(%a,2-,58)) }
if (reply isin $left(%a,8)) { set %tmp.mail.r. [ $+ [ %m ] ] $strip($gettok(%a,2-,58)) }
if (return-path isin $$left(%a,12)) { set %tmp.mail.rp. [ $+ [ %m ] ] $strip($gettok(%a,2-,58)) }
if ($$left(%a,8) == subject:) { set %tmp.mail.s. [ $+ [ %m ] ] $strip($gettok(%a,2-,58)) }
if ($o(4) == on) { if ([bulk] isin %a) || (filteredbulk isin %a) || (X-Spam-Level: ** isin %a) { set %tmp.mail.sp. [ $+ [ %m ] ] 1 } }
}
if %a == . {
if ($o(5) == on) { var %n = 1 | :BLA | var %a = $gettok(%mail.blanca,%n,22) | if (%a) { if (%a iswm %tmp.mail.f. [ $+ [ %m ] ]) goto FINFILTRO | inc %n | goto BLA } }
if ($o(6) == on) { var %n = 1 | :NEG | var %a = $gettok(%mail.negra,%n,22) | if (%a) { if (%a iswm %tmp.mail.f. [ $+ [ %m ] ]) { set %tmp.mail.sp. [ $+ [ %m ] ] 1 | goto FINFILTRO } | inc %n | goto NEG } }
if ($o(7) == on) { var %n = 1 | :PAL | var %a = $gettok(%mail.pal,%n,22) | if (%a) { if (%a iswm %tmp.mail.s. [ $+ [ %m ] ]) { set %tmp.mail.sp. [ $+ [ %m ] ] 1 | goto FINFILTRO } | inc %n | goto PAL } }
if ($o(3) == on) { if ($spamalea(3,$gettok($limpia(%tmp.mail.f. [ $+ [ %m ] ]),1,64)) == si) { set %tmp.mail.sp. [ $+ [ %m ] ] 1 } }
if ($o(3) == on) { if (%tmp.mail.r. [ $+ [ %m ] ]) { if ($limpia(%tmp.mail.f. [ $+ [ %m ] ]) != $limpia(%tmp.mail.r. [ $+ [ %m ] ])) { set %tmp.mail.sp. [ $+ [ %m ] ] 1 } } }
if ($o(3) == on) { if (%tmp.mail.rp. [ $+ [ %m ] ]) { if ($limpia(%tmp.mail.f. [ $+ [ %m ] ]) != $limpia(%tmp.mail.rp. [ $+ [ %m ] ])) { set %tmp.mail.sp. [ $+ [ %m ] ] 1 } } }
:FINFILTRO
$lista(%m,$gettok($sock($sockname).mark,6,32),%tmp.mail.f. [ $+ [ %m ] ] , %tmp.mail.s. [ $+ [ %m ] ],$gettok($sock($sockname).mark,1-4,32) ,%tmp.mail.sp. [ $+ [ %m ] ])
unset %tmp.mail.f. [ $+ [ %m ] ] %tmp.mail.s. [ $+ [ %m ] ] %tmp.mail.sp. [ $+ [ %m ] ] %tmp.mail.r. [ $+ [ %m ] ] %tmp.mail.rp. [ $+ [ %m ] ]
var %n = $gettok($sock($sockname).mark,6,32) | inc %n | sockmark $sockname $puttok($sock($sockname).mark,%n,6,32) | if %n > $gettok($sock($sockname).mark,5,32) { smail quit } | else { smail top %n 0 }
}
if %c == +OK {
if %p == 1 { smail user $gettok(%m,1,64) | pmail 2 }
if %p == 2 { smail pass $decode64($gettok($sock($sockname).mark,2,32),m) | pmail 3 }
if %p == 3 { smail stat | pmail 4 }
if %p == 4 { var %n = $gettok(%a,2,32) | if (%n != 0) { sockmark $sockname $puttok($sock($sockname).mark,%n,5,32) | smail top 1 0 | pmail 5 } | else smail quit }
}
}
alias -l smail {
sockwrite -tn $sockname $1-
}
alias -l pmail {
var %a = $sock($sockname).mark | sockmark $sockname $gettok(%a,1-6,32) $1
}
alias -l limpia {
if (< isin $1-) return $gettok($gettok(x $1-,1,64),2,60) $+ @ $+ $gettok($gettok(x $1-,2,64),1,62) | else return $gettok($1-,-1,32)
}
alias -l spamalea var %i = 1, %c | :L1 | var %a = $mid($2-,%i,1) | if (%a) { if (%a !isin aeiou-_1234567890) { inc %c | if (%c == $1) return si } | else { %c = 0 } | inc %i | goto L1 }
alias -l lista {
var %g = $iif($6 > 0,zpam,$1)
aline @maills1 %g $+ i $+ $iif($len($4) > 60,$left($4,60) $+ ...,$4) 4:14 $limpia($3) $+ $+ $2 $+ $+ $5 $+ $+ 3 $+ $3 $+ $+ $4
mailgrupo %g
refres
}
alias mailgrupo {
var %l = $fline(@maills1,$1 $+ g*,1) , %n = $fline(@maills1,$1 $+ i*,0)
if (%n > 0) {
if (%l) rline @maills1 %l $1 $+ g $+ $replace($1,zpam,$s(9)) $+ ( $+ %n $+ )-- $+ $iif($1 == zpam,5,4)
else aline @maills1 $1 $+ g $+ $replace($1,zpam,$s(9)) $+ ( $+ %n $+ )-- $+ $iif($1 == zpam,5,4)
return
}
if (%l) dline @maills1 %l
}
alias titulamail {
if ($window(@mail)) titula @mail $s(e-mail) ::: $s(5) $+ : %tmp.mail.nn ::: $s(10) $+ : $fline(@maills1,*i*,0) ::: $s(11) $+ : $calc($sock(cmail*,0) + $sock(dmail*,0))
if ($sock(cmail*,0) == 0) {
var %s = $fline(@maills1,zpami*,0) , %n = $calc($fline(@maills1,*i*,0) - %s)
if (%tmp.mail.nn) { unset %tmp.mail.nn | echo -st $logo $s(12) $iif(%n > 0,* %n $s(10) $+ ) $iif(%s > 0,* %s $lower($s(9)) $+ ) }
raya
if (%n < 1) && (%s < 1) && (!$window(@mail)) { window -c @maills1 }
if (%n > 0) && (!$window(@mail)) {
var %a = $mail.resumen , %i = 1 , %y = 5 , %g = $gettok(%gui.cc,6,44) | %nl = $numtok(%a,22)
var %ac = $active | if $numtok(%ac,32) > 1 { %ac = " $+ %ac $+ " }
window -kpBwz +d @e-mails $calc($window(-3).w - 200) $window(@barra).h 200 $calc(15 * %nl + 8) @e-mails
drawrect -rnf @e-mails $gettok(%gui.cc,1,44) 1 0 0 200 $window(@e-mails).h
cua @e-mails 3 2 192 $calc($window(@e-mails).h - 6) $gettok(%gui.cc,4,44) $gettok(%gui.cc,5,44) $gettok(%gui.cc,3,44)
:L1 | var %c = $gettok(%a,%i,22) | if (%c) {
if ($gettok(%c,1,32) != spam) {
drawtext -rcn @e-mails %g Verdana 9 20 %y 300 14 $gettok(%c,2,32) : $gettok(%c,1,32)
drawpic -cnt @e-mails 65280 4 %y 42 0 14 14 " $+ $mircdirskin\ $+ %skin $+ \miniconos.bmp"
inc %y 15
}
inc %i | goto L1
}
drawline @e-mails
if ($appactive) { window -a @e-mails | window -a %ac }
if ($o(8) == on) $cartelito($s(13),$iif(%n > 0,$s(10) $+ : %n) $iif(%s > 0, \ Spam: %s))
if ($o(9) == on) slocal $o(10)
.timerMAIL.FORZA off
}
}
}
alias mail.forza {
var %n = 1 | : L1 | var %a = $sock(cmail*,%n) | if (%a) { %a = $sock(cmail*,%n).mark | echo -st $logo $gettok(%a,1,32) 4 $+ $s(8) $+ : $s(14) ( $gettok(%a,3,32) ) | inc %n | goto L1 }
sockclose cmail* | titulamail
}
menu @e-mails {
dclick: mailnotif -v | window -c @e-mails
$s(15): mailnotif -v | window -c @e-mails
-
$s(16):mail.cierra
}
alias mail.resumen {
var %i = 1 , %c | :L1 | var %a = $fline(@maills1,*g*,%i).text | if (%a) { if ($gettok(%a,1,8) != zpam) { %c = $addtok(%c,$strip($remove($gettok(%a,3,8),$chr(40),$chr(41))),22) } | inc %i | goto L1 } | return %c
}
alias MAIL.CLICK {
if $gettok($1-,2,8) == g { tttip $fin$ | return }
if $1 == 1 { if ($3) .timerTTTIPmail -m 1 300 tttip $s(17) $+ : $gettok($gettok($3-,5,8),1,32) $+ $s(18) $+ : $nexe($gettok($3-,7,8)) $+ $s(19) $+ : $nexe($gettok($3-,8,8)) }
if $1 == 2 { .timerTTTIPmail off | lee1mail $gettok($3-,5,8) $gettok($3-,4,8) }
if $1 == 0 { var %a = $sline(@maills1,1) | if (%a) lee1mail $gettok(%a,5,8) $gettok(%a,4,8) }
}
#guimgen.@mail on
menu @guimgen {
$iif($gettok($sline(@maills1,1),1,8) != zpam && $gettok($sline(@maills1,1),2,8) == i,$s(20)): {
var %a = $gettok($sline(@maills1,1),1,8)
rline @maills1 $sline(@maills1,1).ln $puttok($sline(@maills1,1),zpam,1,8)
mailgrupo zpam
mailgrupo %a
refres
}
$iif($gettok($sline(@maills1,1),1,8) == zpam && $gettok($sline(@maills1,1),2,8) == i,$s(21)): {
var %a = $sline(@maills1,1)
rline @maills1 $sline(@maills1,1).ln $puttok($sline(@maills1,1),$gettok($gettok(%a,5,8),1,32),1,8)
mailgrupo zpam
mailgrupo $gettok($gettok(%a,5,8),1,32)
refres
}
-
$iif($gettok($sline(@maills1,1),2,8) == i,$s(2)): {
var %a = $limpia($gettok($sline(@maills1,1),7,8))
mandamail %a
}
}
#guimgen.@mail end
alias borramail {
if ($1 == 1) { pregunta $s(22) $+ borramail zpamnoop | return }
mailcierrasocks
var %n = 1 , %l | :L1
var %a = $fline(@maills1,$1 $+ i*,%n).text
if (%a) {
var %e = $gettok($gettok(%a,5,8),1,32)
if (!$findtok(%l,%e,32)) {
%l = $addtok(%l,%e,32) | sockopen DMAIL. $+ %e $gettok($gettok(%a,5,8),3-4,32)
sockmark DMAIL. $+ %e user_ $+ $gettok($gettok(%a,5,8),1,32) pass_ $+ $decode64($gettok($gettok(%a,5,8),2,32),m) *
}
inc %n | goto L1
}
}
on 1:sockopen:DMAIL*: titulamail | if $sockerr > 0 { scon -a echo -st $logo $gettok($sock($sockname).mark,1,32) 4 $+ $s(8) $+ : $sock($sockname).wsmsg | sockclose $sockname | .timerTITULAMAIL -o 1 1 titulamail | return }
on 1:sockclose:DMAIL*: .timerTITULAMAIL -o 1 1 titulamail
on 1:sockread:DMAIL*: {
var %a
sockread %a
var %m = $sock($sockname).mark , %c = $gettok(%a,1,32)
if %c == +OK {
var %k = $gettok(%m,1,32)
if (%k == *) {
var %b = $fline(@maills1,zpami** $+ $gettok($sockname,2-,46) *,1)
if (%b) { var %t = $line(@maills1,%b) | sockwrite -tn $sockname dele $gettok(%t,4,8) | titulamail | dline @maills1 %b | refres }
else { sockwrite -tn $sockname quit | mailgrupo zpam | refres }
return
}
if (user_* iswm %k) { sockwrite -tn $sockname user $gettok($gettok(%k,2-,95),1,64) | goto D1 }
if (pass_* iswm %k) { sockwrite -tn $sockname pass $gettok(%k,2-,95) }
:D1
sockmark $sockname $gettok(%m,2-,32)
}
}
alias -l refres {
if $window(@mail) { guilista @mail mail.ls1 | drawline @mail }
}
alias lee1mail {
if (!$5) return
if (!$sock(LEEMAIL- $+ $1)) {
sockopen LEEMAIL- $+ $1 $3 $4
sockmark LEEMAIL- $+ $1 user_ $+ $1 pass_ $+ $decode64($2,m) retr_ $+ $5
}
else { sockmark LEEMAIL- $+ $1 retr_ $+ $5 | sockwrite -tn LEEMAIL- $+ $1 stat }
.timerMailCierra- $+ $1 1 25 sockclose LEEMAIL- $+ $1
unset %tmp.mail.leemen %tmp.mail.100
window -c @mail-m0 | window -lh @mail-m0
if (!$window(@mail-msg)) { var %a = $readini ircap.ini ww mailmsg | window @mail-msg %a }
clear @mail-msg | echo @mail-msg $s(23) $1 ...
}
on 1:sockopen:LEEMAIL-*: if $sockerr > 0 { scon -a echo -st $logo $removecs($sockname,LEEMAIL-) 4 $+ $s(8) $+ : $sock($sockname).wsmsg | sockclose $sockname | return }
on 1:sockread:LEEMAIL-*: {
var %s
sockread %s
if -ERR isin %s { echo -s $sockname 4 $+ $s(8) $+ : %s | sockclose $sockname | halt }
if ($len($remove(%s,$chr(32))) < 1) aline @mail-m0 | else aline @mail-m0 %s
inc %tmp.mail.100
if ($gettok(%s,1,32) == +OK) {
var %k = $gettok($sock($sockname).mark,1,32)
if (user_* iswm %k) { sockwrite -tn $sockname user $gettok($gettok(%k,2-,95),1,64) | goto D1 }
if (pass_* iswm %k) { sockwrite -tn $sockname pass $gettok(%k,2-,95) }
if (retr_* iswm %k) { sockwrite -tn $sockname retr $gettok(%k,2-,95) }
:D1
sockmark $sockname $gettok($sock($sockname).mark,2-,32)
return
}
if (Content-Disposition: inline; isin %s) || (Content-Type: text/htmlo; isin %s) || (Content-Disposition: attachment; isin %s) { aline @mail-m0 | aline @mail-m0 $+ $s(24) | sockclose $sockname | sacamail }
if %tmp.mail.100 > 200 { aline @mail-m0 $+ $s(25) | sockclose $sockname | sacamail }
if (%s == .) { sacamail | return }
}
alias sacamail {
%tmp.mail.mos = $1-
unset %tmp.mail.lsep
clear @mail-msg
unset %tmp.mail.leemen %tmp.mail.raya | if (-c isin $1) { %tmp.mail.leemen = 1 }
var %l = 1 | :L1
var %s = $line(@mail-m0,%l) | if (%s) {
if (---- isin %s) && (-c !isin $1) { unset %tmp.mail.leemen }
if (%tmp.mail.leemen) { if (-c isin $1) echo @mail-msg %s | else { var %t = $sinhtml(%s)) | if (%t) { echo @mail-msg %t | unset %tmp.mail.lsep = 1 } | else { if (!%tmp.mail.lsep) { echo @mail-msg | %tmp.mail.lsep = 1 } } } }
else {
var %c = $gettok(%s,1,32) , %k = echo @mail-msg
if (%s == ) { %tmp.mail.leemen = 1 | if (!%tmp.mail.raya) { aline @mail-msg $str(-= ,111) | %tmp.mail.raya = 1 } }
if ( %c == From:) { %k $+ $s(18) $+ : $gettok(%s,2-999,32) }
if (%c == To:) { %k $+ $s(26) $+ : $gettok(%s,2-999,32) }
if (%c == Date:) { %k $+ $s(27) $+ : $gettok(%s,2-999,32) }
if (%c == Subject:) { %k $+ $s(19) $+ : $gettok(%s,2-999,32) }
}
inc %l | goto L1
}
}
menu @mail-msg {
$iif(%tmp.mail.mos != -c,$s(28)): sacamail -c
$iif(%tmp.mail.mos == -c,$s(29)): sacamail
-
$s(30): writeini ircap.ini ww mailmsg $window(@mail-msg).x $window(@mail-msg).y $window(@mail-msg).w $window(@mail-msg).h $window(@mail-msg).font $window(@mail-msg).fontsize
}
alias icoe-mail {
f3 setvarios
var %a = $findtok($gettok(%setup.pñ1,5-,32),e-mail,1,22)
%setup.pñ1 = $puttok(%setup.pñ1,%a,3,32)
setvarios2 %a
}
alias mail.unload {
.timermail* off
mail.cierra
hfree mail
unload -rs mail.mrc
}
on 1:START: {
var %a = $readini(%perfil,email,op)
if (!%a) { writeini %perfil email op off,60,off,off,off,off,off,off,off,- }
.hmake -s mail | hload mail "lng\ $+ %idioma $+ \mail.lnh"
}
on 1:SIGNAL:idioma: if ($1 != $2) { hload mail "lng\ $+ %idioma $+ \mail.lnh" }
;EOF