C++ में एक ईमेल संदेश कैसे बनाएं

C++ में एक ईमेल संदेश कैसे बनाएं

Aspose.Email FOSS for C++ lets you compose fully structured Outlook MSG files in code उपयोग करें mapi_message::create().आप विषय, सीधे-टेक्स्ट और HTML शरीर सेट कर सकते हैं, एक ही कॉल के साथ एमएसजी या ईएमएल में पहचान भेजने, प्राप्तकर्ताओं और परिणाम बचाए - Outlook स्थापित करने की आवश्यकता नहीं है।.

चरण 1 - परियोजना को स्थापित करें

git clone https://github.com/aspose-email-foss/Aspose.Email-FOSS-for-Cpp.git
add_subdirectory(Aspose.Email-FOSS-for-Cpp)
target_link_libraries(your_target PRIVATE AsposeEmailFoss::AsposeEmailFoss)

चरण 2 - एक संदेश बनाएं और विषय और शरीर सेट करें

mapi_message::create() विषय और सीधे-टेक्स्ट शरीर को निर्माता के रूप में स्वीकार करता है तर्क के लिए:

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

auto message = aspose::email::foss::msg::mapi_message::create(
    "Quarterly Status Update",
    "Hello team,\n\nPlease find the summary below.\n\nRegards,\nEngineering");

इसके बाद आप विषय या शरीर को भी अपडेट कर सकते हैं। set_subject() और set_body():

message.set_subject("Revised: Quarterly Status Update");
message.set_body("Updated body text.");

चरण 3 – Sender Properties सेट करें

उपयोग करें set_sender_name() और set_sender_email_address() संदेश भेजने के लिए: पता प्रकार है SMTP अतः इसे अवैध रूप से, और इसके साथ-साथ set_sender_address_type() अगर जरूरी है:

message.set_sender_name("Build Agent");
message.set_sender_email_address("build.agent@example.com");

चरण 4 - रिसेप्टर्स जोड़ें

add_recipient() एक संदेश प्राप्तकर्ता को जोड़ें. इसे प्रत्येक प्राप्त करने वाले के लिए एक बार कॉल करें:

message.add_recipient("alice@example.com", "Alice Example");
message.add_recipient("bob@example.com", "Bob Example");

चरण 5 - एक HTML शरीर सेट करें

उपयोग करें set_html_body() संदेश शरीर का एक HTML संस्करण संग्रहीत करने के लिए. दोनों सीधे-टेक्स्ट और HTML शरीर सह-अस्तित्व कर सकते हैं; ईमेल ग्राहक सबसे समृद्ध प्रारूप चुनते हैं:

message.set_html_body(
    "<html><body>"
    "<p>Hello team,</p>"
    "<p>Please find the <b>quarterly summary</b> below.</p>"
    "<p>Regards,<br>Engineering</p>"
    "</body></html>");

चरण 6 – MSG में सहेजें

save() Outlook MSG प्रारूप में संदेश को सीरियल करें. पास एक std::filesystem::path डिस्क पर लिखने के लिए, एक std::ostream प्रवाह आउटपुट के लिए, या कॉल नहीं के साथ एक को प्राप्त करने के लिए तर्क std::vector<std::uint8_t>:

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

int main()
{
    auto message = aspose::email::foss::msg::mapi_message::create(
        "Meeting Notes", "Details inside.");
    message.set_sender_name("Alice");
    message.set_sender_email_address("alice@example.com");
    message.add_recipient("bob@example.com", "Bob");

    // Save to file path
    message.save(std::filesystem::path("meeting_notes.msg"));

    // Save to stream
    std::ofstream out_stream("meeting_notes_stream.msg", std::ios::binary);
    message.save(out_stream);

    // Save to bytes in memory
    auto bytes = message.save();
}

चरण 7 – EML में बचत करें

उपयोग करें save_to_eml() एक RFC 5322 / MIME फ़ाइल के बजाय MSG का उत्पादन करने के लिए। अतिरिक्त लोड (मार्ग, प्रवाह या बाइट्स) उपलब्ध हैं:

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

