โอเพ่นซอร์ส .NET Library สำหรับ IMAP, POP3 & SMTP

ไลบรารี C# .NET ฟรีสำหรับสร้างข้อความพร้อมไฟล์แนบ เข้ารหัส/ถอดรหัสข้อความด้วย PGP/MIME 

MailKit เป็นไลบรารีโอเพ่นซอร์ส .NET สำหรับ IMAP, POP3 และ SMTP เป็นไลบรารีไคลเอนต์เมลข้ามแพลตฟอร์มที่สร้างขึ้นบน MimeKit โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อมอบการใช้งานไคลเอ็นต์ SMTP, POP3 และ IMAP ที่แข็งแกร่ง มีคุณสมบัติครบถ้วน และสอดคล้องกับ RFC

API รองรับคุณสมบัติที่สำคัญหลายประการที่เกี่ยวข้องกับการตรวจสอบสิทธิ์ SASL, การสนับสนุนพร็อกซี, ไคลเอนต์ SMTP, ไคลเอนต์ POP3, ไคลเอนต์ IMAP4, การเรียงลำดับฝั่งไคลเอ็นต์และเธรดของข้อความ

Previous Next

เริ่มต้นใช้งาน MailKit

วิธีที่ง่ายที่สุดในการติดตั้ง MailKit คือผ่าน NuGet หากต้องการใช้งานจาก Package Manager Console ของ Visual Studio โปรดป้อนคำสั่งต่อไปนี้

ติดตั้ง Mailkit ผ่าน NuGet

Install-Package MailKit  

ติดตั้ง Mailkit ผ่าน GitHub 

git clone --recursive https://github.com/jstedfast/MailKit.git 

สร้างข้อความใหม่ผ่าน .NET

ไลบรารี Open Source API MailKit ช่วยให้นักพัฒนาซอฟต์แวร์สร้างข้อความ MIME ด้วยคำสั่งง่ายๆ ไม่กี่คำสั่ง TextPart คือส่วน MIME ของโหนดปลายสุดที่มีประเภทสื่อข้อความ อาร์กิวเมนต์แรกของคอนสตรัคเตอร์ TextPart ระบุชนิดย่อยสื่อ ในกรณีนี้ ธรรมดา ประเภทย่อยของสื่ออื่นที่คุณอาจคุ้นเคยคือประเภทย่อย HTML วิธีที่ง่ายที่สุดในการรับและตั้งค่าทั้งเนื้อหาสตริงของส่วน MIME คือคุณสมบัติ Text

ไลบรารี Open Source API MailKit ช่วยให้นักพัฒนาซอฟต์แวร์สร้างข้อความ MIME ด้วยคำสั่งง่ายๆ ไม่กี่คำสั่ง TextPart คือส่วน MIME ของโหนดปลายสุดที่มีประเภทสื่อข้อความ อาร์กิวเมนต์แรกของคอนสตรัคเตอร์ TextPart ระบุชนิดย่อยสื่อ ในกรณีนี้ ธรรมดา ประเภทย่อยของสื่ออื่นที่คุณอาจคุ้นเคยคือประเภทย่อย HTML วิธีที่ง่ายที่สุดในการรับและตั้งค่าเนื้อหาสตริงของส่วน MIME คือคุณสมบัติ Text

สร้างและส่งข้อความฟรีโดยใช้ C #

var message = new MimeMessage();
message.From.Add(new MailboxAddress("fred", "This email address is being protected from spam-bots. You need JavaScript enabled to view it."));
message.To.Add(new MailboxAddress("frans", "This email address is being protected from spam-bots. You need JavaScript enabled to view it."));
message.Subject = "FileFormat ";
message.Body = new TextPart("plain")
{
  Text = "File Format Developer Guide"
};
using (var client = new SmtpClient())
{
  // For demo-purposes,
  client.ServerCertificateValidationCallback = (s, c, h, e) => true;
  client.Connect("smtp.test.com", 587, false);
  // Note: only needed if the SMTP server requires authentication
  client.Authenticate("frans", "password");
  client.Send(message);
  client.Disconnect(true);
}                  

