إدارة الرسائل الموقعة رقمياً

تطبق Aspose.Email خوارزمية كائن البريد S/MIME بالكامل. يمنح ذلك الواجهة البرمجية القدرة الكاملة على إضافة توقيعات رقمية إلى رسائل البريد الإلكتروني، الحفاظ عليها أثناء تحويل الرسائل بين الصيغ، إزالتها، وما إلى ذلك.

إرفاق توقيع إلى بريد إلكتروني

الـ SecureEmailManager.attachSignature تتيح الطريقة إرفاق توقيعات رقمية إلى رسائل البريد الإلكتروني. بعد إرفاق التوقيع، تحقق من النتائج عبر خصائص مثل IsSigned, MessageClass, وتفاصيل المرفقات.

يمكنك توفير MailMessage أو MapiMessage، شهادة خاصة، وخيارات التوقيع لتخصيص عملية إرفاق التوقيع باستخدام الـ SignatureOptions فئة تمكّن المستخدمين من تحديد خيارات متعددة لإرفاق التوقيع، بما في ذلك التوقيعات المنفصلة أو غير المنفصلة.

ستُظهر لك العينة البرمجية التالية كيفية تحميل رسالة من ملف، وإرفاق توقيع رقمي منفصل وغير منفصل باستخدام شهادة خاصة، ثم التحقق مما إذا تم إرفاق التواقيع بنجاح.

String fileName = "message.msg";
String privateCertFile = "certFile.pfx";
X509Certificate2 privateCert = new X509Certificate2(privateCertFile, "password");

MapiMessage msg = MapiMessage.load(fileName);

SignatureOptions opt = new SignatureOptions();
opt.setDetached(true);
MapiMessage signedDetached = new SecureEmailManager().attachSignature(msg, privateCert, opt);

if (signedDetached.isSigned()) {
    System.out.println("Detached Signature Attached Successfully.");
}

opt.setDetached(false);
MapiMessage signedNonDetached = new SecureEmailManager().attachSignature(msg, privateCert, opt);

if (signedNonDetached.isSigned()) {
    System.out.println("Non-Detached Signature Attached Successfully.");
}

الحفاظ على التوقيع عند التحويل من EML إلى MSG

يحافظ Aspose.Email على التوقيع الرقمي عند التحويل من EML إلى MSG. يوضح المقتطف البرمجي التالي كيفية التحويل من EML إلى MSG.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";

// Load mail message
MailMessage message = MailMessage.load(dataDir + "Message.eml", new EmlLoadOptions());
// Save as MSG
message.save(dataDir + "ConvertEMLToMSG_out.msg", SaveOptions.getDefaultMsgUnicode());

إزالة التوقيع من ملف رسالة Outlook

إذا كنت تواجه الحاجة لإزالة التوقيع من رسالة بصيغة MAPI، على سبيل المثال لأغراض التوافق، فإن Aspose.Email يقدم الـ MapiMessage.removeSignature طريقة و الـ MapiMessage.isSigned خاصية.

يوضح المقتطف البرمجي التالي كيفية تحميل رسالة MAPI من ملف، والتحقق مما إذا كانت موقعة رقمياً، وإذا كان الأمر كذلك، إنشاء رسالة جديدة دون التوقيع الرقمي:

MapiMessage msg = MapiMessage.load(fileName);

if (msg.isSigned()) {
    MapiMessage unsignedMsg = msg.removeSignature();
}

تحويل رسائل S/MIME من MSG إلى EML

يحافظ Aspose.Email على التوقيع الرقمي عند التحويل من MSG إلى EML كما هو موضح في المقتطف البرمجي التالي.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";

MailMessage msg = MailMessage.load(dataDir + "message.eml");
MapiMessage mapi = MapiMessage.fromMailMessage(msg, new MapiConversionOptions(OutlookMessageFormat.Unicode));
// Save File to disk
mapi.save(dataDir + "ConvertMIMEMessagesFromMSGToEML_out.msg");

فك تشفير ملف MSG باستخدام شهادة

إذا كان لديك رسائل MAPI مشفرة وتحتاج إلى فك تشفيرها باستخدام المفتاح الخاص المخزن في شهادة، فإن الميزات التالية في Aspose.Email يمكن أن تكون مفيدة:

  • MapiMessage.isEncrypted - يحصل على قيمة تشير إلى ما إذا كانت الرسالة مشفرة.
  • MapiMessage.decrypt() - يقوم بفك تشفير هذه الرسالة (طريقة تبحث في مخازن My الخاصة بالمستخدم الحالي والكمبيوتر عن الشهادة والمفتاح الخاص المناسب).
  • MapiMessage.decrypt(X509Certificate2 certificate) - يقوم بفك تشفير هذه الرسالة باستخدام الشهادة.

يوضح المقتطف البرمجي التالي كيفية التعامل مع رسائل MAPI المشفرة:

X509Certificate2 privateCert = new X509Certificate2("privateCertFile", "password");
MapiMessage msg = MapiMessage.load("encrypted.msg");

if (msg.isEncrypted()) {
    MapiMessage decryptedMsg = msg.decrypt(privateCert);
    //MapiMessage decryptedMsg = msg.decrypt(/*byte[]*/rawPrivateCert, "password");
}