2017-02-23 5 views
2

私はUNIXの1行を読み込んで電子メールを削除しようとしています(C++関数から1行を呼び出したいからです)。SMTPメールを1行で読む

私はこれを行う場合:

/bin/echo -ne "USER [email protected]\nPASS fred\nLIST\nRETR 1\nQUIT" | /usr/bin/nc -i 1 mail.site 110 

を...それは、メールの内容を返し、正常に動作します。

私の問題は、削除ビットである - 私はそれを読んだ後にメールを削除する必要がありますが、何らかの理由で、以下のコマンドが機能していません。

/bin/echo -ne "USER [email protected]\nPASS fred\nLIST\nDELE 1\nQUIT" | /usr/bin/nc -i 1 mail.site 110 

出力は次のとおりです。

+OK Dovecot ready. 
+OK 
+OK Logged in. 
+OK 2 messages: 
1 3913 
2 3925 
. 
+OK Marked to be deleted. 

... LISTコマンドを繰り返しても、両方のメールが表示されます。

私がtelnetして対話的に行いますが、1行ではない場合、DELEコマンドはうまく動作します。

アイデア?

+0

問題はありませんが、正しい行末シーケンスはCRLF( '" \ r \ n "')です。 –

答えて

1

それだけではありませんか?あなたは質問をしてから2分後に答えを見つけます...

私はちょうどQUITコマンドの後に余分な '\ n'が必要でした。実際に削除を実行するためにメールをトリガーします。ドー!