إرسال رسائل البريد الإلكتروني لبرنامج Outlook في C++

في المقالة السابقة ، رأيت كيفية إنشاء رسائل بريد إلكتروني لبرنامج MS Outlook بما في ذلك MSG و EML و EMLX باستخدام C++ برمجيًا. في هذا المنشور ، ستتعلم كيفية إرسال رسائل بريد إلكتروني في Outlook من داخل تطبيقات C++. يمكن إنشاء رسائل البريد الإلكتروني في وقت التشغيل أو تحميلها من ملفات البريد الإلكتروني المحفوظة بالفعل مثل .msg أو .emlx أو إلخ.

إرسال رسائل البريد الإلكتروني باستخدام مكتبة البريد الإلكتروني C++ - تنزيل مجاني

وبالمثل المنشور السابق ، سنستخدم Aspose.Email لـ C++ لإرسال رسائل البريد الإلكتروني لبرنامج Outlook. يمكنك تنزيل ملفات المكتبة من قسم التنزيلات أو تثبيتها باستخدام NuGet.

إرسال رسائل البريد الإلكتروني لبرنامج Outlook باستخدام C++

فيما يلي خطوات إرسال بريد إلكتروني في Outlook مع عميل SMTP باستخدام Aspose.Email لـ C++.

  • أنشئ بريدًا إلكترونيًا في Outlook أو حمله من ملف باستخدام فئة MailMessage.
  • قم بإنشاء كائن من SmtpClient.
  • قم بتعيين المضيف واسم المستخدم وكلمة المرور ورقم المنفذ.
  • اضبط خيارات الأمان.
  • أرسل بريدًا إلكترونيًا باستخدام SmtpClient-> Send().

يوضح نموذج التعليمات البرمجية التالي كيفية إرسال بريد إلكتروني في Outlook باستخدام C++.

// إنشاء مثيل جديد لفئة MailMessage
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>();

// تعيين موضوع الرسالة ونص Html ومعلومات المرسل
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 وإضافة مستلمي 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));

// حدد خادم مضيف البريد واسم المستخدم وكلمة المرور والمنفذ رقم وخيار الأمان
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
{
	// أرسل هذه الرسالة
	client->Send(message);
}
catch (System::Exception& ex)
{

}

C++ إرسال رسائل بريد إلكتروني في Outlook مع طريقة العرض البديلة

يمكنك أيضًا تحديد طريقة عرض بديلة للبريد الإلكتروني لإنشاء نسخة من الرسالة بتنسيق مختلف. على سبيل المثال ، إذا كانت رسالتك بتنسيق HTML ، فيمكنك إنشاء طريقة عرض بديلة تحتوي على نص عادي. من أجل إنشاء طريقة عرض بديلة ، يمكنك استخدام طريقة MailMessage-> getAlternateViews() -> Add (AlternateView :: CreateAlternateViewFromString (u “text”)).

يوضح نموذج التعليمات البرمجية التالي كيفية إرسال بريد إلكتروني باستخدام طريقة عرض بديلة باستخدام C++.

// قم بإنشاء مثيل لفئة MailMessage
System::SharedPtr<MailMessage> message = System::MakeObject<MailMessage>();

// من و الى الميدان
message->set_From(u"sender@sender.com");
message->get_To()->Add(u"receiver@receiver.com");

System::SharedPtr<AlternateView> alternate;

// قم بإنشاء مثيل AlternateView لعرض رسالة بريد إلكتروني باستخدام المحتوى المحدد في السلسلة
alternate = AlternateView::CreateAlternateViewFromString(u"This is the alternate Text");

// أضف نصًا بديلًا
message->get_AlternateViews()->Add(alternate);

// قم بإنشاء مثيل لفئة SmtpClient
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>();

// حدد خادم مضيف البريد واسم المستخدم وكلمة مرور البريد والمنفذ رقم
client->set_Host(u"smtp.server.com");
client->set_Username(u"Username");
client->set_Password(u"Password");
client->set_Port(25);
try
{
	// العميل-> إرسال سيرسل هذه الرسالة
	client->Send(message);
}
catch (System::Exception& ex)
{
	System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
}

