使用curl在imap上删除消息

时间:2018-10-26 18:17:47

标签: curl imap gmail-imap

我在一个项目中,我需要阅读imap服务器上收件箱中的消息,进行处理,然后从收件箱中删除电子邮件。

我可以成功获取电子邮件,没有任何问题,我遇到的问题是删除。

我可以使用以下方法获取电子邮件:

curl --url "imaps://imap.gmail.com:993/inbox;UID=1" --user "user:password"

这对于获取电子邮件来说非常正常,我成功地处理了它而没有问题,因此现在当我尝试删除它时,我使用以下命令:

curl --url "imaps://imap.gmail.com:993/inbox;UID=1" --user "user:password" -X 'UID STORE 1 +Flags \Deleted'

但是我得到以下答复:

curl: (21) Quote command returned error
curl: (6) Could not resolve host: STORE
curl: (6) Could not resolve host: 1
curl: (6) Could not resolve host: +Flags
curl: (6) Could not resolve host: \Deleted'

2 个答案:

答案 0 :(得分:4)

我终于找到了答案,似乎gmail与其他所有示例都略有不同,但是找到了一个可行的示例:

以下作品:

  curl --url“ imaps://imap.gmail.com:993 / Inbox; UID = 1” --user“ user:password” -X“ STORE 1 + Flags \ Deleted”
 

之后

  curl --url“ imaps://imap.gmail.com:993 / Inbox; UID = 1” --user“ user:password” -X“ EXPUNGE”
 

答案 1 :(得分:1)

我想知道您是否应该使用双引号而不是单引号?

curl --url "imaps://imap.gmail.com:993/inbox;UID=1" --user "user:password" -X 'UID STORE 1 +Flags \Deleted'

应该是:

curl --url "imaps://imap.gmail.com:993/inbox;UID=1" --user "user:password" -X "UID STORE 1 +Flags \Deleted"

好像“ STORE”等正被curl解释为试图作为URL的单独参数。