Kirim Email Outlook dalam C++

Di artikel sebelumnya, Anda telah melihat cara membuat email MS Outlook termasuk MSG, EML, dan EMLX secara terprogram menggunakan C++. Dalam posting ini, Anda akan belajar cara mengirim email Outlook dari dalam aplikasi C++. Email dapat dibuat saat runtime atau diambil dari file email yang sudah disimpan seperti .msg, .emlx, atau lainnya.

Kirim Email dengan Perpustakaan Email C++ - Unduhan Gratis

Demikian juga posting sebelumnya, kami akan menggunakan Aspose.Email for C++ untuk mengirim email Outlook. Anda dapat mendownload file library dari bagian Downloads atau menginstalnya menggunakan NuGet.

Kirim Email Outlook menggunakan C++

Berikut ini adalah langkah-langkah mengirim email Outlook dengan klien SMTP menggunakan Aspose.Email for C++.

  • Buat email Outlook atau muat dari file menggunakan kelas MailMessage.
  • Buat objek SmtpClient.
  • Tetapkan host, nama pengguna, kata sandi, dan nomor port.
  • Tetapkan opsi keamanan.
  • Kirim email menggunakan metode SmtpClient->Send().

Contoh kode berikut menunjukkan cara mengirim email Outlook menggunakan C++.

// Buat instance baru dari kelas MailMessage
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>();

// Tetapkan subjek pesan, badan HTML, dan informasi pengirim
message->set_Subject(u"New message created by Aspose.Email for .NET");
message->set_From(System::MakeObject<MailAddress>(L"from@domain.com", L"Sender Name", false));
message->set_Body(System::String(u"<b>This line is in bold.</b> <br/> <br/>") + u"<font color=blue>This line is in blue color</font>");
message->set_BodyEncoding(System::Text::Encoding::get_ASCII());
// Tambahkan KE penerima dan Tambahkan penerima CC
message->get_To()->Add(System::MakeObject<MailAddress>(L"to1@domain.com", L"Recipient 1", false));
message->get_To()->Add(System::MakeObject<MailAddress>(L"to2@domain.com", L"Recipient 2", false));
message->get_CC()->Add(System::MakeObject<MailAddress>(L"cc1@domain.com", L"Recipient 3", false));

// Tentukan server host surat Anda, Nama Pengguna, Kata Sandi, Port # dan opsi Keamanan
client->set_Host(u"mail.server.com");
client->set_Username(u"username");
client->set_Password(u"password");
client->set_Port(587);
client->set_SecurityOptions(Aspose::Email::Clients::SecurityOptions::SSLExplicit);

try
{
	// Kirim pesan ini
	client->Send(message);
}
catch (System::Exception& ex)
{

}

C++ Kirim Email Outlook dengan Tampilan Alternatif

Anda juga dapat menentukan tampilan email alternatif untuk membuat salinan pesan dalam format berbeda. Misalnya, jika pesan Anda dalam format HTML, Anda dapat membuat tampilan alternatif dengan teks biasa. Untuk membuat tampilan alternatif, Anda dapat menggunakan metode MailMessage->getAlternateViews()->Add(AlternateView::CreateAlternateViewFromString(u"text")).

Contoh kode berikut menunjukkan cara mengirim email dengan tampilan alternatif menggunakan C++.

// Buat instance kelas MailMessage
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();

// Dari dan Ke lapangan
message->set_From(u"sender@sender.com");
message->get_To()->Add(u"receiver@receiver.com");

System::SharedPtr<AlternateView> alternate;

// Buat instance AlternateView untuk melihat pesan email menggunakan konten yang ditentukan dalam string
alternate = AlternateView::CreateAlternateViewFromString(u"This is the alternate Text");

// Tambahkan teks alternatif
message->get_AlternateViews()->Add(alternate);

// Buat instance Kelas SmtpClient
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>();

// Tentukan server host surat Anda, nama pengguna, kata sandi email, dan Port #
client->set_Host(u"smtp.server.com");
client->set_Username(u"Username");
client->set_Password(u"Password");
client->set_Port(25);
try
{
	// Klien->Kirim akan mengirim pesan ini
	client->Send(message);
}
catch (System::Exception& ex)
{
	System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
}

