目的
curlコマンドでimap接続
環境
OS:CentOS7
curlのバージョン:curl 7.64.0
やった事
コマンド
curl -u "user:password" --url "imap://imap.example.com/INBOX" -v -X "SEARCH ALL"
結果
一部抜粋 ~ログイン後~ < A004 OK [READ-WRITE] Select completed (0.007 + 0.000 + 0.007 secs). > A005 SEARCH < A005 BAD Error in IMAP command SEARCH: Missing search parameters (0.001 + 0.000 secs). < * BYE Logging out < A006 OK Logout completed (0.001 + 0.000 secs). * Closing connection 0 curl: (21) Quote command returned error * Could not resolve host: ALL * Closing connection 1 curl: (6) Could not resolve host: ALL
という感じで、"SEARCH ALL" の前半だけがコマンドとして入力され、ALL
がURLと認識されてしまいます。
他にも試したコマンド
とにかくエスケープしてみた
-X "SEARCH ALL" -X 'SEARCH ALL' -X SEARCH\ ALL -X 'SEARCH\ ALL' -X 'SEARCH\ ALL' -X \'SEARCH\ ALL\' -X 'SEARCH\sALL' -X 'SEARCH\sALL' -X 'SEARCH' -X 'ALL' -X 'SEARCH[[:blank:]]ALL'
いずれもダメでした。
また--urlオプションと順番を入れ替えたり、--urlオプションを消したりしてもダメでした。
curl -u "user:password" -v -X "SEARCH ALL" imap://imap.example.com/INBOX
ネットで検索しても、特にエスケープ等はしていないように見えます。
一応$IFSを別の文字に置き換えてもダメでした。
引数を変数に入れてもダメでした。
もはやbashの問題ではなく、curlコマンドの仕様のように見えますが、
そうなると世間の人がなぜ出来ているのかわかりません。
何か解決法がありますか?
回答1件
あなたの回答
tips
プレビュー