在一行中查找SMTP邮件

时间:2017-02-23 09:44:59

标签: c++ unix smtp

我正试图让一行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命令正常工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

不是这样吗?你问这个问题,然后2分钟后,你找到答案......

我在QUIT命令后只需要一个额外的'\ n'。触发邮件实际执行删除。卫生署!