1. Produkti
  2.   E-pasts
  3.   .NET
  4.   MailKit
 
  

Atvērtā pirmkoda .NET bibliotēka IMAP, POP3 un SMTP

Bezmaksas C# .NET bibliotēka ziņojumu ģenerēšanai ar pielikumiem, ziņojumu šifrēšanai/atšifrēšanai, izmantojot PGP/MIME. 

MailKit ir atvērtā pirmkoda .NET bibliotēka IMAP, POP3 un SMTP. Tā ir starpplatformu pasta klienta bibliotēka, kas izveidota uz MimeKit. Projekta mērķis ir nodrošināt stabilu, pilnībā aprīkotu un ar RFC saderīgu SMTP, POP3 un IMAP klientu ieviešanu.

API atbalsta vairākas svarīgas funkcijas, kas saistītas ar SASL autentifikāciju, starpniekservera atbalstu, SMTP klientu, POP3 klientu, IMAP4 klientu, klienta puses kārtošanu un ziņojumu pavedieniem.

Previous Next

Darba sākšana ar MailKit

Vienkāršākais veids, kā instalēt MailKit, ir, izmantojot NuGet. Lai to izmantotu no Visual Studio pakotņu pārvaldnieka konsoles, lūdzu, ievadiet šo komandu.

instalējiet Mailkit, izmantojot NuGet

Install-Package MailKit  

Instalējiet Mailkit, izmantojot GitHub 

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

Izveidojiet jaunus ziņojumus, izmantojot .NET

Atvērtā pirmkoda API MailKit bibliotēka ļauj programmatūras izstrādātājiem izveidot MIME ziņojumus, izmantojot dažas vienkāršas komandas. TextPart ir lapas mezgla MIME daļa ar teksta multivides tipu. Pirmais arguments TextPart konstruktoram norāda multivides apakštipu, šajā gadījumā vienkāršu. Vēl viens multivides apakštips, kas jums droši vien ir pazīstams, ir HTML apakštips. Vienkāršākais veids, kā iegūt un iestatīt gan MIME daļas virknes saturu, ir rekvizīts Text.

Atvērtā pirmkoda API MailKit bibliotēka ļauj programmatūras izstrādātājiem izveidot MIME ziņojumus, izmantojot dažas vienkāršas komandas. TextPart ir lapas mezgla MIME daļa ar teksta multivides veidu. Pirmais arguments TextPart konstruktoram norāda multivides apakštipu, šajā gadījumā vienkāršu. Vēl viens multivides apakštips, kas jums droši vien ir pazīstams, ir HTML apakštips. Vienkāršākais veids, kā iegūt un iestatīt MIME daļas virknes saturu, ir rekvizīts Text.

Ģenerējiet un sūtiet ziņojumus bez maksas, izmantojot 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);
}                  

Ģenerējiet ziņojumu ar pielikumiem, izmantojot .NET API

MailKit API nodrošina līdzekļus, lai ģenerētu ziņojumu ar pielikumiem .NET lietojumprogrammās. Pielikumi ir tādi paši kā jebkura cita MimePart; galvenā atšķirība ir tā, ka tajos ir ietverta pielikuma satura izvietojuma galvenes turēšanas vērtība, nevis iekļauta satura izvietojuma galvene vai tās nav vispār. Lai nosūtītu gan teksta/HTML, gan teksta/vienkāršā ziņojuma versiju, katrai daļai ir jāizveido teksta daļa un pēc tam jāpievieno tā vairāku daļu/alternatīvai.

Izveidojiet ziņojumu ar pielikumiem, izmantojot 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;
 

Šifrējiet/atšifrējiet ziņojumus, izmantojot PGP/MIME

MailKit bibliotēka nodrošina līdzekļus e-pasta ziņojumu šifrēšanai ar PGP/MIME .NET lietojumprogrammās. PGP/MIME izmanto MIME daļu ar vairāku daļu/šifrētu MIME veidu, lai iekapsulētu šifrētus datus. Ja vēlaties šifrēt ziņojumu, vienmēr ir labāk izmantot SecureMailboxAddress, nevis MailboxAddress katram adresātam, kas ļaus lietotājiem norādīt katra adresāta PGP atslēgas unikālo pirkstu nospiedumu.

Ziņojumu šifrēšana ar PGP/MIME, izmantojot 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 ziņojumu atšifrēšana


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