C++'da E-posta Nasıl Oluşturulur

C++'da E-posta Nasıl Oluşturulur

Aspose.Email FOSS for C++ lets you compose fully structured Outlook MSG files in code kullanmak mapi_message::create().Konu, basit metin ve HTML vücutları ayarlayabilirsiniz., Gönderilen mesajın, gönderilen e-posta adresinin ve bir tek arama ile MSG veya EML’e kaydedilmesi - Outlook yükleme gerektirmez.

1. Adım - Projeyi Kurun

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)

Adım 2 – Mesaj Oluşturun ve Konu ve Vücut Kurulayın

mapi_message::create() Konu ve Basit Metin Vücudu Yapımcı olarak kabul edilir. Argümanlar :

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

Kurulduktan sonra, konu veya vücut da güncelleyebilirsiniz. set_subject() ve set_body():

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

Adım 3 - Gönderme Özellikleri

kullanmak set_sender_name() ve set_sender_email_address() Göndericinin kimliğini belirlemek için; Adres türü SMTP İndirimli; Üzerine Düşük set_sender_address_type() Eğer Gerekli :

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

Adım 4 - Alıcılar ekleyin

add_recipient() Bir mesajı bir alıcıya ekler. Alıcının başına bir kez arayın:

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

5. Adım: HTML Body Kurulumu

kullanmak set_html_body() Mesajın HTML versiyonunu saklamak için. her iki basit metin de HTML ve organlar birlikte var olabilir; e-posta istemcileri daha zengin biçimi seçer:

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

Adım 6 - Kaydetme

save() Outlook MSG formatına mesajı serialize eder. std::filesystem::path Diskten yazmak için, bir std::ostream Akış çıkışı için veya hayır ile aramaya A’yı almak için argumentlar 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. Adım - Kapatmak için

kullanmak save_to_eml() 3222 sayılı Kanun’u değiştirmek üzere, bu kanunun uygulanması için; Overloads (path, stream veya bytes) mevcuttur:

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

Yaygın Sorunlar ve Çözümler

Mesaj kaydedildi ancak Outlook bozuk metin gösterir. Mesajın oluşturulması için Unicode String Desteği. mapi_message::create() Unicode şeritleri varsayılan olarak etkinleştirilir. ANSI kodlamayı zorlamak gerekiyorsa ( nadiren gerekli), geçin false Üçüncü olarak argüman : mapi_message::create(subject, body, false).

save() Akış çıkışı boş veya bozuk. Her zaman açık çıkış akışı ile std::ios::binary.Metin modları akışları, Windows’ta haber sitelerini tercüme eder ve bu da CFB Binary Structure ile ilgili olarak.

Outlook’ta To/Cc alanında görünmeyen alıcılar. İÇİNadd_recipient() ekleme Tabi ki, bu tabloya da bir örnek verelim. display_to MAPI mülk yoluyla set_property() ile common_message_property_id::display_to ve property_type_code::ptyp_string Outlook, başlıkta isimler gösterir.

HTML kodları kullanılmamaktadır. HTML şeritinin açık ve iyi biçimlendirilmesinden emin olun. Kapatma <html><body> Ayrıca, alıcı istemci HTML e-posta desteği; bazıları Minimum müşteri sadece açık metin yapar.

set_internet_message_id() Hiç bir etkisi yok. İÇİNset_internet_message_id() ayarlayın MAPI internet mesajı kimliği, ifşa için kullanılır. bu özellik seçmeli ve gerekli değildir Bir dosya için geçerli.

Sık Sorulan Sorular

Bir dosya oluşturmanın en kolay yolu nedir?

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

Sadece HTML vücut ve basit metin vücuduyla bir mesaj oluşturabilir miyim?

Evet - Çağrı mapi_message::create(subject, "") Basit metin vücudunu boş bırakmak, sonra Çağrı set_html_body() HTML içeriğini ayarlamak için.

Mesaj Sınıfı Nasıl Kurulur?

kullanmak set_message_class() MAPI mesaj sınıfı diziniyle, örneğin "IPM.Note" Standart bir e-posta mesajı için:

message.set_message_class("IPM.Note");

Internet Message-ID’yi threading için ayarlayabilir miyim?

Evet - Çağrı set_internet_message_id() 2822-Sınıfı İletişim Bilgileri:

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

Unicode varsayılan olarak etkinleştirilmiş mi?

Evet, iki argüman biçimi mapi_message::create(subject, body) Unicode Kullanımı Anasayfa > Haberler > ANSI mesajı oluşturmak için, geçin false Üçüncü argüman olarak.

Bu da

 Türkçe