Avoimen lähdekoodin .NET-kirjasto IMAP-, POP3- ja SMTP-sovelluksille
Ilmainen C# .NET -kirjasto viestien luomiseen liitteineen, viestien salaamiseen tai salauksen purkamiseen PGP/MIME:n avulla.
MailKit on avoimen lähdekoodin .NET-kirjasto IMAP:lle, POP3:lle ja SMTP:lle. Se on monialustainen sähköpostiohjelmakirjasto, joka on rakennettu MimeKitin päälle. Projektin tavoitteena on tarjota vankka, täysin varusteltu ja RFC-yhteensopiva SMTP-, POP3- ja IMAP-asiakastoteutus.
API tukee useita tärkeitä ominaisuuksia, jotka liittyvät SASL-todennukseen, välityspalvelintukeen, SMTP-asiakkaaseen, POP3-asiakasohjelmaan, IMAP4-asiakasohjelmaan, asiakaspuolen lajitteluun ja viestien ketjutukseen.
MailKitin käytön aloittaminen
Helpoin tapa asentaa MailKit on NuGetin kautta. Jos haluat käyttää sitä Visual Studion Package Manager -konsolista, anna seuraava komento.
asenna Mailkit NuGetin kautta
Install-Package MailKit
Asenna Mailkit GitHubin kautta
git clone --recursive https://github.com/jstedfast/MailKit.git
Luo uusia viestejä .NET:n kautta
Open Source API MailKit -kirjaston avulla ohjelmistokehittäjät voivat luoda MIME-viestejä muutamalla yksinkertaisella komennolla. TextPart on lehtisolmun MIME-osa, jolla on tekstimediatyyppi. Ensimmäinen argumentti TextPart-konstruktorille määrittää media-alatyypin, tässä tapauksessa plain. Toinen media-alatyyppi, jonka todennäköisesti tunnet, on HTML-alatyyppi. Helpoin tapa saada ja asettaa sekä MIME-osan merkkijonosisältö on Text-ominaisuus.
Open Source API MailKit -kirjaston avulla ohjelmistokehittäjät voivat luoda MIME-viestejä muutamalla yksinkertaisella komennolla. TextPart on lehtisolmun MIME-osa, jolla on tekstimediatyyppi. Ensimmäinen argumentti TextPart-konstruktorille määrittää media-alatyypin, tässä tapauksessa plain. Toinen media-alatyyppi, jonka todennäköisesti tunnet, on HTML-alatyyppi. Helpoin tapa sekä saada että asettaa MIME-osan merkkijonosisältö on Text-ominaisuus.
Luo ja lähetä viestejä ilmaiseksi C#:lla
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);
}
Luo viestiä liitteineen .NET API:n avulla
MailKit API tarjoaa ominaisuuksia liitteitä sisältävän viestin luomiseen .NET-sovelluksissa. Liitteet ovat aivan kuten mikä tahansa muu MimePart; Suurin ero on se, että ne sisältävät liitteen sisällön jakamisen otsikon pitoarvon rivin sijaan tai ei ollenkaan Content-Disposition-otsikkoa. Jos haluat lähettää sekä teksti-/HTML- että teksti-/pelkkäversion viestistä, sinun on luotava kullekin osalle tekstiosa ja lisättävä ne sitten moniosaiseen/vaihtoehtoiseen.
Luo viesti liitteineen C#:n kautta
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;
Salaa/purkaa viestit PGP/MIME:llä
MailKit-kirjasto tarjoaa ominaisuuksia sähköpostiviestien salaamiseen PGP/MIME:llä .NET-sovelluksissa. PGP/MIME käyttää MIME-osaa, jossa on moniosainen/salattu mime-tyyppi salatun tiedon kapseloimiseksi. Jos haluat salata viestin, on aina parempi tapa käyttää SecureMailboxAddressia jokaisen vastaanottajan MailboxAddressin sijaan, jolloin käyttäjät voivat määrittää kunkin vastaanottajan PGP-avaimen yksilöllisen sormenjäljen.
Viestien salaus PGP/MIME:llä C#:n kautta
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-viestien salauksen purku
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;
}
}