Kako napraviti e-poruku u C++?

Kako napraviti e-poruku u C++?

Aspose.Email FOSS for C++ lets you compose fully structured Outlook MSG files in code korištenje mapi_message::create().Možete postaviti predmet, običan tekst i HTML tijela., identitet pošiljatelja, primatelje i sačuvati rezultat na MSG ili EML s jednim pozivom ne zahtijeva instaliranje programa Outlook.

Korak 1 Uspostavljanje projekta

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)

Korak 2 Stvorite poruku i postavite predmet i tijelo

mapi_message::create() prihvaća predmet i tijelo u običnom tekstu kao konstruktor argument:

#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");

Nakon stvaranja možete također ažurirati predmet ili tijelo putem set_subject() i u članku 1. set_body():

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

Korak 3 Postavite svojstva šaljivača

Upotreba: set_sender_name() i u članku 1. set_sender_email_address() Identificirati šaljivača. tip adrese je: SMTP podrazumijevano; preokrenuti s: set_sender_address_type() ako: potrebno:

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

Korak 4 Dodaj primatelje

add_recipient() Pripojite primatelja poruke.:

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

Korak 5 Postavite HTML tijelo

Upotreba: set_html_body() Za pohranu HTML verzije tijela poruke. Oboje je u običnom tekstu i HTML tijela mogu koegzistirati; e-mail klijenti odaberu bogatiji format:

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>");

Korak 6 Sačuvati na MSG

save() serijalizira poruku u Outlook MSG format. Prenosite a std::filesystem::path da pišem direktno na disk, a std::ostream za izlaz struje ili poziv bez argumentima za primanje 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();
}

Korak 7 Sačuvati na EML

Upotreba: save_to_eml() Da bi se proizveo RFC 5322 / MIME datoteka umjesto MSG. Ista tri U slučaju da je to moguće, mora se provesti pregled.:

#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"));
}

Česta pitanja i rješenja

Poruka je sačuvana, ali Outlook pokazuje nejasno tekst. Pobrini se da je poruka stvorena s: Podrška za Unicode nizove. mapi_message::create() omogućuje Unicode nizove podrazumijevanjem. Ako trebate prisiljeti ANSI kodiranje (rijetko potrebno), proći false kao treća. argument: mapi_message::create(subject, body, false).

save() Izlaz toka je prazan ili pokvaren. Uvijek otvorite izlazne tokove s: std::ios::binary.Tekstni tokovi prevode novine na Windows-u, narušavajući binarna CFB struktura.

Primatelji koji se ne pojavljuju u polju To/Cc u programu Outlook. Sljedeći članak:add_recipient() doda se: Također postavite primatelje za MAPI primalac tablice. display_to MAPI imovina preko set_property() s: common_message_property_id::display_to i u članku 1. property_type_code::ptyp_string tako da Outlook prikazuje imena u zaglavlju.

HTML tijelo nije prikazano. Potvrdite HTML niz je dobro formiran s otvaranjem i zaključavanje <html><body> Također provjerite primatelj klijenta podržava HTML email; neki minimalni klijenti prikazuju samo običan tekst.

set_internet_message_id() nema efekta. Sljedeći članak:set_internet_message_id() određuje: MAPI Internet poruka ID korišten za threading. Ova svojina je opcionalna i nije obavezna za valjan MSG datoteku.

Česta pitanja

Koji je najlakši način za kreiranje datoteke 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);
}

Mogu li stvoriti poruku samo s HTML tijelu i bez običnog teksta tijela?

Da, nazovi. mapi_message::create(subject, "") da ostavi prazno tijelo teksta, onda poziv set_html_body() za postavljanje HTML sadržaja.

Kako postaviti razred poruke?

Upotreba: set_message_class() s MAPI znakom za klasu poruke, na primjer "IPM.Note" za standardnu e-poruku:

message.set_message_class("IPM.Note");

Mogu li postaviti Internet poruku-ID za lance?

Da, nazovi. set_internet_message_id() Sljedeći članakSlužbeni broj:

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

Je li Unicode podrazumijevano uključen?

Da, dvostruki argument iz “Dvije stvari” je… mapi_message::create(subject, body) omogućuje Unicode Za kreiranje legate ANSI poruke, proći false kao treći argument.

Također pogledajte:

 Hrvatski