أمان البريد الإلكتروني والتشفير

تشفير/فك تشفير الرسائل

توفر Aspose.Email إمكانية تشفير وفك تشفير رسائل البريد الإلكتروني باستخدام X509Certificates. تُظهر هذه المقالة كيفية تحميل رسالة موجودة أو جديدة وتشفيرها باستخدام MailMessage. الـ Encrypt() و Decrypt() الطرق تُعيد MailMessage كائن للتأثيرات المطبقة ويجب مراعاته أثناء تشفير/فك تشفير الرسائل. عملية تشفير وفك تشفير الرسائل تتضمن الخطوات التالية:

  1. إنشاء رسالة جديدة أو تحميل رسالة موجودة
  2. تحميل شهادة تشفير باستخدام كائن X509Certificate
  3. تشفير الرسالة باستخدام الشهادة
  4. إرسال الرسالة أو حفظها
  5. فك تشفير الرسالة حسب الحاجة

المقتطف التالي يوضح كيفية تشفير وفك تشفير الرسائل.

// The path to the File directory.
string dataDir = RunExamples.GetDataDir_Email();

string publicCertFile = dataDir + "MartinCertificate.cer";
string privateCertFile = dataDir + "MartinCertificate.pfx";

X509Certificate2 publicCert = new X509Certificate2(publicCertFile);
X509Certificate2 privateCert = new X509Certificate2(privateCertFile, "anothertestaccount");

// Create a message
MailMessage msg = new MailMessage("atneostthaecrcount@gmail.com", "atneostthaecrcount@gmail.com", "Test subject", "Test Body");

// Encrypt the message
MailMessage eMsg = msg.Encrypt(publicCert);
if (eMsg.IsEncrypted == true)
    Console.WriteLine("Its encrypted");
else
    Console.WriteLine("Its NOT encrypted");

// Decrypt the message
MailMessage dMsg = eMsg.Decrypt(privateCert);
if (dMsg.IsEncrypted == true)
    Console.WriteLine("Its encrypted");
else
    Console.WriteLine("Its NOT encrypted");

تحقق من تشفير الرسالة

Aspose.Email MailMessage فئة تسمح لك بالتحقق مما إذا كانت الرسالة مشفرة أم لا. الـ IsEncrypted خاصية من MailMessage يسمح لك بالتحقق من ذلك كما هو موضح في مثال الشيفرة التالي.

MailMessage mailMessageOrig = MailMessage.Load(Path.Combine(dataDir, "Message.msg"), new MsgLoadOptions());
X509Certificate2 publicCert = new X509Certificate2(publicCertFile);
X509Certificate2 privateCert = new X509Certificate2(privateCertFile, "anothertestaccount");

Console.WriteLine("Message is encrypted: {0}" , mailMessageOrig.IsEncrypted);
MailMessage mailMessage = mailMessageOrig.Encrypt(publicCert);
Console.WriteLine("Message is encrypted: {0}", mailMessage.IsEncrypted);
mailMessage = mailMessage.Decrypt(privateCert);
Console.WriteLine("Message is encrypted: {0}", mailMessage.IsEncrypted);

التحقق من توقيع البريد الإلكتروني الآمن

الـ SecureEmailManager فئة تسمح لك بالتحقق من توقيع كائنات MailMessage الآمنة.

الـ SmimeResult فئة تخزن نتائج الفحص.

الطرق التالية للفئة SecureEmailManager فئة ومقتطف شفرة سيمكنانك من معالجة التوقيع:

تحقق من توقيع رسالة دون تقديم شهادة:

var eml = MailMessage.Load(fileName);
var result = new SecureEmailManager().CheckSignature(eml);

تحقق من توقيع رسالة مشفّرة عن طريق تقديم الشهادة لفك التشفير والمخزن الذي يحتوي على الشهادات المستخدمة للتحقق:

var certFileName = "cert.pfx";
var cert = new X509Certificate2(certFileName, "pass");
var eml = MailMessage.Load(fileName);

var store = new X509Store();
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();

var result = new SecureEmailManager().CheckSignature(eml, cert, store);

توقيع رسائل البريد الإلكتروني باستخدام DKIM

تتيح Aspose.Email توقيع البريد الإلكتروني باستخدام DKIM (DomainKeys Identified Mail). يتيح ذلك للمؤسسة تحمل مسؤولية رسالة في حالة النقل (مزيد من المعلومات). يضيف DKIM توقيعًا رقميًا إلى رؤوس رسالة البريد الإلكتروني يمكن للتحقق من صحتها من قبل المستلمين. المفتاح العام للمرسل يمكن المتلقي من التحقق أن التوقيع يطابق محتويات الرسالة. الـ DKIMSign طريقة الـ MailMessage فئة تُستخدم لتعيين المعلومات التشفيرية ومعلومات التوقيع لتوقيع الرسالة. يوضح المقتطف البرمجي التالي كيفية توقيع رسائل البريد الإلكتروني باستخدام DKIM.

var eml = new MailMessage("sender@gmail.com", "receiver@gmail.com", "Some subject", "Some body text");

string privateKeyFile = "key2.pem";
RSACryptoServiceProvider rsa = PemReader.GetPrivateKey(privateKeyFile);
DKIMSignatureInfo signInfo = new DKIMSignatureInfo("test", "somedomain.com");

var signedEml = eml.DKIMSign(rsa, signInfo);