我注意到libcurl支持IMAP,但在文档中没有找到任何内容,例子http://curl.haxx.se/libcurl/c/imap.html非常差.有谁知道如何在这个lib中使用这个协议,如何下载邮件?问候
rab*_*exc 12
邮件列表上有一封很好的电子邮件,描述了IMAP语法:http: //curl.haxx.se/mail/lib-2013-03/0104.html
这是相关部分:
--url imap://mail.example.com/INBOX/; UID = 1 - 选择用户的收件箱并提取消息1
--url imap://mail.example.com/INBOX; UIDVALIDITY = 50 /; UID = 2 - 选择用户的收件箱,检查邮箱的UIDVALIDITY为50,如果是,则检索邮件2
--url imap://mail.example.com/INBOX/; UID = 3 /; SECTION = TEXT - 选择用户的收件箱并仅使用邮件的文本部分提取邮件3
除了检索电子邮件之外,还可以将电子邮件传输到服务器.这是通过IMAP APPEND命令实现的,只需利用curl现有的机制将数据上传到服务器:
--url imap://mail.example.com/OUTBOX -T email.txt
--url imap://mail.example.com - 执行顶级文件夹列表
--url imap://mail.example.com/INBOX - 在用户的收件箱中执行文件夹列表
--url imap://mail.example.com -X"EXAMINE INBOX" - 在用户的收件箱中执行邮件列表
--url imap:// mail.example.com/INBOX -X"CREATE子文件夹" - 在用户的收件箱中创建子文件夹
--url imap:// mail.example.com/INBOX -X"RENAME子文件夹我的文件夹" - 将用户收件箱中的子文件夹重命名为my-folder
--url imap:// mail.example.com/INBOX -X"DELETE子文件夹" - 删除用户收件箱中的子文件夹
--url imap:// mail.example.com/INBOX -X"STORE 1 + Flags\Deleted" - 从用户的收件箱中删除邮件1
--url imap:// mail.example.com/INBOX -X"STORE 1 + Flags\Seen" - 将用户收件箱中的邮件1标记为已读
除了使用URL语法来获取消息之外,还可以使用自定义请求机制来执行自定义FETCH操作.例如
--url imap:// mail.example.com/INBOX -X"'FETCH 1 BODY [TEXT]"将执行相同的操作
--url imap:// mail.example.com/INBOX/;UID=1/;SECTION=TEXT
以下命令选择我的 Gmail 收件箱并发出问题FETCH 1 BODY[TEXT]以获取第一封(最旧的)邮件:
curl -v 'imaps://creaktive+gmail.com:dxdnbndeokykvkkd@imap.gmail.com:993/Inbox'
Run Code Online (Sandbox Code Playgroud)
我不太确定是否有一种简单的方法来执行其他任务,例如列出邮箱或选择最新消息。
| 归档时间: |
|
| 查看次数: |
4810 次 |
| 最近记录: |