Kaip sukurti elektroninio pašto pranešimą C++
Aspose.Email FOSS for C++ lets you compose fully structured Outlook MSG files in code Naudojimas mapi_message::create().Galite nustatyti temą, plokščių tekstą ir HTML kūnus, siųsti tapatybę, gavėjus ir išsaugoti rezultatą MSG arba EML su vienu skambučiu - Nereikalaujama „Outlook“ įrengimo.
1 žingsnis – projektuoti projektą
git clone https://github.com/aspose-email-foss/Aspose.Email-FOSS-for-Cpp.gitadd_subdirectory(Aspose.Email-FOSS-for-Cpp)
target_link_libraries(your_target PRIVATE AsposeEmailFoss::AsposeEmailFoss)2 žingsnis – sukurti pranešimą ir nustatyti dalyką ir kūną
mapi_message::create() priima temą ir plokščių tekstą kaip statybininką Argumentai yra:
#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");Po to, kai sukūrėte, galite atnaujinti temą ar kūną per set_subject() ir set_body():
message.set_subject("Revised: Quarterly Status Update");
message.set_body("Updated body text.");3 žingsnis – Sustabdykite siuntėjo savybes
Naudojimas set_sender_name() ir set_sender_email_address() Pateikiamas siuntėjas.lt Adresų tipas yra SMTP išmatuojamas; perkelti jį su set_sender_address_type() Jei Reikalingi :
message.set_sender_name("Build Agent");
message.set_sender_email_address("build.agent@example.com");4 žingsnis – pridėti receptorius
add_recipient() siunčiamas pranešimas, kuris skambina vieną kartą per gavėją:
message.add_recipient("alice@example.com", "Alice Example");
message.add_recipient("bob@example.com", "Bob Example");5 žingsnis – sukurkite HTML kūną
Naudojimas set_html_body() HTML versijos įrašymas pranešimo kūno. abiejų plokščių tekstas ir HTML kūnai gali bendrauti; el. pašto klientai pasirenka turtingesnį 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>");6 žingsnis – išsaugoti MSG
save() siurblys pranešimą į Outlook MSG formatu. paspauskite std::filesystem::path rašyti tiesiai į diską, o std::ostream per srovės išleidimą arba skambinti su ne argumentas, kad gautų A 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 žingsnis – išsaugoti EML
Naudojimas save_to_eml() RFC 5322 / MIME failą gaminti vietoj MSG. perkraunamieji (path, stream arba bytai) yra prieinami:
#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"));
}Bendros problemos ir fiksacijos
Pranešimas išsaugotas, bet „Outlook“ rodo užkandžius tekstus. Įsitikinkite, kad žinutė yra sukurta su Unicode string palaikymas. mapi_message::create() Unicode juostų įdiegimas pagal numatytuosius. Jei reikia priversti ANSI kodavimą ( retai būtinas), eikite į false Kaip trečioji Argumentai yra: mapi_message::create(subject, body, false).
save() Šaltinis yra tuščias arba korumpuotas. Visada atviri išleidimo srautai su std::ios::binary.Teksto režimo srautai verčia naujienas „Windows“, iškraipydami Dvejetainis CFB struktūra.
Priėmėjai, kurie neatsiranda „To/Cc“ lauke programoje Outlook. Žmogusadd_recipient() Addis į MAPI gavėjų lentelėje. papildomai nustatykite display_to MAPI Nuosavybės per set_property() su common_message_property_id::display_to ir property_type_code::ptyp_string „Outlook“ rodo pavadinimus antraštėje.
HTML kūnas nėra atnaujintas. patvirtinkite, kad HTML juostelė yra gerai suformuota su atvirumu ir Uždarymas <html><body> Taip pat patikrinti, kad gaunamas klientas palaiko HTML el. Laišką; kai kurie Mažieji klientai pateikia tik aiškų tekstą.
set_internet_message_id() Jis neturi poveikio. Žmogusset_internet_message_id() Įveskite į MAPI internetinis pranešimo ID naudojamas šifravimui. ši nuosavybė yra atvirkštinė ir nereikalinga Įvertinti galiojančią MSG failą.
Dažnai užduodami klausimai
Koks yra paprasčiausias būdas sukurti MSG failą?
#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);
}Ar galiu sukurti pranešimą, kuriame yra tik HTML kūnas ir nėra plokščių tekstų kūno?
Taip, skambinkite mapi_message::create(subject, "") kad plokščių tekstas kūno tuščia, tada Kvietimas set_html_body() Įveskite HTML turinį.
Kaip nustatyti pranešimo klasę?
Naudojimas set_message_class() MAPI žinutės klasės juostą, pavyzdžiui, "IPM.Note" Norėdami gauti standartinį el. Laišką:
message.set_message_class("IPM.Note");Ar galiu nustatyti Interneto pranešimo ID, kad būtų galima ištrinti?
Taip, skambinkite set_internet_message_id() RFC 2822 formatu žinutės ID juostelis:
message.set_internet_message_id("<msg-001@example.com>");Ar Unicode įjungtas pagal numatytuosius nustatymus?
Dviejų argumentų forma mapi_message::create(subject, body) Unicode įdiegimas Norėdami sukurti paveldėjimo ANSI pranešimą, eikite false Kaip trečioji argumentas.