#!hs2
#!load hamster.hsm
#!load hmessage.hsm

var($listaf, $i, $messo, $fileo, $content, $risp, $nmail, $to, $oggetto, $headerallegato, $allegato, $lung, $da)
$listaf= listalloc()
$messo = listalloc()
$nmail=int(iniread("","noninviate","nmail","0")) # carico il n° delle mail non inviate
ListFiles ($listaf, HamPath + "mails\mail.out\*.*", true) # elenco mail in uscita
$i=0
while ($i < ListCount ($listaf)) # scorro le mail
 $fileo = ListGet ($listaf, $i)
 Inc ($i)
 ListLoad($messo, $fileo)
 $da = 0
 $headerallegato = MsgGetHeader_mio($messo, "Content-Disposition:", $da)
 while ($headerallegato != "") # scorro il contenuto della mail
  $da = MsgIndexOfHeader_mio($messo, "Content-Disposition:", $da)+1
  allegato
  $headerallegato = MsgGetHeader_mio($messo, "Content-Disposition:", $da)
 endwhile
endwhile
IniWrite ("","noninviate","nmail",$nmail) # aggiorno il numero progressivo
listfree ($listaf)
listfree ($messo)
print ("Allegati controllati")
quit

sub allegato
 $lung = len($headerallegato)
 $allegato = LowerCase (Copy ($headerallegato, $lung-3, 3))
 if ( $allegato = "exe" || $allegato = "vbs" || $allegato= "shs" || $allegato= "bat")
  $to = MsgGetHeader($messo, "To:")
  $oggetto = MsgGetHeader($messo, "Subject:")
  if (MsgBox("Stà per essere inviato un messaggio con allegati pericolosi" +chr(13) _
   +chr(13)+ "indirizzato a: " +$to+chr(13)+ "con oggetto: " +$oggetto+chr(13) _
   +chr(13)+ "Inviarlo?", "", 0x20|0x4|0x40000) = 7)
    # sposto la mail non voluta
    $risp = filecopy($fileo, HamPath + "virus\sospettovirus_"+$nmail+".msg")
    $nmail = $nmail+1
    $risp = filedelete ($fileo) # cancello la mail con allegato non voluta
    MsgBox("Il messaggio NON è stato inviato, ma spostato nella cartella virus!")
  endIf
 endif
endsub