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.gitadd_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.