2012-04-22 18 views
8

Tôi nhận thấy rằng libcurl hỗ trợ IMAP, nhưng không tìm thấy bất kỳ điều gì trong tài liệu và ví dụ http://curl.haxx.se/libcurl/c/imap.html rất kém. Có ai biết làm thế nào để sử dụng giao thức này trong lib này, làm thế nào để tải thư? Trânlibcurl và imap

+0

Các phần IMAP thiếu tài liệu cụ thể, vui lòng tham gia với chúng tôi trong dự án curl và giúp chúng tôi cải thiện điều này. –

Trả lời

3

Lệnh sau chọn hộp thư và các vấn đề FETCH 1 BODY[TEXT] Gmail của tôi để có được đầu tiên (cũ) thông điệp:

curl -v 'imaps://creaktive+gmail.com:[email protected]:993/Inbox' 

Tôi không hoàn toàn chắc chắn nếu có một cách dễ dàng để thực hiện các nhiệm vụ khác, như liệt kê các hộp thư hoặc chọn thư mới nhất.

10

Có một email tốt trên mailing list mô tả cú pháp IMAP ở đây: http://curl.haxx.se/mail/lib-2013-03/0104.html

Đây là phần có liên quan: imap

--url: //mail.example.com/INBOX/ ; UID = 1 - Chọn hộp thư đến của người dùng và tìm nạp thư 1

- url imap: //mail.example.com/INBOX; UIDVALIDITY = 50 /; UID = 2 - Chọn hộp thư của người dùng , kiểm tra UIDVALIDITY của hộp thư là 50 và tìm nạp thư 2 nếu nó là

imap --url: //mail.example.com/INBOX/; UID = 3 /; PHẦN = TEXT - Chọn hộp thư của người dùng và lấy thông điệp 3 với chỉ phần nội dung tin nhắn

Ngoài việc truy xuất email, bạn cũng có thể chuyển một email đến máy chủ. Điều này đạt được thông qua lệnh IMAPS APPEND và chỉ đơn giản là sử dụng cơ chế hiện có curl của để tải dữ liệu đến một máy chủ:

--url imap: //mail.example.com/OUTBOX -T email.txt

  • Các lệnh khác có thể được phát hành, chẳng hạn như: DANH SÁCH để liệt kê các thư mục con của hộp thư ; EXAMINE để xem những email nào tồn tại trong hộp thư; TẠO, RENAME và XÓA để thao tác các thư mục con, STORE để thay đổi các thuộc tính của email và các thư mục khác. Một số ví dụ như sau:

imap --url: //mail.example.com - Thực hiện một danh sách thư mục cấp cao nhất

--url imap: //mail.example.com/INBOX - thực hiện một danh sách thư mục vào hộp thư của người dùng

imap --url: //mail.example.com -X "KIỂM TRA iNBOX" - thực hiện một danh sách tin nhắn vào hộp thư của người dùng

--url imap: // mail.example.com/INBOX -X "TẠO Thư mục con" - Tạo một thư mục con trong hộp thư của người dùng

imap --url: // mail.example.com/INBOX -X "ĐỔI TÊN Sub-thư mục My-thư mục" - Đổi tên các thư mục con trong hộp thư đến của người dùng để tôi thư mục

--url imap: // mail.example.com/INBOX -X "Thư mục con DELETE" - Xóa thư mục con trong hộp thư đến của người dùng

--url imap: // mail.example.com/INBOX -X "STORE 1 + Flags \ Deleted" - Xóa nhắn 1 từ hộp thư đến của người dùng

--url imap: // mail.example.com/INBOX -X "CỬA HÀNG 1 + Flags \ Nhìn" - Marks nhắn 1 trong hộp thư đến của người dùng như đọc

Cũng như sử dụng cú pháp URL để tìm nạp thư, cũng có thể sử dụng cơ chế yêu cầu tùy chỉnh để thực hiện các thao tác FETCH tùy chỉnh. Ví dụ

--url imap: // mail.example.com/INBOX -X "'FETCH 1 BODY [TEXT]" sẽ thực hiện hoạt động tương tự như

imap --url: // mail.example.com/INBOX/;UID=1/;SECTION=TEXT