2014-05-15 28 views
7

Tôi đang sử dụng MailKit (https://github.com/jstedfast/MailKit) để kết nối với ứng dụng google qua imap, làm thế nào tôi có thể xóa một tin nhắn đơn? (Tôi ổn khi chuyển nó vào thùng rác, chỉ cần xóa nó ra khỏi hộp thư đến.MailKit Xóa tin nhắn đơn từ gmail

Cho đến giờ tôi đã kết nối, tải xuống, phân tích liên kết từ các nội dung thư. Tôi chỉ cần hành động cuối cùng này để có những gì tôi cần .!

Cảm ơn

+0

Mặc dù bạn chỉ cần tải xuống một thư, tôi có một ví dụ MailKit hoàn toàn hoạt động về xóa thư hàng loạt [tại đây] (https://github.com/arthurspa/ DeleteEmailMessages). Để xóa một tin nhắn đơn là tương tự. –

Trả lời

14

để xóa một tin nhắn từ một thư mục trên máy chủ IMAP, đây là tất cả các bạn cần làm:

client.Inbox.AddFlags (new int[] { index }, MessageFlags.Deleted); 

hoặc

client.Inbox.AddFlags (new UniqueId[] { uid }, MessageFlags.Deleted); 

Bây giờ thư được đánh dấu là \ Đã xóa trên máy chủ.

Sau đó bạn có thể tẩy các thư mục của tất cả các mục đã xóa bằng cách gọi:

client.Inbox.Expunge(); 

Nếu bạn đang sử dụng UID thay vì chỉ số và máy chủ IMAP hỗ trợ phần mở rộng UIDPLUS (kiểm tra client.Capabilities), bạn có thể chỉ xóa một tập hợp các thư đã chọn như thế này:

if (client.Capabilities.HasFlag (ImapCapabilities.UidPlus)) 
    client.Inbox.Expunge (new UniqueId[] { uid }); 
Các vấn đề liên quan