افتح مكتبة .NET المصدر لـ IMAP و POP3 و SMTP

مكتبة مجانية C # .NET لإنشاء الرسائل مع المرفقات ، تشفير / فك تشفير الرسائل باستخدام PGP / MIME. 

MailKit هي مكتبة مفتوحة المصدر .NET لـ IMAP و POP3 و SMTP. إنها مكتبة عميل بريد عبر الأنظمة الأساسية مبنية على قمة MimeKit. يهدف المشروع إلى توفير تطبيقات عميل SMTP و POP3 و IMAP قوية وكاملة الميزات ومتوافقة مع RFC.

تدعم واجهة برمجة التطبيقات العديد من الميزات المهمة المتعلقة بمصادقة SASL ، ودعم الوكيل ، وعميل SMTP ، وعميل POP3 ، وعميل IMAP4 ، والفرز من جانب العميل ، وترابط الرسائل.

Previous Next

الشروع في استخدام MailKit

أسهل طريقة لتثبيت MailKit هي عبر NuGet. لاستخدامه من وحدة تحكم مدير الحزم في Visual Studio ، يرجى إدخال الأمر التالي.

تثبيت Mailkit عبر NuGet

Install-Package MailKit  

قم بتثبيت Mailkit عبر GitHub 

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

إنشاء رسائل جديدة عبر .NET

تتيح مكتبة MailKit Open Source API لمطوري البرامج إنشاء رسائل MIME باستخدام بعض الأوامر البسيطة. TextPart هو جزء MIME للعقدة الطرفية مع نوع وسائط نصية. تحدد الوسيطة الأولى لمنشئ TextPart النوع الفرعي للوسائط ، في هذه الحالة ، عادي. نوع وسائط فرعي آخر ربما تكون على دراية به هو نوع HTML الفرعي. أسهل طريقة للحصول على كل من محتوى السلسلة لجزء MIME وتعيينه هي خاصية Text.

مكتبة MailKit مفتوحة المصدر API تمكن مطوري البرامج من إنشاء رسائل MIME بأوامر بسيطة قليلة. TextPart هو جزء MIME للعقدة الطرفية بنوع وسائط نصية. تحدد الوسيطة الأولى لمنشئ TextPart النوع الفرعي للوسائط ، في هذه الحالة ، عادي. نوع وسائط فرعي آخر ربما تكون على دراية به هو نوع HTML الفرعي. أسهل طريقة للحصول على محتوى السلسلة وتعيينه لجزء MIME هي خاصية النص.

إنشاء وإرسال الرسائل مجانًا باستخدام 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 ميزات لإنشاء رسالة تحتوي على مرفقات داخل تطبيقات .NET. المرفقات هي مثل أي MimePart أخرى. يتمثل الاختلاف الرئيسي في أنها تحتوي على قيمة الاحتفاظ برأس ترتيب المحتوى للمرفق بدلاً من العنوان المضمّن أو عدم وجود رأس Content-Disposition على الإطلاق. لإرسال كل من نص / 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;
  }
}
 عربي