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

Biblioteka Open Source .NET dla IMAP, POP3 i SMTP

Bezpłatna biblioteka C# .NET do generowania wiadomości z załącznikami, szyfrowania/odszyfrowywania wiadomości za pomocą PGP/MIME. 

MailKit to biblioteka Open Source .NET dla IMAP, POP3 i SMTP. Jest to wieloplatformowa biblioteka klienta poczty zbudowana na bazie MimeKit. Projekt ma na celu zapewnienie solidnych, w pełni funkcjonalnych i zgodnych z RFC implementacji klientów SMTP, POP3 i IMAP.

Interfejs API obsługuje kilka ważnych funkcji związanych z uwierzytelnianiem SASL, obsługą proxy, klientem SMTP, klientem POP3, klientem IMAP4, sortowaniem po stronie klienta i wątkowaniem wiadomości.

Previous Next

Pierwsze kroki z MailKit

Najłatwiejszym sposobem zainstalowania MailKit jest użycie NuGet. Aby użyć go z konsoli Menedżera pakietów programu Visual Studio, wprowadź następujące polecenie.

zainstaluj Mailkit przez NuGet

Install-Package MailKit  

Zainstaluj Mailkit przez GitHub 

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

Twórz nowe wiadomości przez .NET

Biblioteka MailKit Open Source API umożliwia programistom tworzenie wiadomości MIME za pomocą kilku prostych poleceń. TextPart to część MIME węzła liścia z typem nośnika tekstowego. Pierwszy argument konstruktora TextPart określa podtyp media, w tym przypadku zwykły. Innym podtypem mediów, który prawdopodobnie znasz, jest podtyp HTML. Najłatwiejszym sposobem uzyskania i ustawienia zawartości ciągu części MIME jest właściwość Text.

Biblioteka MailKit Open Source API umożliwia programistom tworzenie wiadomości MIME za pomocą kilku prostych poleceń. TextPart to część MIME węzła liścia z typem nośnika tekstowego. Pierwszy argument konstruktora TextPart określa podtyp media, w tym przypadku zwykły. Innym podtypem mediów, który prawdopodobnie znasz, jest podtyp HTML. Najłatwiejszym sposobem pobierania i ustawiania zawartości ciągu części MIME jest właściwość Text.

Generuj i wysyłaj wiadomość za darmo za pomocą 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);
}                  

Generuj wiadomość z załącznikami za pomocą .NET API

MailKit API zapewnia funkcje generowania wiadomości z załącznikami w aplikacjach .NET. Załączniki są jak każda inna MimePart; główna różnica polega na tym, że zawierają one nagłówek Content-Disposition zawierający wartość załącznika zamiast wbudowanego nagłówka Content-Disposition. Aby wysłać zarówno tekst/HTML, jak i tekstową/zwykłą wersję wiadomości, musisz utworzyć TextPart dla każdej części, a następnie dodać je do wieloczęściowej/alternatywnej.

Utwórz wiadomość z załącznikami za pomocą 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;
 

Szyfruj/odszyfruj wiadomości za pomocą PGP/MIME

Biblioteka MailKit zapewnia funkcje szyfrowania wiadomości e-mail za pomocą PGP/MIME w aplikacjach .NET. PGP/MIME używa części MIME z wieloczęściowym/szyfrowanym typem MIME do enkapsulacji zaszyfrowanych danych. Jeśli chcesz zaszyfrować wiadomość, zawsze lepszym rozwiązaniem jest użycie SecureMailboxAddress zamiast MailboxAddress dla każdego odbiorcy, co pozwoli użytkownikom określić unikalny odcisk palca klucza PGP każdego odbiorcy.

Szyfrowanie wiadomości za pomocą PGP/MIME za pomocą 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);
  }
}

Odszyfrowywanie wiadomości 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;
  }
}
 Polski