มีวิธีการในตัวในการเข้าถึงเซิร์ฟเวอร์ Imap (ด้วย SSL) ใน C # หรือมีไลบรารีฟรีที่ดีหรือไม่?
มีวิธีการในตัวในการเข้าถึงเซิร์ฟเวอร์ Imap (ด้วย SSL) ใน C # หรือมีไลบรารีฟรีที่ดีหรือไม่?
คำตอบ:
ฉันได้รับการค้นหาวิธีการแก้ปัญหา IMAP สำหรับขณะนี้และหลังจากที่พยายามค่อนข้างน้อยฉันจะมีAE.Net.Mail
คุณสามารถดาวน์โหลดโค้ดได้โดยไปที่แท็บ Code แล้วคลิกไอคอน 'ดาวน์โหลด' ขนาดเล็ก เนื่องจากผู้เขียนไม่มีการดาวน์โหลดที่สร้างไว้ล่วงหน้าใด ๆ คุณจึงต้องรวบรวมด้วยตนเอง (ฉันเชื่อว่าคุณสามารถผ่าน NuGet ได้) ไม่มี. dll ใน bin / โฟลเดอร์อีกต่อไป
ไม่มีเอกสารประกอบซึ่งฉันคิดว่าเป็นข้อเสีย แต่ฉันสามารถแส้ได้โดยดูที่ซอร์สโค้ด (ใช่สำหรับโอเพ่นซอร์ส!) และใช้ Intellisense รหัสด้านล่างนี้เชื่อมต่อกับเซิร์ฟเวอร์ 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();
ตรวจสอบให้แน่ใจว่าคุณได้ชำระเงินในหน้าGithubสำหรับเวอร์ชันใหม่ล่าสุดและตัวอย่างโค้ดที่ดีกว่า
ด้วยความหวังว่าจะเป็นประโยชน์กับบางคนคุณอาจต้องการตรวจสอบการเดินทางของฉันที่:
ในขณะที่มีไลบรารี IMAP ที่ดีและมีเอกสารอย่างดีสำหรับ. NET ให้ใช้งาน แต่ไม่มีฟรีสำหรับการใช้งานส่วนตัวนับประสาอะไรกับการใช้งานเชิงพาณิชย์ ... และฉันก็ไม่ใช่ทุกคนที่พอใจกับทางเลือกฟรีที่ถูกทิ้งร้างส่วนใหญ่ที่ฉันพบ
S22.Imap รองรับการแจ้งเตือน IMAP IDLE ตลอดจน SSL และการดึงข้อความบางส่วน ฉันได้ใช้ความพยายามในการจัดทำเอกสารและปรับปรุงให้ทันสมัยอยู่เสมอเนื่องจากจากโครงการที่ฉันพบเอกสารมักจะเบาบางหรือไม่มีอยู่จริง
อย่าลังเลที่จะทดลองใช้และแจ้งให้เราทราบหากคุณพบปัญหาใด ๆ !
ไม่มีการสนับสนุน. NET framework สำหรับ IMAP คุณจะต้องใช้องค์ประกอบของบุคคลที่สาม
ลองใช้https://www.limilabs.com/mailราคาไม่แพงและใช้งานง่ายนอกจากนี้ยังรองรับ 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);
}
โปรดทราบว่านี่เป็นผลิตภัณฑ์เชิงพาณิชย์ที่ฉันสร้างขึ้น
MailSystem.NETมีทุกความต้องการของคุณสำหรับ IMAP4 ฟรีและโอเพ่นซอร์ส
(ฉันมีส่วนร่วมในโครงการ)
ลองใช้ห้องสมุด: https://imapx.codeplex.com/
ห้องสมุดนั้นฟรีโอเพ่นซอร์สและมีตัวอย่างที่ https://imapx.codeplex.com/wikipage?title=Sample%20code%20for%20get%20messages%20from%20your%20inbox
ฉันไม่ได้ลองด้วยตัวเอง แต่นี่เป็นห้องสมุดฟรีที่คุณสามารถลองได้ (ฉันไม่แน่ใจเกี่ยวกับส่วน SSL ในส่วนนี้):
http://www.codeproject.com/KB/IP/imaplibrary.aspx
นอกจากนี้ยังมี xemail ซึ่งมีพารามิเตอร์สำหรับ SSL:
http://xemail-net.sourceforge.net/
[แก้ไข] หากคุณ (หรือลูกค้า) มีเงินสำหรับโปรแกรมรับส่งเมลมืออาชีพชุดข้อความนี้มีคำแนะนำที่ดี: