1. Produkter
  2.   E-post
  3.   .NET
  4.   MailKit
 
  

Open Source .NET Library för IMAP, POP3 och SMTP

Gratis C# .NET-bibliotek för att generera meddelanden med bilagor, kryptera/dekryptera meddelanden med PGP/MIME. 

MailKit är ett .NET-bibliotek med öppen källkod för IMAP, POP3 och SMTP. Det är ett plattformsoberoende e-postklientbibliotek byggt ovanpå MimeKit. Projektet syftar till att tillhandahålla en robust, fullt utrustad och RFC-kompatibel SMTP-, POP3- och IMAP-klientimplementering.

API:et stöder flera viktiga funktioner relaterade till SASL-autentisering, proxystöd, SMTP-klient, POP3-klient, IMAP4-klient, sortering på klientsidan och trådning av meddelanden.

Previous Next

Komma igång med MailKit

Det enklaste sättet att installera MailKit är via NuGet. För att använda det från Visual Studios Package Manager Console, skriv in följande kommando.

installera Mailkit via NuGet

Install-Package MailKit  

Installera Mailkit via GitHub 

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

Skapa nya meddelanden via .NET

Open Source API MailKit-biblioteket gör det möjligt för mjukvaruutvecklare att skapa MIME-meddelanden med några enkla kommandon. En TextPart är en löv-nod MIME-del med en textmediatyp. Det första argumentet till TextPart-konstruktorn anger media-undertypen, i det här fallet plain. En annan medieundertyp du förmodligen känner till är HTML-undertypen. Det enklaste sättet att få och ställa in både stränginnehållet i MIME-delen är egenskapen Text.

Open Source API MailKit-biblioteket gör det möjligt för mjukvaruutvecklare att skapa MIME-meddelanden med några enkla kommandon. En TextPart är en löv-nod MIME-del med en text media-typ. Det första argumentet till TextPart-konstruktorn anger media-undertypen, i detta fall vanlig. En annan medieundertyp du förmodligen känner till är HTML-undertypen. Det enklaste sättet att både hämta och ställa in stränginnehållet för MIME-delen är egenskapen Text.

Generera och skicka meddelande gratis med 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);
}                  

Generera meddelanden med bilagor med hjälp av .NET API

MailKit API tillhandahåller funktioner för att generera ett meddelande med bilagor i .NET-applikationer. Bilagor är precis som alla andra MimePart; den största skillnaden är att de innehåller en innehållsdispositionsrubrik som håller värdet för bilagan istället för inline eller ingen Content-Disposition-rubrik alls. För att skicka ut både en text/HTML och en text/oformaterad version av meddelandet måste du skapa en TextPart för varje del och sedan lägga till dem i en multipart/alternativ.

Skapa meddelande med bilagor via 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;
 

Kryptera/Dekryptera meddelanden med PGP/MIME

MailKit-biblioteket tillhandahåller funktioner för att kryptera e-postmeddelanden med PGP/MIME i .NET-applikationer. PGP/MIME använder en MIME-del med en multipart/krypterad mime-typ för att kapsla in krypterad data. Om du vill kryptera ett meddelande är det alltid ett bättre tillvägagångssätt att använda SecureMailboxAddress istället för en MailboxAddress för varje mottagare, vilket gör att användare kan ange det unika fingeravtrycket för varje mottagares PGP-nyckel.

Kryptera meddelanden med PGP/MIME via 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);
  }
}

Dekryptera PGP/MIME-meddelanden


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;
  }
}
 Svenska