我正试图让一行UNIX读取然后删除一封电子邮件(因为我想从C ++函数中调用一行)。
如果我这样做:
/bin/echo -ne "USER test@mail.co.uk\nPASS fred\nLIST\nRETR 1\nQUIT" | /usr/bin/nc -i 1 mail.site 110
...它工作正常,返回邮件内容。
我的问题是删除位 - 我必须在阅读后删除邮件,但由于某种原因,下面的命令无效:
/bin/echo -ne "USER test@mail.co.uk\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 in并以交互方式执行但不是从一行执行,DELE命令正常工作。
有什么想法吗?
答案 0 :(得分:1)
不是这样吗?你问这个问题,然后2分钟后,你找到答案......
我在QUIT命令后只需要一个额外的'\ n'。触发邮件实际执行删除。卫生署!