Kirim Email Massal menggunakan C++

Mungkin ada kasus ketika Anda perlu mengirim banyak email sekaligus. Untuk kasus seperti itu, Aspose.Email for C++ menyediakan kelas MailMessageCollection untuk mengenkapsulasi beberapa pesan email. Berikut ini adalah langkah-langkah untuk mengirim email massal.

  • Buat atau muat pesan email menggunakan kelas MailMessage.
  • Buat objek dari kelas MailMessageCollection.
  • Tambahkan pesan email ke koleksi menggunakan metode MailMessageCollection->add().
  • Buat objek dari kelas SmtpClient.
  • Kirim email massal menggunakan metode SmtpClient->Send(MailMessageCollection).

Contoh kode berikut menunjukkan cara mengirim email dalam jumlah besar menggunakan C++.

// Buat SmtpClient sebagai klien dan tentukan server, port, nama pengguna, dan kata sandi
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>(u"mail.server.com", 25, u"Username", u"Password");

// Buat instance kelas MailMessage dan Tentukan Ke, Dari, Subjek, dan Pesan
System::SharedPtr<MailMessage> message1 = System::MakeObject<MailMessage>(u"msg1@from.com", u"msg1@to.com", u"Subject1", u"message1, how are you?");
System::SharedPtr<MailMessage> message2 = System::MakeObject<MailMessage>(u"msg1@from.com", u"msg2@to.com", u"Subject2", u"message2, how are you?");
System::SharedPtr<MailMessage> message3 = System::MakeObject<MailMessage>(u"msg1@from.com", u"msg3@to.com", u"Subject3", u"message3, how are you?");

// Buat instance kelas MailMessageCollection
System::SharedPtr<MailMessageCollection> manyMsg = System::MakeObject<MailMessageCollection>();
manyMsg->Add(message1);
manyMsg->Add(message2);
manyMsg->Add(message3);

// Kirim massal
try
{
	// Kirim pesan
	client->Send(manyMsg); 
}
catch (System::Exception& ex)
{
	System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
}

C++ Kirim Email sebagai TNEF

MS Outlook menggunakan Transport Neutral Encapsulation Format (TNEF) untuk mengirim email yang memiliki badan RTF. Dalam hal ini, pemformatan diekstraksi dari email dan dikodekan sebagai TNEF. Di pihak penerima, jika klien mendukung TNEF, ia mengumpulkan teks biasa dan lampiran TNEF untuk membuat email RTF. Jika tidak, email ditampilkan sebagai teks biasa. Untuk mengirim email sebagai TNEF, Anda dapat menggunakan metode SmtpClient->setUseTnef(bool).

Contoh kode berikut menunjukkan cara mengirim email Outlook sebagai TNEF menggunakan C++.

try
{
// Jalur file email
System::String emlFileName = u"Message.eml";
// Email TNEF

// Muat dari eml
System::SharedPtr<MailMessage> eml1 = MailMessage::Load(emlFileName, System::MakeObject<EmlLoadOptions>());
eml1->set_From(u"somename@gmail.com");
eml1->get_To()->Clear();
eml1->get_To()->Add(System::MakeObject<MailAddress>(u"first.last@test.com"));
eml1->set_Subject(u"With PreserveTnef flag during loading");
eml1->set_Date(System::DateTime::get_Now());
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>(u"smtp.gmail.com", 587, u"somename", u"password");
client->set_SecurityOptions(Aspose::Email::Clients::SecurityOptions::Auto);
client->set_UseTnef(true);
// Gunakan bendera ini untuk mengirim sebagai TNEF
client->Send(eml1); 
}
catch (System::Exception& ex)
{
// menangkap pengecualian
}

Kesimpulan

Dalam posting ini, Anda telah melihat cara mengirim email Outlook menggunakan C++. Selain itu, Anda telah mengetahui cara mengirim email massal, mengirim email dengan tampilan alternatif, atau mengirim email sebagai TNEF dalam aplikasi C++. Anda dapat menjelajahi lebih lanjut tentang pustaka email C++ Aspose menggunakan dokumentasi.

Lihat juga