int main()
{
    auto message = aspose::email::foss::msg::mapi_message::create(
        "Hello", "World");
    message.set_sender_name("Alice");
    message.set_sender_email_address("alice@example.com");
    message.add_recipient("bob@example.com", "Bob");

    message.save_to_eml(std::filesystem::path("hello.eml"));
}

सामान्य समस्याएं और सुधार

संदेश बचाया गया है लेकिन Outlook ग्रिल पाठ दिखाता है।. यह सुनिश्चित करें कि संदेश बनाया गया है Unicode स्ट्रिंग समर्थन।. mapi_message::create() यूनिकोड स्ट्रिंग डिफ़ॉल्ट रूप से सक्षम है।. यदि आपको एएनएसआई कोड करने के लिए मजबूर करना होगा (कम से कम आवश्यक), तो पास करें false तीसरे के रूप में तर्क : mapi_message::create(subject, body, false).

save() प्रवाह उत्पादन खाली या भ्रष्ट है।. हमेशा खुले आउटपुट स्ट्रीम के साथ std::ios::binary. पाठ-मॉड प्रवाह विंडोज पर समाचार पत्रों का अनुवाद करते हैं, भ्रष्ट करने के लिए बाइनरी CFB संरचना।.

Outlook में To/Cc फ़ील्ड में दिखाई नहीं देने वाले रिसेप्टर्स।. -मैंने कहाadd_recipient() adds के लिए मेडिकल टेबल पर प्राप्तकर्ताओं को MAPI. अतिरिक्त सेट करें display_to MAPI संपत्ति के माध्यम से set_property() साथ में common_message_property_id::display_to और property_type_code::ptyp_string इसलिए Outlook शीर्षक में नाम प्रदर्शित करता है।.

HTML शरीर नहीं बनाया गया है।. यह पुष्टि करें कि HTML श्रृंखला खुलने के साथ अच्छी तरह से बना है और बंद करने के लिए <html><body> यह भी जांचें कि प्राप्त करने वाला क्लाइंट HTML ईमेल का समर्थन करता है; कुछ कम से कम ग्राहक केवल स्पष्ट पाठ प्रस्तुत करते हैं।.

set_internet_message_id() कोई प्रभाव नहीं है।. -मैंने कहाset_internet_message_id() सेट करें MAPI इंटरनेट संदेश आईडी का उपयोग तनाव के लिए किया जाता है. यह संपत्ति वैकल्पिक है और आवश्यक नहीं है एक वैध MSG फ़ाइल के लिए।.

अक्सर पूछे जाने वाले प्रश्न

एक MSG फ़ाइल बनाने का सबसे आसान तरीका क्या है?

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

int main()
{
    auto message = aspose::email::foss::msg::mapi_message::create("Hello", "Body");
    message.set_sender_name("Alice");
    message.set_sender_email_address("alice@example.com");
    std::ofstream out("hello.msg", std::ios::binary);
    message.save(out);
}

क्या मैं केवल एक HTML शरीर और कोई सीधे पाठ शरीर के साथ संदेश बना सकता हूं?

हाँ कॉल करें mapi_message::create(subject, "") शरीर को खाली रखने के लिए, फिर कॉल करें set_html_body() HTML सामग्री को स्थापित करें।.

मैं संदेश वर्ग कैसे सेट करूं?

उपयोग करें set_message_class() MAPI संदेश वर्ग श्रृंखला के साथ, उदाहरण के लिए "IPM.Note" एक मानक ईमेल संदेश के लिए:

message.set_message_class("IPM.Note");

क्या मैं इंटरनेट संदेश-ID को धमकी देने के लिए सेट कर सकता हूं?

हाँ कॉल करें set_internet_message_id() RFC 2822 फ़ॉर्मेट संदेश आईडी श्रृंखला के साथ:

message.set_internet_message_id("<msg-001@example.com>");

क्या Unicode डिफ़ॉल्ट रूप से सक्षम है?

  1. दो-आधारित रूपों का उपयोग करें mapi_message::create(subject, body) Unicode के लिए अनुमति दें एक विरासत ANSI संदेश बनाने के लिए, पास करें false तीसरे तर्क के रूप में।.

देखें भी

 हिन्दी