Ben de sorununu anlatırken tam anlatılması gerektiği gibi anlattığın ve sorununun ne olduğunu çözebilmemiz için gerekli tüm bilgileri verdiğin için teşekkür ediyorum. Bu açtığın konunun diğer arkadaşlara da örnek olmasını temenni ediyorum.
----------
yalnız burada
set spam [string range $arg [string first Spamfilter $arg] e]
şu satırın ne ifade ettiğini biliyormusun? Bunla alakalı bir şey değil. Bir üst satırda "*Spamfilter*" kullandığın için sonuç doğru oluyor. Kendisinin kullanımında burası "*\[Spamfilter\]*" şeklinde olduğu için içinde bu kelime geçmese bile her defasında sonuç 1 olarak dönüyor. Yani kendi kodunda sadece orayı "*Spamfilter*" şeklinde değiştirmen de sorununu çözecektir.