C++でメールメッセージを作成する方法

C++でメールメッセージを作成する方法

Aspose.Email FOSS for C++ lets you compose fully structured Outlook MSG files in code 使用する mapi_message::create().テーマ、平文、HTMLの体を設定できます。, 送信アイデンティティ、受信者、および単一の通話でMSGまたはEMLに結果を保存する - 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 - 送信者属性の設定

使用する 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() 受信者をメッセージに追加します.受領者ごとに1回呼び出し:

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 流出のための、またはノーで呼び出すために 受け取る理由 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 - EML に保存する

使用する save_to_eml() 同じ3つのMSG代わりにRFC 5322 / MIMEファイルを生成するために。 過剰充電(パス、ストリーム、またはバイト)は以下の通りです。:

#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 はスイッチテキストを表示します。. メッセージが作成されたことを確認する。 ユニコードストリートサポート. mapi_message::create() ユニコードのストレッチをデフォルトで有効にします。. ANSI コードを強制する必要がある場合(稀に必要な場合)、通過してください。 false 第三のよう 論点: mapi_message::create(subject, body, false).

save() 流出は空っぽか腐敗している。. 常にオープン出力ストリームを提供する。 std::ios::binary.テキストモードの流れは、Windowsでニュースを翻訳し、文法を腐敗させます。 バイナリーCFB構造.

Outlook の To/Cc フィールドに表示されていない受信者。. ☆☆ ♪add_recipient() 添加物 受信者を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 インターネットメッセージ ID は、トレードに使用されます. この属性はオプションであり、必要ありません。 正確な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 形式のメッセージ ID ストリップを使用する:

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

ユニコードはデフォルトで有効ですか?

二つの論理の形態は、 mapi_message::create(subject, body) ユニコードを可能にする ストレッチ. 遺産 ANSI メッセージを作成するには、通過します。 false 第三の議論として。.

見ることも

 日本語