Pustaka .NET Sumber Terbuka untuk IMAP, POP3 & SMTP
Pustaka C# .NET Percuma untuk Menjana Mesej dengan Lampiran, Sulitkan/Nyahsulit Mesej dengan PGP/MIME.
MailKit ialah perpustakaan .NET Sumber Terbuka untuk IMAP, POP3 dan SMTP. Ia ialah perpustakaan klien mel merentas platform yang dibina di atas MimeKit. Projek ini bertujuan untuk menyediakan pelaksanaan pelanggan SMTP, POP3 dan IMAP yang mantap, berciri penuh dan mematuhi RFC.
API menyokong beberapa ciri penting yang berkaitan dengan Pengesahan SASL, sokongan proksi, klien SMTP, klien POP3, klien IMAP4, pengisihan sisi klien dan penjalinan mesej.
Bermula dengan MailKit
Cara termudah untuk memasang MailKit ialah melalui NuGet. Untuk menggunakannya daripada Konsol Pengurus Pakej Visual Studio, sila masukkan arahan berikut.
pasang Mailkit melalui NuGet
Install-Package MailKit
Pasang Mailkit melalui GitHub
git clone --recursive https://github.com/jstedfast/MailKit.git
Cipta Mesej Baharu melalui .NET
Pustaka MailKit API Sumber Terbuka membolehkan pembangun perisian mencipta mesej MIME dengan beberapa arahan mudah. TextPart ialah bahagian MIME nod daun dengan jenis media teks. Argumen pertama kepada pembina TextPart menentukan subjenis media, dalam kes ini, biasa. Subjenis media lain yang mungkin anda kenali ialah subjenis HTML. Cara paling mudah untuk mendapatkan dan menetapkan kedua-dua kandungan rentetan bahagian MIME ialah sifat Teks.
Pustaka MailKit API Sumber Terbuka membolehkan pembangun perisian mencipta mesej MIME dengan beberapa arahan mudah. TextPart ialah bahagian MIME nod daun dengan jenis media teks. Argumen pertama kepada pembina TextPart menentukan subjenis media, dalam kes ini, biasa. Subjenis media lain yang mungkin anda kenali ialah subjenis HTML. Cara paling mudah untuk mendapatkan dan menetapkan kandungan rentetan bahagian MIME ialah sifat Teks.
Jana dan Hantar Mesej Percuma menggunakan 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);
}
Jana Mesej dengan Lampiran menggunakan .NET API
MailKit API menyediakan ciri untuk menjana mesej dengan lampiran di dalam aplikasi .NET. Lampiran sama seperti MimePart yang lain; perbezaan utama ialah ia mengandungi pengepala pelupusan kandungan yang memegang nilai lampiran dan bukannya pengepala pelupusan sebaris atau tiada langsung. Untuk menghantar kedua-dua teks/HTML dan versi teks/biasa mesej, anda perlu mencipta TextPart untuk setiap bahagian dan kemudian menambahkannya pada berbilang bahagian/alternatif.
Buat Mesej dengan Lampiran melalui 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;
Sulitkan/Nyahsulit Mesej dengan PGP/MIME
Pustaka MailKit menyediakan ciri untuk menyulitkan mesej e-mel dengan PGP/MIME di dalam aplikasi .NET. PGP/MIME menggunakan bahagian MIME dengan jenis mime berbilang bahagian/disulitkan untuk merangkum data yang disulitkan. Jika anda ingin menyulitkan mesej, pendekatan yang lebih baik adalah sentiasa menggunakan SecureMailboxAddress dan bukannya MailboxAddress untuk setiap penerima, yang akan membolehkan pengguna menentukan cap jari unik bagi setiap kunci PGP penerima.
Menyulitkan Mesej dengan PGP/MIME melalui 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);
}
}
Menyahsulit Mesej 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;
}
}