ایمیل های Outlook را در C++ ارسال کنید

در مقاله قبلی، نحوه ایجاد ایمیل‌های MS Outlook از جمله MSG، EML و EMLX را به‌صورت برنامه‌نویسی با استفاده از C++ مشاهده کرده‌اید. در این پست، نحوه ارسال ایمیل های Outlook را از داخل برنامه های ++C یاد خواهید گرفت. ایمیل ها را می توان در زمان اجرا ایجاد کرد یا از فایل های ایمیل از قبل ذخیره شده مانند msg.، emlx. یا غیره بارگیری کرد.

ارسال ایمیل با کتابخانه ایمیل ++C - دانلود رایگان

به همین ترتیب پست قبلی، از Aspose.Email برای C++ برای ارسال ایمیل‌های Outlook استفاده می‌کنیم. می‌توانید فایل‌های کتابخانه را از بخش Downloads دانلود کنید یا با استفاده از 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());
// به گیرندگان اضافه کنید و گیرندگان 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 این پیام را ارسال می کند
	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->Send(MailMessageCollection) ارسال کنید.

نمونه کد زیر نحوه ارسال انبوه ایمیل ها را با استفاده از C++ نشان می دهد.

// SmtpClient را به عنوان مشتری ایجاد کنید و سرور، پورت، نام کاربری و رمز عبور را مشخص کنید
System::SharedPtr<SmtpClient> client = System::MakeObject<SmtpClient>(u"mail.server.com", 25, u"Username", u"Password");

// نمونه هایی از کلاس MailMessage ایجاد کنید و To, From, Subject و Message را مشخص کنید
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 آشنا شده اید. می‌توانید با استفاده از مستندات درباره کتابخانه ایمیل ++ Aspose بیشتر کاوش کنید.

همچنین ببینید