Có phương pháp tích hợp nào để truy cập máy chủ Imap (với SSL) trong C # hay có thư viện miễn phí tốt không?
Có phương pháp tích hợp nào để truy cập máy chủ Imap (với SSL) trong C # hay có thư viện miễn phí tốt không?
Câu trả lời:
Tôi đã tìm kiếm giải pháp IMAP trong một thời gian và sau khi thử một vài giải pháp, tôi sẽ sử dụng AE.Net.Mail .
Bạn có thể tải xuống mã bằng cách chuyển đến tab Mã và nhấp vào biểu tượng 'Tải xuống' nhỏ. Vì tác giả không cung cấp bất kỳ bản tải xuống được tạo sẵn nào nên bạn phải tự biên dịch. (Tôi tin rằng bạn có thể lấy nó thông qua NuGet). Không còn .dll trong bin / thư mục.
Không có tài liệu nào mà tôi cho là nhược điểm, nhưng tôi đã có thể khắc phục điều này bằng cách xem mã nguồn (đúng là mã nguồn mở!) Và sử dụng Intellisense. Đoạn mã dưới đây kết nối cụ thể với máy chủ IMAP của Gmail:
// Connect to the IMAP server. The 'true' parameter specifies to use SSL
// which is important (for Gmail at least)
ImapClient ic = new ImapClient("imap.gmail.com", "name@gmail.com", "pass",
ImapClient.AuthMethods.Login, 993, true);
// Select a mailbox. Case-insensitive
ic.SelectMailbox("INBOX");
Console.WriteLine(ic.GetMessageCount());
// Get the first *11* messages. 0 is the first message;
// and it also includes the 10th message, which is really the eleventh ;)
// MailMessage represents, well, a message in your mailbox
MailMessage[] mm = ic.GetMessages(0, 10);
foreach (MailMessage m in mm)
{
Console.WriteLine(m.Subject);
}
// Probably wiser to use a using statement
ic.Dispose();
Đảm bảo rằng bạn xem trang Github để biết phiên bản mới nhất và một số ví dụ mã tốt hơn.
Với hy vọng rằng nó sẽ hữu ích cho một số người, bạn có thể muốn xem bài viết của tôi về nó:
Mặc dù có một số thư viện IMAP tốt và được tài liệu hóa tốt cho .NET có sẵn, nhưng không có thư viện nào miễn phí cho cá nhân, chứ chưa nói đến việc sử dụng thương mại ... và tôi không hài lòng với các lựa chọn thay thế miễn phí hầu như bị bỏ rơi mà tôi tìm thấy.
S22.Imap hỗ trợ thông báo IMAP IDLE cũng như SSL và tìm nạp một phần tin nhắn. Tôi đã nỗ lực tạo ra tài liệu và cập nhật nó, bởi vì với các dự án tôi tìm thấy, tài liệu thường thưa thớt hoặc không tồn tại.
Vui lòng dùng thử và cho tôi biết nếu bạn gặp bất kỳ vấn đề nào!
Không có .NET framework hỗ trợ IMAP. Bạn sẽ cần sử dụng một số thành phần của bên thứ ba.
Hãy thử https://www.limilabs.com/mail , nó rất phải chăng và dễ sử dụng, nó cũng hỗ trợ SSL:
using(Imap imap = new Imap())
{
imap.ConnectSSL("imap.company.com");
imap.Login("user", "password");
imap.SelectInbox();
List<long> uids = imap.SearchFlag(Flag.Unseen);
foreach (long uid in uids)
{
string eml = imap.GetMessageByUID(uid);
IMail message = new MailBuilder()
.CreateFromEml(eml);
Console.WriteLine(message.Subject);
Console.WriteLine(message.TextDataString);
}
imap.Close(true);
}
Xin lưu ý rằng đây là một sản phẩm thương mại mà tôi đã tạo ra.
Bạn có thể tải về tại đây: https://www.limilabs.com/mail .
MailSystem.NET chứa tất cả nhu cầu của bạn về IMAP4. Nó miễn phí và mã nguồn mở.
(Tôi đang tham gia vào dự án)
Hãy thử sử dụng thư viện: https://imapx.codeplex.com/
Thư viện đó miễn phí, mã nguồn mở và có ví dụ tại đây: https://imapx.codeplex.com/wikipage?title=Sample%20code%20for%20get%20messages%20from%20your%20inbox
Tôi chưa tự mình thử, nhưng đây là thư viện miễn phí mà bạn có thể thử (tôi không chắc lắm về phần SSL trên thư viện này):
http://www.codeproject.com/KB/IP/imaplibrary.aspx
Ngoài ra, có xemail, có các tham số cho SSL:
http://xemail-net.sourceforge.net/
[EDIT] Nếu bạn (hoặc khách hàng) có đủ tiền cho một ứng dụng thư khách chuyên nghiệp, thì chuỗi này có một số khuyến nghị tốt:
Đề xuất cho một thành phần .NET để truy cập hộp thư đến email