مقدمة

العمل مع ملفات Outlook MSG في C++ قد استغرقت تاريخيا Windows-فقط COM أوتوماتيك أو ثقيلة المكتبات من طرف ثالث مع التراخيص الحد. Aspose.الرسائل الإلكترونية FOSS لـ C ++ تغير أن: انها مكتبة C + + 17 النقية مع لا تعتمد خارجية، لا COM، ولا رمز منصة محددة.

يتم إصدار المكتبة تحت ترخيص MIT وتوزيعها كصدر عبر GitHub. يمكنك دمجها عن طريق استنساخ المستودع وإضافته كمدير فرعي CMake - لا يتطلب تسجيل مدير الحزمة ، ولا تحتاج إلى بناء أي بائنات مسبقة.

يمر هذا المنشور عبر سير العمل الأساسية: قراءة ملف MSG الحالي ، ومراجعة خصائصه ، وإنشاء رسالة جديدة برمجة ، والتجول بين تنسيقات MS G و EML.


الميزات الرئيسية

اقرأ الملفات MSG الحالية

استخدام msg_reader لفتح أ .msg الملف و msg_document من أجل الوصول إلى محتوىها المنظم. كلا الطلبين يعيش في aspose::email::foss::msg اسم الفضاء .

#include "aspose/email/foss/msg/msg_reader.hpp"
#include "aspose/email/foss/msg/msg_document.hpp"
#include <filesystem>

namespace aef = aspose::email::foss;

auto reader   = aef::msg::msg_reader::from_file(std::filesystem::path("message.msg"));
auto document = aef::msg::msg_document::from_reader(reader);

msg_reader كما أن لديها A from_stream تداول العملات الأجنبية من قراءة من std::istream, التي هي مفيدة في سياقات الخادم أو الأنابيب حيث لا توجد ملفات على القرص.

إرسال الرسائل ببرمجة

mapi_message::create إنتاج رسالة جديدة في الذاكرة مع موضوع وجسم. يمكنك بعد ذلك إعداد تفاصيل المرسل ، وإضافة المستلمين ، ورفع التحميلات الثنائية أو النصية قبل الادخار .

#include "aspose/email/foss/msg/mapi_message.hpp"

namespace aef = aspose::email::foss;

auto msg = aef::msg::mapi_message::create(
    "Quarterly status update",
    "Hello team,\n\nPlease find the rollout summary attached.\n\nRegards");

msg.set_sender_name("Build Agent");
msg.set_sender_email_address("build.agent@example.com");
msg.add_recipient("alice@example.com", "Alice Example");
msg.save(std::filesystem::path("output.msg"));

تحويل MSG إلى EML

mapi_message يدعم التحويل المباشر MSG-to-EML من خلال save_to_eml طريقة . يتماشى إصدار EML مع RFC 5322 (MIME) ، مما يجعلها متوافقة مع أي رسالة قياسية. العميل أو خط أنابيب المعالجة.

auto loaded = aef::msg::mapi_message::from_file(
    std::filesystem::path("message.msg"), /*strict=*/false);

// Save as EML to a file
loaded.save_to_eml(std::filesystem::path("message.eml"));

// Or capture as bytes
std::vector<std::uint8_t> eml_bytes = loaded.save_to_eml();

تحميل من EML

والتوجيه المعاكس بسيط على قدم المساواة: load_from_eml قراءة ملف EML وتنتج أ mapi_message في الذاكرة ، والتي يمكن بعد ذلك حفظها مرة أخرى إلى MSG.

auto from_eml = aef::msg::mapi_message::load_from_eml(
    std::filesystem::path("message.eml"));

from_eml.save(std::filesystem::path("restored.msg"));

مستوى منخفض CFB الوصول

في حالات الاستخدام المتقدمة - مثل قراءة خصائص MAPI الخام غير المعرضة من قبل الـمعدل العالي - cfb_reader يتيح الوصول المباشر إلى حاوية ملف ثنائي مكون هذا يعتمد على تنسيق MSG.

#include "aspose/email/foss/cfb/cfb_reader.hpp"

namespace aef = aspose::email::foss;

auto cfb = aef::cfb::cfb_reader::from_file(std::filesystem::path("message.msg"));
auto storage_ids = cfb.storage_ids();
auto stream_ids  = cfb.stream_ids();

بدء سريع

الخطوة 1 - إدراج وتكملة كمدير فرعي

git clone https://github.com/aspose-email-foss/Aspose.Email-FOSS-for-Cpp.git

في مشروعك CMakeLists.txt:

cmake_minimum_required(VERSION 3.26)
project(my_project)

add_subdirectory(Aspose.Email-FOSS-for-Cpp)

add_executable(my_app main.cpp)
target_link_libraries(my_app PRIVATE AsposeEmailFoss::AsposeEmailFoss)

الخطوة 2 - إدراج واستخدام

#include <iostream>
#include "aspose/email/foss/msg/mapi_message.hpp"

namespace aef = aspose::email::foss;

int main()
{
    // Create a message
    auto msg = aef::msg::mapi_message::create("Hello from C++", "Body text here");
    msg.save(std::filesystem::path("hello.msg"));

    // Round-trip to EML
    auto loaded = aef::msg::mapi_message::from_file(
        std::filesystem::path("hello.msg"), false);
    loaded.save_to_eml(std::filesystem::path("hello.eml"));

    std::cout << "Done\n";
}

الخطوة الثالثة - بناء

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

تنسيقات مدعومة

شكلالتمديدقراءةكتب
MSG (رسالة Outlook).msg
EML (RFC 5322 / MIME).eml
CFB (مجموعة من الملفات الثنائية).msg, .cfb

المصدر المفتوح و الترخيص

Aspose.Email FOSS for C++ is released under the MIT license. The full source is available على GitHub في إرسال رسالة خاصة إلى: aspose-email-foss/Aspose.email-FOSS-for-Cpp. استخدام تجاري مسموح به دون روياليت.المكتبة لا تملك إدمانات العمل ما وراء جهاز الكمبيوتر C++17 و CMake 3.26 أو أحدث.


بدءاً من