सक्रिय टीसीएल में उम्मीद स्क्रिप्ट का उपयोग करने की कोशिश कर रहा हैहर ईमेल को भेजने के लिए विंडोज को चलाया जाता है। नीचे मेरे पास कोड है, लेकिन नीचे एक त्रुटि संदेश प्रदर्शित है और समस्या से बचने के तरीके पर कोई मदद की सराहना करेगा। धन्यवाद।
#!/usr/bin/expect
#
exec tclsh "$0" ${1+"$@"}
package require Expect
spawn plink -telnet IP PORT
send "ehlo *******.comr";
send "AUTH LOGINr";
expect "334 VXNlcm5hbWU6" sleep .1;
send "*************r";
sleep .1;
expect "334 UGFzc3dvcmQ6r"
send "********r";
sleep .1;
expect "235 Authentication succeededr";
send "MAIL from:******@*******.comr";
expect "250 OKr"
send "RCPT to:********@*********.comr";
expect "250 Acceptedr"
send "DATAr";
send "!!!TEXT HERE!!!r";
send ".r";
send "QUITr";
exit
एक त्रुटि हो रही है:
Error in startup script
send: spawn id exp2 not open
while executing
"send "MAIL from:*****@******.comr""
(file "***.tcl" line 16)
यहाँ क्या गलत है पर कोई विचार ????
उत्तर:
जवाब के लिए 5 № 1मुझे लगता है कि क्योंकि दूरस्थ होस्ट ने कनेक्शन बंद कर दिया और बाहर निकल गया।
क्यों डॉन टी "आप का उपयोग करें smtp
tcllib का पैकेज? उम्मीद के साथ पलक पर कच्चे smtp बात करने की तुलना में इसका उपयोग करना बहुत आसान है।
संक्षेप में: आप टेलनेट के लिए पलक का उपयोग करते हैं, एक ऐसी चीज जो आप टीईसीएल के साथ कर सकते हैं socket
पहले से ही है। आप smtp की बात करते हैं, कुछ ऐसा जहां बहुत सारे लिबास मौजूद हैं जो इसे बहुत आसान बनाता है।
विशुद्ध tcl के साथ मेल भेजने का उदाहरण:
package require mime
package require smtp
set tok [::mime::initialize
-canonical text/plain
-header {From sender@address.example.com}
-string {Some Text Here}]
::smtp::sendmessage $tok
-servers IP
-ports PORT
-username ******
-password ******
-recipients recipient@address.example.com
-originator sender@address.example.com
::mime::finalize $tok