Apakah ada metode built-in untuk mengakses server Imap (dengan SSL) di C # atau apakah ada perpustakaan gratis yang bagus?
Apakah ada metode built-in untuk mengakses server Imap (dengan SSL) di C # atau apakah ada perpustakaan gratis yang bagus?
Jawaban:
Saya telah mencari solusi IMAP untuk beberapa waktu sekarang, dan setelah mencoba beberapa, saya menggunakan AE.Net.Mail .
Anda dapat mengunduh kode dengan membuka tab Kode dan mengeklik ikon 'Unduh' kecil. Karena penulis tidak menyediakan unduhan yang sudah dibuat sebelumnya, Anda harus mengkompilasinya sendiri. (Saya yakin Anda bisa mendapatkannya melalui NuGet). Tidak ada lagi .dll di tempat sampah / folder.
Tidak ada dokumentasi, yang saya anggap sebagai kerugian, tetapi saya dapat menyiapkannya dengan melihat kode sumbernya (yay untuk open source!) Dan menggunakan Intellisense. Kode di bawah ini secara khusus menghubungkan ke server IMAP 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();
Pastikan Anda membayar halaman Github untuk versi terbaru dan beberapa contoh kode yang lebih baik.
Dengan harapan dapat bermanfaat bagi sebagian orang, Anda mungkin ingin melihat pengalaman saya:
Meskipun ada beberapa perpustakaan IMAP yang baik dan terdokumentasi dengan baik untuk .NET tersedia, tidak satupun dari mereka yang gratis untuk penggunaan pribadi, apalagi komersial ... dan saya tidak begitu puas dengan sebagian besar alternatif gratis yang saya temukan.
S22.Imap mendukung notifikasi IMAP IDLE serta SSL dan pengambilan sebagian pesan. Saya telah berusaha keras untuk menghasilkan dokumentasi dan menjaganya tetap mutakhir, karena dengan proyek yang saya temukan, dokumentasi sering kali jarang atau tidak ada.
Jangan ragu untuk mencobanya dan beri tahu saya jika Anda mengalami masalah apa pun!
Tidak ada dukungan framework .NET untuk IMAP. Anda harus menggunakan beberapa komponen pihak ketiga.
Coba https://www.limilabs.com/mail , sangat terjangkau dan mudah digunakan, juga mendukung 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);
}
Harap dicatat bahwa ini adalah produk komersial yang saya buat.
Anda dapat mendownloadnya di sini: https://www.limilabs.com/mail .
MailSystem.NET berisi semua kebutuhan Anda akan IMAP4. Gratis & open source.
(Saya terlibat dalam proyek)
Coba gunakan perpustakaan: https://imapx.codeplex.com/
Library itu gratis, open source, dan memiliki contoh di ini: https://imapx.codeplex.com/wikipage?title=Sample%20code%20for%20get%20messages%20from%20your%20inbox
Saya belum mencobanya sendiri, tetapi ini adalah pustaka gratis yang dapat Anda coba (saya tidak begitu yakin tentang bagian SSL yang satu ini):
http://www.codeproject.com/KB/IP/imaplibrary.aspx
Juga, ada xemail, yang memiliki parameter untuk SSL:
http://xemail-net.sourceforge.net/
[EDIT] Jika Anda (atau klien) punya uang untuk klien email profesional, utas ini memiliki beberapa rekomendasi bagus:
Rekomendasi untuk komponen .NET untuk mengakses kotak masuk email