Open Source .NET Library for IMAP, POP3 og SMTP
Gratis C# .NET-bibliotek for generering av meldinger med vedlegg, krypter/dekrypter meldinger med PGP/MIME.
MailKit er et Open Source .NET-bibliotek for IMAP, POP3 og SMTP. Det er et e-postklientbibliotek på tvers av plattformer bygget på toppen av MimeKit. Prosjektet har som mål å gi en robust, fullt utstyrt og RFC-kompatibel SMTP-, POP3- og IMAP-klientimplementering.
API-en støtter flere viktige funksjoner knyttet til SASL-autentisering, proxy-støtte, SMTP-klient, POP3-klient, IMAP4-klient, sortering på klientsiden og tråding av meldinger.
Komme i gang med MailKit
Den enkleste måten å installere MailKit på er via NuGet. For å bruke den fra Visual Studios Package Manager Console, skriv inn følgende kommando.
installer Mailkit via NuGet
Install-Package MailKit
Installer Mailkit via GitHub
git clone --recursive https://github.com/jstedfast/MailKit.git
Opprett nye meldinger via .NET
Open Source API MailKit-biblioteket gjør det mulig for programvareutviklere å lage MIME-meldinger med noen få enkle kommandoer. En TextPart er en blad-node MIME-del med en tekstmedietype. Det første argumentet til TextPart-konstruktøren spesifiserer media-undertypen, i dette tilfellet ren. En annen medieundertype du sannsynligvis er kjent med er HTML-undertypen. Den enkleste måten å få tak i og angi både strenginnholdet i MIME-delen på er Text-egenskapen.
Open Source API MailKit-biblioteket gjør det mulig for programvareutviklere å lage MIME-meldinger med få enkle kommandoer. En TextPart er en blad-node MIME-del med en tekstmedietype. Det første argumentet til TextPart-konstruktøren spesifiserer media-undertypen, i dette tilfellet ren. En annen medieundertype du sannsynligvis er kjent med er HTML-undertypen. Den enkleste måten å både hente og angi strenginnholdet til MIME-delen på er Text-egenskapen.
Generer og send melding gratis ved å bruke 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 melding med vedlegg ved hjelp av .NET API
MailKit API gir funksjoner for å generere en melding med vedlegg i .NET-applikasjoner. Vedlegg er akkurat som alle andre MimePart; Hovedforskjellen er at de inneholder en innholdsdisposisjons-header-verdi for vedlegget i stedet for inline eller ingen Content-Disposition-header i det hele tatt. For å sende ut både en tekst/HTML og en tekst/ren versjon av meldingen, må du lage en TextPart for hver del og deretter legge dem til en flerdelt/alternativ.
Lag melding med vedlegg 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 meldinger med PGP/MIME
MailKit-biblioteket gir funksjoner for kryptering av e-postmeldinger med PGP/MIME i .NET-applikasjoner. PGP/MIME bruker en MIME-del med en flerdelt/kryptert mime-type for å kapsle inn krypterte data. Hvis du ønsker å kryptere en melding, er det alltid en bedre tilnærming å bruke SecureMailboxAddress i stedet for en MailboxAddress for hver mottaker, som vil tillate brukere å spesifisere det unike fingeravtrykket til hver mottakers PGP-nøkkel.
Kryptering av meldinger 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 av PGP/MIME-meldinger
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;
}
}