שלח הודעות דואל של Outlook ב-C++

במאמר הקודם, ראית כיצד ליצור דוא"ל של MS Outlook כולל MSG, EML ו-EMLX באופן פרוגרמטי באמצעות C++. בפוסט זה, תלמד כיצד לשלוח הודעות דוא"ל של Outlook מתוך יישומי C++. ניתן ליצור את המיילים בזמן הריצה או לטעון מקבצי דוא"ל שכבר נשמרו כגון .msg, .emlx, או וכו'.

שלח אימיילים עם ספריית דוא"ל C++ - הורדה חינם

כמו כן, הפוסט הקודם, נשתמש ב-Aspose.Email for 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 Class
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 for C++ מספק מחלקה MailMessageCollection כדי להכיל מספר הודעות דוא"ל. להלן השלבים לשליחת מרבית המיילים.

  • צור או טען הודעות דואר אלקטרוני באמצעות המחלקה MailMessage.
  • צור אובייקט של המחלקה MailMessageCollection.
  • הוסף הודעות דואר אלקטרוני לאוסף באמצעות שיטת MailMessageCollection->add() .
  • צור אובייקט מהמחלקה SmtpClient.
  • שלח אימיילים בכמות גדולה באמצעות שיטת SmtpClient->Send(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 משתמש ב-Transport Neutral Encapsulation Format(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 באמצעות תיעוד.

ראה גם