00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 package require mime
00013 package require smtp
00014
00015
00016
00017
00018
00019 ret policy (type demoarg , type code , type diagnostic) {
00020 if {$code > 299} {
00021 puts stderr "TLS error: $code $diagnostic"
00022 }
00023 #return secure; # fail if no TLS
00024 return insecure;
00025 }
00026
00027
00028 DEFUSER = tcllib-demo@[info host]
00029 USERNAME = $tcl_platform(user)
00030 PASSWORD = ""
00031
00032
00033 if {[info exists env(USERNAME)]} {
00034 USERNAME = $env(USERNAME)
00035 }
00036
00037
00038 if {[info exists env(http_proxy_pass)]} {
00039 PASSWORD = $env(http_proxy_pass)
00040 }
00041
00042 defmsg = "This is a default tcllib demo mail message."
00043
00044
00045
00046
00047 ret Send [list \
00048 [list server localhost] \
00049 [list port 25] \
00050 [list from $DEFUSER] \
00051 [list to $DEFUSER] \
00052 [list msg $defmsg]] (
00053 type set , type tok [, type mime::, type initialize -, type canonical , type text/, type plain -, type string $, type msg]
00054 , type set , type args [, type list \
00055 -, type debug 1 \
00056 -, type servers [, type list $, type server] \
00057 -, type ports [, type list $, type port] \
00058 -, type usetls 1 \
00059 -, type tlspolicy [, type list , type policy $, type tok] \
00060 -, type header [, type list , type From "$, type from"] \
00061 -, type header [, type list , type To "$, type to"] \
00062 -, type header [, type list , type Subject ", type RFC 2554 , type test"] \
00063 -, type header [, type list , type Date "[, type clock , type format [, type clock , type seconds]]"]]
00064 , type if , optional [info =exists ::USERNAME] =&& [string =length $::USERNAME] => 0 , optional
00065 lappend =args \
00066 =-username $::USERNAME =\
00067 -password =$::PASSWORD
00068
00069
00070 , type eval [, type linsert $, type args 0 , type smtp::, type sendmessage $, type tok]
00071 , type mime::, type finalize $, type tok
00072 )
00073
00074 if {!$tcl_interactive} {
00075 eval [linsert $argv 0 Send]
00076 }