expectでPOP3のメール取得と削除をしようとしているのですが、うまく動きません。
取得は出来ているようなのですが、ログが遅れて出てくるのか
deleの所に被ったりOKが後で纏めて出てきたりなどで、出力結果がうまく見れません。
また削除についてはOKが出てるように見えるのですが、1通も消えてませんでした。
(telnetで入って「dele 1」とやったら当然消えました)
また「log_user 0」にしているにもかかわらず、標準出力にメールの内容が漏れ出します。
何がいけないのでしょうか。
また改善するにはどうしたらいいでしょうか。
※間のnoopは特に意味はないです。
expect
1#!/bin/expect -f 2 3set timeout -1 4spawn $env(SHELL) 5match_max 100000 6 7expect -exact "$ " 8send -- "telnet pop.example.com 110\r" 9expect -exact "telnet pop.example.com 110\r" 10 11send -- "user test@example.com\r" 12expect -exact "+OK" 13 14send -- "pass password\r" 15expect -exact "+OK" 16 17send -- "list\r" 18expect -re "\r\.$" 19 20log_user 0 21 22set i 1 23while { $i <= 100 } { 24 send_user "retr $i\r" 25 send -- "retr $i\r" 26 expect -re "\r\.$" 27 send_user "==retr== $i ==\r" 28 incr i 1 29} 30 31log_user 1 32send_user "noop\r" 33send -- "noop\r" 34expect -exact "+OK" 35 36sleep 3 37set i 1 38while { $i <= 100 } { 39 #send_user "dele $i\r" 40 send -- "dele $i\r" 41 expect -exact "+OK" 42 send_user "==dele== $i ==\r" 43 incr i 1 44} 45 46send -- "quit\r" 47expect -exact "+OK" 48 49exit 50expect eof
以上、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。