إرسال رسائل بريد إلكتروني مجمعة باستخدام C++

قد تكون هناك حالة عندما تحتاج إلى إرسال مجموعة كبيرة من رسائل البريد الإلكتروني في وقت واحد. في مثل هذه الحالات ، يوفر Aspose.Email لـ C++ فئة MailMessageCollection لتغليف رسائل بريد إلكتروني متعددة. فيما يلي خطوات لإرسال الجزء الأكبر من رسائل البريد الإلكتروني.

  • قم بإنشاء أو تحميل رسائل البريد الإلكتروني باستخدام فئة MailMessage.
  • قم بإنشاء كائن من فئة MailMessageCollection.
  • أضف رسائل بريد إلكتروني إلى المجموعة باستخدام MailMessageCollection-> add() طريقة.
  • قم بإنشاء كائن من فئة SmtpClient.
  • إرسال رسائل بريد إلكتروني مجمعة باستخدام SmtpClient-> إرسال (MailMessageCollection) طريقة.

يوضح نموذج التعليمات البرمجية التالي كيفية إرسال الجزء الأكبر من رسائل البريد الإلكتروني باستخدام C++.

// قم بإنشاء SmtpClient كعميل وحدد الخادم والمنفذ واسم المستخدم وكلمة المرور
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>(u"mail.server.com", 25, u"Username", u"Password");

// إنشاء مثيلات لفئة MailMessage وتحديد إلى ومن والموضوع والرسالة
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
System::SharedPtr<MailMessageCollection> manyMsg = System::MakeObject<MailMessageCollection>();
manyMsg->Add(message1);
manyMsg->Add(message2);
manyMsg->Add(message3);

// إرسال بالجملة
try
{
	// إرسل رسائل
	client->Send(manyMsg); 
}
catch (System::Exception& ex)
{
	System::Diagnostics::Trace::WriteLine(System::ObjectExt::ToString(ex));
}

C++ إرسال رسائل بريد إلكتروني كـ TNEF

يستخدم MS Outlook تنسيق تغليف محايد للنقل(TNEF) لإرسال رسائل البريد الإلكتروني التي تحتوي على هيئات RTF. في هذه الحالة ، يتم استخراج التنسيق من البريد الإلكتروني ويتم ترميزه كـ TNEF. في الطرف المستلم ، إذا كان العميل يدعم TNEF ، فإنه يجمع النص العادي ومرفق TNEF لإنشاء بريد RTF الإلكتروني. خلاف ذلك ، يتم عرض البريد الإلكتروني كنص عادي. لإرسال رسائل البريد الإلكتروني كـ TNEF ، يمكنك استخدام طريقة SmtpClient-> setUseTnef (bool).

يُظهر نموذج التعليمات البرمجية التالي كيفية إرسال بريد إلكتروني في Outlook كـ TNEF باستخدام C++.

try
{
// مسار ملف البريد الإلكتروني
System::String emlFileName = u"Message.eml";
// بريد إلكتروني عبر TNEF

// تحميل من 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);
// استخدم هذه العلامة للإرسال كـ TNEF
client->Send(eml1); 
}
catch (System::Exception& ex)
{
// التقاط الاستثناء
}

استنتاج

في هذا المنشور ، رأيت كيفية إرسال رسائل بريد إلكتروني في Outlook باستخدام C++. بالإضافة إلى ذلك ، تعرفت على كيفية إرسال رسائل بريد إلكتروني مجمعة أو إرسال رسائل بريد إلكتروني باستخدام طريقة عرض بديلة أو إرسال رسائل بريد إلكتروني كـ TNEF ضمن تطبيقات C++. يمكنك استكشاف المزيد حول مكتبة البريد الإلكتروني C++ الخاصة بـ Aspose باستخدام التوثيق.

أنظر أيضا