| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
sms-email (tcl)raspi 22.06.02 21:54 Lähettää kännykkään tekstiviestin jos sinulle on saapunut sähköpostia
#!/usr/bin/tclsh
# SMS-email
# versio 1.0
# Lähettää tekstiviestin kun olet saanut sähköpostia.
# Toimii ainakin windowssissa ja linuxissa. (Luultavasti myös macissa.)
# Pistä tämä vaikka jylläämään crontabiin.
# Käyttää hyväkseen kyivstarin SMS-palvelua.
# pekkajarvinen@kolumbus.fi
### POP3 ::
set pop(addr) "localhost" ;# pop3 serverin osoite
set pop(port) 110 ;# default: 110, ei tarvitse yleensä vaihtaa
set pop(user) "juusr" ;# käyttäjä
set pop(pass) "passwood" ;# salasana
### SMS ::
set sms(maa) "358" ;# 358 == suomi
set sms(pt) "40" ;# 040 == 40 (sonera)
set sms(nro) "1234567" ;# numero
# %%nro%% = montako
set sms(post1) "posti" ;# %%post%% = posti/postia
set sms(post2) "postia" ;# %%post%% = posti/postia
set sms(kpl1) "kappale" ;# %%kpl%% = kappale/kappaletta
set sms(kpl2) "kappaletta" ;# %%kpl%% = kappale/kappaletta
set sms(uusi1) "uusi" ;# %%uusi%% = uusi/uutta
set sms(uusi2) "uutta" ;# %%uusi%% = uusi/uutta
# set sms(msg) "Sinua odottaa %%nro%% %%kpl%% %%uusi%% sähkö%%post%%."
# == Sinua odottaa 5 kappaletta uusia sähköposteja.
set sms(msg) "%%nro%% %%uusi%% sähkö%%post%%."
### ÄLÄ KOSKE TÄSTÄ ETEENPÄIN JOS ET OSAA TCL:ÄÄ! ###
########################################################################################################
proc haepostit {addr port user pass} {
set debugmode 0 ;# DEBUG
set sendchr "SEND: " ;# DEBUG
set recvchr "RCVD: " ;# DEBUG
if {[catch {set sock [socket $addr $port]} msg] == 0} {
fconfigure $sock -buffering line
set debug [gets $sock]
if {$debugmode} {puts "${recvchr}$debug"}
if {$debugmode} {puts "${sendchr}USER $user"}
puts $sock "USER $user"
set debug [gets $sock]
if {$debugmode} {puts "${recvchr}$debug"}
if {$debugmode} {puts "${sendchr}PASS $pass"}
puts $sock "PASS $pass"
set debug [gets $sock]
if {$debugmode} {puts "${recvchr}$debug"}
if {[string match "+OK*" $debug]} {
if {$debugmode} {puts "${sendchr}STAT"}
puts $sock "STAT"
set pop(stat) [gets $sock]
if {$debugmode} {puts "${recvchr}$pop(stat)"}
set pop(total) [lindex $pop(stat) 1]
set pop(msg_size) [lindex $pop(stat) 2]
} else {
puts "ERROR: $debug"
}
if {$debugmode} {puts "${sendchr}QUIT"}
puts $sock "QUIT"
set debug [gets $sock]
if {$debugmode} {puts "${recvchr}$debug"}
close $sock
return $pop(total)
} else {
puts "ERROR: $msg"
}
}
########################################################################################################
proc httpsend {host port method page data} {
regsub -all { } $data {+} data ;# space -> +
regsub -all {ä} $data {a} data ;# ä -> a
regsub -all {ö} $data {o} data ;# ö -> o
regsub -all {Ä} $data {A} data ;# Ä -> A
regsub -all {Ö} $data {O} data ;# Ö -> O
if {[catch {set sock [socket $host $port]} error] == 0} {
#puts "Connecting: $host:$port"
set datalen [string length $data]
fconfigure $sock -buffering line
#puts "sending headers"
puts $sock "$method $page HTTP/1.1"
puts $sock "Host: $host:$port"
puts $sock "Content-Length: $datalen"
puts $sock "Content-Type: application/x-www-form-urlencoded"
puts $sock "" ;# EOH
#puts "headers sent"
#puts "sending data ($data [$datalen])"
puts $sock $data
#puts "data sent"
set out [gets $sock] ;# mitäs se serveri sitten tuumaa?
#puts $out
} else {
puts "ERROR: $error"
}
}
########################################################################################################
set sms(nom) [haepostit $pop(addr) $pop(port) $pop(user) $pop(pass)]
regsub -all {%%nro%%} $sms(msg) $sms(nom) sms(msg)
if {$sms(nom) == 1} {regsub -all {%%kpl%%} $sms(msg) $sms(kpl1) sms(msg)}
if {$sms(nom) > 1} {regsub -all {%%kpl%%} $sms(msg) $sms(kpl2) sms(msg)}
if {$sms(nom) == 1} {regsub -all {%%uusi%%} $sms(msg) $sms(uusi1) sms(msg)}
if {$sms(nom) > 1} {regsub -all {%%uusi%%} $sms(msg) $sms(uusi2) sms(msg)}
if {$sms(nom) == 1} {regsub -all {%%post%%} $sms(msg) $sms(post1) sms(msg)}
if {$sms(nom) > 1} {regsub -all {%%post%%} $sms(msg) $sms(post2) sms(msg)}
if {$sms(nom) >= 1} {
httpsend "www.kyivstar.net" "80" "POST" "/cgi-bin/sms.pl" "to_addr=${sms(maa)}${sms(pt)}${sms(nro)}&new_body=${sms(msg)}"
}Blizer 17:03 27.11.02 Loistava trolex 10:58 18.6.03 Miten tota käytetään?? en osaa..... empty 14:33 7.7.03 Voisiko joku kertoo miten tota käytetää ? =) silmäne 18:31 8.12.03 käyttö ohjeet kiitos! disaster 19:51 8.12.03 voisikohan tuosta tehdä sellaisen version joka vain lähettää tietyn tekstarin Himbe 17:48 9.1.05 Maksaaks toi mitää? Himbe 17:50 9.1.05 Ois muuten kyl aika hieno jos sais lähetettyy ilmasii tekstareit... DigiBoxi 08:37 27.3.08 Nii joo muuten ihan kiva, mutta mihin töi mäiskästään? Tyylii... Voiko ton liittää esim. gmailiin mitä kautta? DigiBoxi 08:48 27.3.08 DigiBoxi kirjoitti: Nii joo muuten ihan kiva, mutta mihin töi mäiskästään? Tyylii... Voiko ton liittää esim. gmailiin mitä kautta? Ahh tuol oliki toi: "Pistä tämä vaikka jylläämään crontabiin."... :) Mikä se on? :P |
![]() Haku
|