วิธีบันทึกข้อความอีเมลใน C++

ในบทช่วยสอนนี้ เราจะเรียนรู้วิธี บันทึก Email ข้อความใน C+ คุณจะได้สังเกตวิธีเชื่อมต่อกับกล่องจดหมายของคุณโดยใช้ไคลเอนต์ Exchange เพื่อดึงและบันทึกอีเมลจากกล่องจดหมายโดยใช้การเรียก API อย่างง่ายใน C++

ขั้นตอนในการบันทึกข้อความอีเมลใน C++

  1. ติดตั้ง Aspose.Email for C++ จาก NuGet package Manager Tool
  2. รวมการอ้างอิงถึงเนมสเปซ Aspose::Email
  3. เชื่อมต่อกับกล่องจดหมาย Exchange โดยระบุข้อมูลรับรองในเมธอด EWSClient.GetEWSClient()
  4. ทำซ้ำผ่านแต่ละอีเมลใน ExchangeMessageInfoCollection ของกล่องจดหมาย
  5. บันทึกข้อความในรูปแบบ EML และ MSG บนดิสก์โดยใช้ C++

คุณสามารถ บันทึกอีเมลลงดิสก์ใน C++ โดยใช้โค้ดไม่กี่บรรทัด คุณเพียงแค่ต้องเชื่อมต่อกับกล่องจดหมายของคุณโดยใช้ EWSClient และเข้าถึงการรวบรวมข้อความ จากนั้นคุณสามารถบันทึกข้อความอีเมลในรูปแบบ EML หรือรูปแบบ MSG บนดิสก์โดยใช้รหัสอย่างง่ายในภาษา C++

รหัสเพื่อบันทึกข้อความอีเมลใน C ++

#pragma once
#include <Tools/Search/StringComparisonField.h>
#include <Tools/Search/MailQuery.h>
#include <Tools/Search/BoolComparisonField.h>
#include <system/string.h>
#include <system/shared_ptr.h>
#include <stdio.h>
#include <system/object.h>
#include <Clients/Exchange/WebService/EWSClient/IEWSClient.h>
#include <Clients/Exchange/WebService/EWSClient/EWSClient.h>
#include <MailAddress.h>
#include <MailAddressCollection.h>
#include <MailAddress.h>
#include <Clients/Exchange/ExchangeMessageInfoCollection.h>
#include <Clients/Exchange/ExchangeMailboxInfo.h>
#include <system/console.h>
#include <system/environment.h>
#include <system/object_ext.h>
#include <Licensing/License.h>
using namespace Aspose::Email;
using namespace Aspose::Email::Clients::Exchange;
using namespace Aspose::Email::Clients::Exchange::WebService;
using namespace System;
void SaveEmailFromEWS()
{
// Set the license for Aspose.Email for CPP
SharedPtr<License> license = System::MakeObject<License>();
license->SetLicense(u"licFile");
// EWS Client Credentials
const System::String mailboxUri = u"https://outlook.office365.com/ews/exchange.asmx";
const System::String username = u"username";
const System::String password = u"password";
const System::String domain = u"domain";
try
{
// Connect to EWS
System::SharedPtr<IEWSClient> client = EWSClient::GetEWSClient(mailboxUri, username, password, domain);
// Get mailbox
System::SharedPtr<ExchangeMailboxInfo> MailBoxInfo = client->GetMailboxInfo();
// Get list of all messages from the mail box
System::SharedPtr< ExchangeMessageInfoCollection> MessagesCollection =
client->ListMessages(client->GetMailboxInfo()->get_InboxUri());
//Loop through email messages
int MessageCount = 1;
for(System::SharedPtr <ExchangeMessageInfo> MessageInfo : MessagesCollection)
{
System::String strMessageURI = MessageInfo->get_UniqueUri();
// Access message details
System::Console::Write(System::Environment::get_NewLine() +
System::ObjectExt::ToString(u"Subject: " + MessageInfo->get_Subject()));
System::Console::Write(System::Environment::get_NewLine() +
System::ObjectExt::ToString(u"From: " + System::ObjectExt::ToString(MessageInfo->get_From())));
System::Console::Write(System::Environment::get_NewLine() +
System::ObjectExt::ToString(u"To: " + System::ObjectExt::ToString(MessageInfo->get_To())));
System::Console::Write(System::Environment::get_NewLine() +
System::ObjectExt::ToString(u"Message ID: " + MessageInfo->get_MessageId()));
System::Console::Write(System::Environment::get_NewLine() +
System::ObjectExt::ToString(u"Unique URI: " + MessageInfo->get_UniqueUri()));
// Save each message on disk in EML and MSG formats
System::String MessageStr = u"Messsage_"+MessageCount;
client->SaveMessage(strMessageURI, MessageStr + u".eml");
client->SaveMessage(strMessageURI, MessageStr + u".msg");
MessageCount++;
}
}
catch (System::Exception ex)
{
System::Console::Write(System::Environment::get_NewLine() + System::ObjectExt::ToString(ex));
}
}

ก่อนหน้านี้ เราได้เรียนรู้เกี่ยวกับ วิธีการส่งอีเมลใน C++ ในหัวข้อนี้ เราได้เรียนรู้วิธีเชื่อมต่อกับกล่องจดหมายโดยใช้ไคลเอนต์ Exchange และ บันทึกข้อความอีเมลลงดิสก์ใน C++

 ไทย