IRcap — File Browser

ircap871-mircscripts_2799 / ircap871-mircscripts_2799 / mod / mail / smail.mrc

smail.mrc — 3.86 KB — Download this file

;IRcap8 a7698f89561f75d34f7d1986f858ba0e
alias dmail {
  %smail.de = $readini(%perfil,email,de)
  %smail.to = $readini(%perfil,email,to)
  %smail.smtp = $readini(%perfil,email,smtp)
  if $dialog(email) == $null dialog -m email emailt
  if ($1) { %smail.to = $klista($1,%smail.to) | .timer -m 1 100 llenato | .timer -m 1 200 did -c email 1 1 | .timer -m 1 300 did -f email 2 }
}

on *:DIALOG:email:init:0:{  
  did -a email 7 %smail.de
  did -c email 11
  llenato | llenasmtp
}  
alias LLENATO did -r email 1 | var %i = 1 | :L1 | var %a = $gettok(%smail.to,%i,32) | if (%a) { did -a email 1 %a | inc %i | goto L1 }
alias LLENASMTP did -r email 8 | var %i = 1 | :L1 | var %a = $gettok(%smail.smtp,%i,32) | if (%a) { did -a email 8 %a | inc %i | goto L1 } | did -c email 8 1

on *:DIALOG:email:close:0: {
  if (%smail.de) writeini %perfil email de %smail.de
  if (%smail.to) writeini %perfil email to %smail.to
  if (%smail.smtp) writeini %perfil email smtp %smail.smtp
unset %smail.* | .unload -rs smail.mrc
}

dialog emailt {
  title $s(50)
  size -1 -1 520 246
  combo 1,66 10 200 170,edit drop
  edit "",2,65 32 450 24,autohs
  edit "",3,65 56 450 100,return multi vsbar

  edit "",7,345 10 170 23,autohs
  combo 8,66 160 170 50,edit drop
  button $s(51),10,350 160 164 25
  check $s(52),11,250 160 88 24
  edit "IRcap mail 3.0",12,5 190 510 50,multi vsbar read

  text $s(53),101,2 13 60 22,right
  text $s(19),102,2 36 60 22,right
  text $s(54),103,2 60 60 22,right
  text $s(55),107,282 14 60 18,right
  text $s(56),108,2 163 60 20,right
}


on *:DIALOG:email:*:*: {  
  if ($devent == sclick) && ($did == 10) {
    if ($did(10) == $s(57)) { info $s(58) | reamail | return }
    iniemail
  }
  if ($devent == edit) && ($did == 7) { set %smail.de $did(7) }
}  

alias INIEMAIL {
  if (!$did(email,1)) || (!$did(email,2)) || (!$did(email,3)) || (!$did(email,7)) || (!$did(email,8)) { info $s(59) | return }
  did -a email 10 $s(57)
  %smail.smtp = $klista($did(email,8),%smail.smtp) | llenasmtp
  %smail.to = $klista($did(email,1),%smail.to) | llenato | did -c email 1 1
  sockclose eemail 
  sockopen eemail $did(email,8) 25 | info $s(60) $did(email,8) : 25
}

on 1:sockopen:eemail: {
  if $sockerr > 0 { info $s(61) $sock(eemail,1).ip : $sock(eemail,1).port | reamail | return }
  info $s(62)
  sockwrite -tn eemail HELO $ip
  %tmp.mail.datos = 1
}

on 1:sockclose:eemail: info $s(63) | reamail

on 1:sockread:eemail: {
  var %a | sockread %a
  if (accepted isin %a) || (received isin %a) {
    info $s(64) %a
    finalmail
  }
  if (Denied isin %a) || (ERROR isin %a) || ($gettok(%a,1,32) == 550) { info $s(65) %a | reamail | halt }
  if ($gettok(%a,1,32) == 250) { if (%tmp.mail.datos) { unset %tmp.mail.datos | maildatos } }
}
on 1:sockwrite:eemail: if $sockerr > 0 { info $s(66) | reamail | halt }

alias MAILDATOS {
  var %c = sockwrite -tn eemail
  %c MAIL FROM: $did(email,7)
  %c RCPT TO: $did(email,1)
  %c DATA
  %c To: $did(email,1)
  %c From: $did(email,7)
  %c Subject: $did(email,2)
  %c $crlf
  var %l = 1 | :L1 | %c $did(email,3,%l) | inc %l | if (%l <= $did(email,3).lines) goto L1
  %c $crlf
  %c .
  info $s(67)
  if ($did(email,11).state == 1) logmail
}

alias FINALMAIL {
  sockwrite -tn eemail quit
  reamail
}

alias REAMAIL sockclose eemail | did -a email 10 $s(51)

alias LOGMAIL {
  var %c = write s\log\smail.txt
  %c ( $+ $s(68) $+ ):  $fulldate
  %c ( $+ $s(69) $+ ):  $did(email,1) : : :  ( $+ $s(18) $+ ):  $did(email,7)
  %c ( $+ $s(19) $+ ):  $did(email,2)
  var %l = 1 | :L1 | %c $did(email,3,%l) | inc %l | if (%l <= $did(email,3).lines) goto L1
  %c  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
}

alias -l klista return $gettok($1 $remtok($2-,$1,1,32),1-8,32)
alias -l info did -a email 12  $crlf *** $1-
alias -l S return $hget(mail,$1)

;EOF-dt