สร้างข้อความพร้อมไฟล์แนบโดยใช้ .NET API

MailKit API มีคุณสมบัติสำหรับการสร้างข้อความพร้อมไฟล์แนบภายในแอปพลิเคชัน .NET สิ่งที่แนบมานั้นเหมือนกับ MimePart อื่น ๆ ความแตกต่างหลัก ๆ คือ มีส่วนหัวการจัดการเนื้อหาที่ถือค่าของสิ่งที่แนบ แทนที่จะเป็นแบบอินไลน์หรือไม่มีส่วนหัวการจัดการเนื้อหาเลย ในการส่งข้อความทั้งแบบข้อความ/HTML และแบบข้อความ/แบบธรรมดา คุณต้องสร้าง TextPart สำหรับแต่ละส่วนแล้วเพิ่มลงในหลายส่วน/ทางเลือก

สร้างข้อความพร้อมไฟล์แนบผ่าน C#


var message = new MimeMessage ();
message.From.Add (new MailboxAddress ("Joey", "joey@friends.com"));
message.To.Add (new MailboxAddress ("Alice", "alice@wonderland.com"));
message.Subject = "How you doin?";
// create our message text, just like before (except don't set it as the message.Body)
var body = new TextPart ("plain") {
  Text = @"Hey Alice,
What are you up to this weekend? Monica is throwing one of her parties on
Saturday and I was hoping you could make it.
Will you be my +1?
-- Joey
"
};
// create an image attachment for the file located at path
var attachment = new MimePart ("image", "gif") {
  Content = new MimeContent (File.OpenRead (path), ContentEncoding.Default),
  ContentDisposition = new ContentDisposition (ContentDisposition.Attachment),
  ContentTransferEncoding = ContentEncoding.Base64,
  FileName = Path.GetFileName (path)
};
// now create the multipart/mixed container to hold the message text and the
// image attachment
var multipart = new Multipart ("mixed");
multipart.Add (body);
multipart.Add (attachment);
// now set the multipart/mixed as the message body
message.Body = multipart;
 

เข้ารหัส/ถอดรหัสข้อความด้วย PGP/MIME

ไลบรารี MailKit มีคุณสมบัติสำหรับการเข้ารหัสข้อความอีเมลด้วย PGP/MIME ภายในแอปพลิเคชัน .NET PGP/MIME ใช้ส่วน MIME ที่มีประเภท mime แบบหลายส่วน/เข้ารหัสเพื่อห่อหุ้มข้อมูลที่เข้ารหัส หากคุณต้องการเข้ารหัสข้อความ เป็นวิธีที่ดีกว่าเสมอในการใช้ SecureMailboxAddress แทน MailboxAddress สำหรับผู้รับทุกคน ซึ่งจะทำให้ผู้ใช้สามารถระบุลายนิ้วมือที่ไม่ซ้ำกันของคีย์ PGP ของผู้รับแต่ละราย

การเข้ารหัสข้อความด้วย PGP/MIME ผ่าน C#


public void Encrypt (MimeMessage message)
{
  // encrypt our message body using our custom GnuPG cryptography context
  using (var ctx = new MyGnuPGContext ()) {
    // Note: this assumes that each of the recipients has a PGP key associated
    // with their email address in the user's public keyring.
    // 
    // If this is not the case, you can use SecureMailboxAddresses instead of
    // normal MailboxAddresses which would allow you to specify the fingerprint
    // of their PGP keys. You could also choose to use one of the Encrypt()
    // overloads that take a list of PgpPublicKeys.
    message.Body = MultipartEncrypted.Encrypt (ctx, message.To.Mailboxes, message.Body);
  }
}

การถอดรหัสข้อความ PGP/MIME


public MimeEntity Decrypt (MimeMessage message)
{
  if (message.Body is MultipartEncrypted) {
    // the top-level MIME part of the message is encrypted using PGP/MIME
    var encrypted = (MultipartEncrypted) entity;
    return encrypted.Decrypt ();
  } else {
    // the top-level MIME part is not encrypted
    return message.Body;
  }
}
 ไทย