Önceki makalede, C++ kullanarak programlı olarak MSG, EML ve EMLX dahil olmak üzere MS Outlook e-postalarının nasıl oluşturulacağını gördünüz. Bu gönderide, Outlook e-postalarını C++ uygulamalarından nasıl göndereceğinizi öğreneceksiniz. E-postalar çalışma zamanında oluşturulabilir veya .msg, .emlx vb. önceden kaydedilmiş e-posta dosyalarından yüklenebilir.
- C++ E-posta Kitaplığı
- C++ kullanarak Outlook E-postaları gönderin
- C++ kullanarak Alternatif Görünümle Outlook E-postaları Gönderme
- C++ kullanarak Toplu E-postalar Oluşturun ve Gönderin
- E-postaları C++ kullanarak TNEF olarak gönderin
C++ E-posta Kitaplığı ile E-posta Gönderin - Ücretsiz İndirin
Önceki gönderi gibi, Outlook e-postalarını göndermek için Aspose.Email for C++ kullanacağız. Kitaplık dosyalarını İndirilenler bölümünden indirebilir veya NuGet kullanarak yükleyebilirsiniz.
C++ kullanarak Outlook E-postaları gönderin
Aşağıda, Aspose.Email for C++ kullanarak SMTP istemcisi ile bir Outlook e-postası gönderme adımları yer almaktadır.
- MailMessage sınıfını kullanarak bir Outlook e-postası oluşturun veya bir dosyadan yükleyin.
- Bir SmtpClient nesnesi oluşturun.
- Ana bilgisayarı, kullanıcı adını, parolayı ve bağlantı noktası numarasını ayarlayın.
- Güvenlik seçeneklerini ayarlayın.
- SmtpClient->Send() yöntemini kullanarak e-posta gönderin.
Aşağıdaki kod örneği, C++ kullanarak bir Outlook e-postasının nasıl gönderileceğini gösterir.
// MailMessage sınıfının yeni bir örneğini oluşturun
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>();
// Mesajın konusunu, Html gövdesini ve gönderen bilgilerini ayarlayın
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());
// TO alıcıları ekleyin ve CC alıcıları ekleyin
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));
// Posta barındırma sunucunuzu, Kullanıcı Adınızı, Parolanızı, Bağlantı Noktası # ve Güvenlik seçeneğinizi belirtin
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
{
// bu mesajı gönder
client->Send(message);
}
catch (System::Exception& ex)
{
}
C++ Alternatif Görünümle Outlook E-postaları Gönderme
Mesajın farklı bir biçimde bir kopyasını oluşturmak için e-postanın alternatif bir görünümünü de belirleyebilirsiniz. Örneğin, mesajınız HTML formatındaysa, düz metne sahip alternatif bir görünüm oluşturabilirsiniz. Alternatif bir görünüm oluşturmak için MailMessage->getAlternateViews()->Add(AlternateView::CreateAlternateViewFromString(u"text")) yöntemini kullanabilirsiniz.
Aşağıdaki kod örneği, C++ kullanarak alternatif bir görünümle nasıl e-posta gönderileceğini gösterir.
// MailMessage sınıfının bir örneğini oluşturun
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();
// Kimden ve Kime alanı
message->set_From(u"sender@sender.com");
message->get_To()->Add(u"receiver@receiver.com");
System::SharedPtr<AlternateView> alternate;
// Dizede belirtilen içeriği kullanarak bir e-posta iletisini görüntülemek için bir AlternateView örneği oluşturun
alternate = AlternateView::CreateAlternateViewFromString(u"This is the alternate Text");
// Alternatif metin ekle
message->get_AlternateViews()->Add(alternate);
// Bir SmtpClient Sınıfı örneği oluşturun
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>();
// Posta barındırma sunucunuzu, kullanıcı adınızı, posta parolanızı ve Bağlantı Noktası numarasını belirtin
client->set_Host(u"smtp.server.com");
client->set_Username(u"Username");
client->set_Password(u"Password");
client->set_Port(25);
try
{
// Client->Send bu mesajı gönderecek
client->Send(message);
}
catch (System::Exception& ex)
{
System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
}
C++ kullanarak Toplu E-postalar Gönderin
Bir seferde çok sayıda e-posta göndermeniz gerektiğinde durum olabilir. Bu tür durumlar için Aspose.Email for C++, birden fazla e-posta mesajını kapsüllemek için MailMessageCollection sınıfını sağlar. Aşağıda, toplu e-postaları gönderme adımları verilmiştir.
- MailMessage sınıfını kullanarak e-posta mesajları oluşturun veya yükleyin.
- MailMessageCollection sınıfından bir nesne oluşturun.
- MailMessageCollection->add() yöntemini kullanarak koleksiyona e-posta mesajları ekleyin.
- SmtpClient sınıfından bir nesne oluşturun.
- SmtpClient->Send(MailMessageCollection) yöntemini kullanarak toplu e-postalar gönderin.
Aşağıdaki kod örneği, C++ kullanarak toplu e-postaların nasıl gönderileceğini gösterir.
// İstemci olarak SmtpClient oluşturun ve sunucu, bağlantı noktası, kullanıcı adı ve parolayı belirtin
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>(u"mail.server.com", 25, u"Username", u"Password");
// MailMessage sınıfının örneklerini oluşturun ve Kime, Kimden, Konu ve Mesajı Belirtin
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?");
// MailMessageCollection sınıfının bir örneğini oluşturun
System::SharedPtr<MailMessageCollection> manyMsg = System::MakeObject<MailMessageCollection>();
manyMsg->Add(message1);
manyMsg->Add(message2);
manyMsg->Add(message3);
// toplu gönderme
try
{
// Mesaj yolla
client->Send(manyMsg);
}
catch (System::Exception& ex)
{
System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
}
C++ E-postaları TNEF Olarak Gönderin
MS Outlook, RTF gövdelerine sahip e-postaları göndermek için Transport Neutral Encapsulation Format (TNEF) kullanır. Bu durumda biçimlendirme e-postadan çıkarılır ve TNEF olarak kodlanır. Alıcı tarafta, istemci TNEF’i destekliyorsa, RTF e-postasını oluşturmak için düz metin ile TNEF ekini bir araya getirir. Aksi takdirde, e-posta düz metin olarak görüntülenir. E-postaları TNEF olarak göndermek için SmtpClient->setUseTnef(bool) yöntemini kullanabilirsiniz.
Aşağıdaki kod örneği, C++ kullanarak bir Outlook e-postasının TNEF olarak nasıl gönderileceğini gösterir.
try
{
// E-posta dosya yolu
System::String emlFileName = u"Message.eml";
// Bir TNEF E-postası
// eml'den yükle
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);
// TNEF olarak göndermek için bu bayrağı kullanın
client->Send(eml1);
}
catch (System::Exception& ex)
{
// istisna yakalamak
}
Çözüm
Bu gönderide, C++ kullanarak Outlook e-postalarının nasıl gönderileceğini gördünüz. Ek olarak, C++ uygulamalarında toplu e-posta göndermeyi, alternatif bir görünümle e-posta göndermeyi veya TNEF olarak e-posta göndermeyi öğrendiniz. Belgeleri kullanarak Aspose’un C++ e-posta kitaplığı hakkında daha fazlasını keşfedebilirsiniz.