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

Open Source .NET Library til IMAP, POP3 og SMTP

Gratis C# .NET-bibliotek til generering af meddelelser med vedhæftede filer, krypter/dekrypter meddelelser med PGP/MIME. 

MailKit er et Open Source .NET-bibliotek til IMAP, POP3 og SMTP. Det er et cross-platform mail-klientbibliotek bygget oven på MimeKit. Projektet sigter mod at levere en robust, fuldt udstyret og RFC-kompatibel SMTP-, POP3- og IMAP-klientimplementering.

API'en understøtter flere vigtige funktioner relateret til SASL-godkendelse, proxy-understøttelse, SMTP-klient, POP3-klient, IMAP4-klient, sortering på klientsiden og trådning af meddelelser.

Previous Next

Kom godt i gang med MailKit

Den nemmeste måde at installere MailKit på er via NuGet. For at bruge det fra Visual Studios Package Manager Console skal du indtaste følgende kommando.

installer Mailkit via NuGet

Install-Package MailKit  

Installer Mailkit via GitHub 

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

Opret nye beskeder via .NET

Open Source API MailKit-biblioteket gør det muligt for softwareudviklere at oprette MIME-meddelelser med nogle få enkle kommandoer. En TextPart er en blad-node MIME-del med en tekstmedietype. Det første argument til TextPart-konstruktøren angiver medieundertypen, i dette tilfælde almindelig. En anden medieundertype, du sikkert kender, er HTML-undertypen. Den nemmeste måde at få og indstille både strengindholdet i MIME-delen er egenskaben Text.

Open Source API MailKit-biblioteket gør det muligt for softwareudviklere at oprette MIME-meddelelser med få enkle kommandoer. En TextPart er en leaf-node MIME-del med en tekstmedietype. Det første argument til TextPart-konstruktøren angiver medieundertypen, i dette tilfælde almindelig. En anden medieundertype, du sikkert kender, er HTML-undertypen. Den nemmeste måde at både hente og indstille strengindholdet i MIME-delen er egenskaben Text.

Generer og send besked gratis ved hjælp af 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);
}                  

Generer meddelelse med vedhæftede filer ved hjælp af .NET API

MailKit API giver funktioner til at generere en besked med vedhæftede filer i .NET-applikationer. Vedhæftede filer er ligesom enhver anden MimePart; den væsentligste forskel er, at de indeholder en indholdsdisposition-header, der holder værdien af den vedhæftede fil i stedet for inline eller slet ingen Content-Disposition-header. For at sende både en tekst/HTML og en tekst/almindelig version af beskeden, skal du oprette en TextPart for hver del og derefter tilføje dem til en multipart/alternativ.

Opret besked med vedhæftede filer 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;
 

Krypter/Dekrypter meddelelser med PGP/MIME

MailKit-biblioteket indeholder funktioner til kryptering af e-mail-beskeder med PGP/MIME inde i .NET-applikationer. PGP/MIME bruger en MIME-del med en multipart/krypteret mime-type til at indkapsle krypterede data. Hvis du ønsker at kryptere en besked, er det altid en bedre tilgang at bruge SecureMailboxAddress i stedet for en MailboxAddress for hver modtager, hvilket giver brugerne mulighed for at angive det unikke fingeraftryk for hver modtagers PGP-nøgle.

Kryptering af beskeder 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);
  }
}

Dekryptering af PGP/MIME-meddelelser


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