در این وبلاگ، نحوه ایجاد پیام های ایمیل Outlook (از جمله MSG، EML، EMLX، یا MHTML) را در سی شارپ یاد خواهید گرفت. همچنین، نحوه ارسال ایمیل ها به صورت همزمان یا ناهمزمان با استفاده از C# در NET یا .NET Core را نشان خواهیم داد.
ایمیل به منبع اصلی مبادله پیام ها و به اشتراک گذاری محتوا مانند اسناد، تصاویر یا انواع دیگر فایل ها تبدیل شده است. فراوانی استفاده از ایمیلها در سیستمهای آنلاین برای اشتراکگذاری اعلانها یا اسناد مهم با چندین نهاد بیشتر است. در چنین مواردی، تهیه یک الگو و ارسال ایمیل به چند ذینفع به صورت دستی میتواند کاری زمانبر و پیچیده باشد.
در اینجا نیاز به یک سرویس اتوماسیون ایمیل احساس می شود که با استفاده از آن می توانید ایمیل ها را به صورت یکپارچه ایجاد و ارسال کنید. بنابراین در این مقاله قصد دارم نحوه ایجاد پیام های ایمیل با فرمت های محبوب Outlook و خودکارسازی فرآیند ارسال ایمیل ها به صورت برنامه ای را به شما آموزش دهم. پس از مطالعه این مقاله، شما قادر خواهید بود:
- ایجاد و ذخیره یک پیام ایمیل در سی شارپ،
- ایجاد یک ایمیل با بدنه HTML در سی شارپ،
- ایجاد یک ایمیل با کدگذاری خاص در سی شارپ،
- ارسال ایمیل به صورت همزمان با استفاده از SMTP در سی شارپ،
- ارسال ایمیل به صورت ناهمزمان با استفاده از SMTP در سی شارپ،
- و ایمیل های انبوه را در سی شارپ ارسال کنید.
C# API برای ایجاد و ارسال ایمیل های Outlook
به منظور خودکارسازی فرآیند ایجاد و ارسال پیامهای ایمیل، از Aspose.Email for .NET استفاده خواهیم کرد که یک API قدرتمند برای دستکاری و پردازش ایمیل است. از فرمتهای ایمیل محبوب از جمله پیامهای MS Outlook مانند MSG، EML/EMLX و غیره پشتیبانی میکند. میتوانید مستقیماً DLL API را دانلود کنید یا آن را از طریق NuGet Package Manager یا Package Manager Console در Visual Studio نصب کنید. .
PM> Install-Package Aspose.Email
پس از ایجاد یک برنامه C# (کنسول، ASP.NET و غیره) و نصب Aspose.Email برای دات نت، می توانید شروع به ایجاد و ارسال ایمیل ها در سی شارپ کنید.
ایجاد ایمیل Outlook در سی شارپ
به منظور ایجاد یا دستکاری پیامهای ایمیل Outlook، Aspose.Email کلاس MailMessage را ارائه میکند. این کلاس به شما امکان می دهد تمام ویژگی های یک پیام ایمیل (موضوع، به، از و بدنه) را تنظیم کنید، پیوست ها را اضافه کنید و پیام را در قالب های ایمیل مختلف مانند EML، MSG، MHTML و غیره ذخیره کنید. مراحل زیر برای ایجاد آمده است. یک پیام ایمیل:
- یک نمونه از کلاس MailMessage ایجاد کنید.
- ویژگی های پیام را تنظیم کنید.
- پیام ایمیل را با استفاده از روش MailMessage.Save () ذخیره کنید.
نمونه کد زیر نحوه ایجاد و ذخیره یک پیام ایمیل در سی شارپ را نشان می دهد.
// یک نمونه جدید از کلاس MailMessage ایجاد کنید
MailMessage message = new MailMessage();
// موضوع پیام، بدنه و اطلاعات فرستنده را تنظیم کنید
message.Subject = "New message created by Aspose.Email for .NET";
message.Body = "This is the body of the email.";
message.From = new MailAddress("from@domain.com", "Sender Name", false);
// افزودن به گیرندگان و گیرندگان CC
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));
// افزودن پیوست ها
message.Attachments.Add(new Attachment("word.docx"));
// پیام را در فرمت های EML، EMLX، MSG و MHTML ذخیره کنید
message.Save("EmailMessage.eml", SaveOptions.DefaultEml);
message.Save("EmailMessage.emlx", SaveOptions.CreateSaveOptions(MailMessageSaveType.EmlxFormat));
message.Save("EmailMessage.msg", SaveOptions.DefaultMsgUnicode);
message.Save("EmailMessage.mhtml", SaveOptions.DefaultMhtml);
ایجاد ایمیل Outlook با HTML Body در سی شارپ
تگهای HTML برای ساختارمندتر، قابل ارائه و غنیتر کردن بدنه ایمیل با عناصر مختلف مانند جداول، تصاویر، فهرستها و غیره استفاده میشوند. در صورتی که می خواهید ایمیلی با متن HTML ایجاد کنید، می توانید از ویژگی MailMessage.HtmlBody استفاده کنید. نمونه کد زیر نحوه ایجاد ایمیل Outlook با بدنه HTML در سی شارپ را نشان می دهد.
// یک نمونه جدید از کلاس MailMessage ایجاد کنید
MailMessage message = new MailMessage();
// موضوع پیام، متن Html و اطلاعات فرستنده را تنظیم کنید
message.Subject = "New message created by Aspose.Email for .NET";
message.HtmlBody = "<b>This line is in bold.</b> <br/> <br/>" + "<font color=blue>This line is in blue color</font>";
message.From = new MailAddress("from@domain.com", "Sender Name", false);
// افزودن به گیرندگان و گیرندگان CC
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));
// پیام را در قالب EML/EMLX/MSG/MHTML ذخیره کنید
message.Save("EmailMessage.eml", SaveOptions.DefaultEml);
C# یک ایمیل Outlook با رمزگذاری خاص ایجاد کنید
همچنین می توانید استاندارد رمزگذاری مورد نظر خود را مشخص کنید تا به مرورگر یا برنامه ایمیل در مورد نحوه تفسیر کاراکترهای موجود در متن ایمیل بگویید. برای این منظور از ویژگی MailMessage.BodyEncoding استفاده می شود. نمونه کد زیر نحوه تنظیم کدگذاری بدنه هنگام ایجاد ایمیل Outlook با استفاده از C# را نشان می دهد.
// یک نمونه جدید از کلاس MailMessage ایجاد کنید
MailMessage message = new MailMessage();
// موضوع پیام، متن Html، اطلاعات فرستنده و گیرنده را تنظیم کنید
message.Subject = "New message created by Aspose.Email for .NET";
message.HtmlBody = "<b>This line is in bold.</b> <br/> <br/>" + "<font color=blue>This line is in blue color</font>";
message.From = new MailAddress("from@domain.com", "Sender Name", false);
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
// رمزگذاری را مشخص کنید
message.BodyEncoding = Encoding.ASCII;
// پیام را در قالب EML/EMLX/MSG/MHTML ذخیره کنید
message.Save("EmailMessage.msg", SaveOptions.DefaultMsgUnicode);
ارسال ایمیل های Outlook به صورت همزمان یا ناهمزمان در سی شارپ
اکنون، پس از ایجاد پیام ایمیل، می توانید آن را به صورت همزمان یا ناهمزمان برای گیرندگان آن ارسال کنید. کلاس SmtpClient به شما امکان می دهد پیام های ایمیل Outlook را با استفاده از SMTP (پروتکل انتقال نامه ساده) ارسال کنید. در زیر مراحل ارسال ایمیل در سی شارپ با استفاده از Aspose.Email برای دات نت ارائه شده است.
- با استفاده از کلاس MailMessage یک پیام ایمیل ایجاد یا بارگیری کنید.
- یک نمونه از کلاس SmtpClient ایجاد کنید و میزبان، نام کاربری، رمز عبور و شماره پورت را تنظیم کنید.
- به ترتیب با استفاده از روش SmtpClient.Send یا SmtpClient.SendAsync ایمیل را به صورت همزمان یا ناهمزمان ارسال کنید.
ارسال ایمیل Outlook به صورت همزمان در سی شارپ
// یک نمونه MailMessage ایجاد کنید. می توانید یک پیام جدید ایجاد کنید یا یک فایل پیام از قبل ایجاد شده (eml، msg و غیره) را بارگیری کنید.
MailMessage msg = MailMessage.Load("EmailMessage.msg");
// یک نمونه از کلاس SmtpClient ایجاد کنید
SmtpClient client = new SmtpClient();
// میزبان پستی، نام کاربری، رمز عبور، شماره پورت و گزینه امنیت خود را مشخص کنید
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
try
{
// این ایمیل را ارسال کنید
client.Send(msg);
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
ارسال ایمیل Outlook به صورت ناهمزمان در سی شارپ
// یک نمونه MailMessage ایجاد کنید. می توانید یک پیام جدید ایجاد کنید یا یک فایل پیام از قبل ایجاد شده (eml، msg و غیره) را بارگیری کنید.
MailMessage msg = MailMessage.Load("EmailMessage.msg");
// یک نمونه از کلاس SmtpClient ایجاد کنید
SmtpClient client = new SmtpClient();
// میزبان پستی، نام کاربری، رمز عبور، شماره پورت و گزینه امنیت خود را مشخص کنید
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
// میزبان پستی، نام کاربری، رمز عبور، شماره پورت و گزینه امنیت خود را مشخص کنید
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
// ارسال پیام
client.SendAsync(msg);
Console.WriteLine("Sending message...");
msg.Dispose();
ارسال ایمیل انبوه در سی شارپ
همچنین می توانید ایمیل ها را به صورت انبوه ایجاد و ارسال کنید. کلاس MailMessageCollection برای حاوی مجموعه ای از پیام های ایمیلی که می خواهید ارسال کنید استفاده می شود. نمونه کد زیر نحوه ارسال ایمیل های انبوه در سی شارپ را نشان می دهد.
// SmtpClient ایجاد کنید و سرور، پورت، نام کاربری و رمز عبور را مشخص کنید
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");
// نمونه هایی از کلاس MailMessage ایجاد کنید و To، From، Subject و Message را مشخص کنید
MailMessage message1 = new MailMessage("msg1@from.com", "msg1@to.com", "Subject1", "message1, how are you?");
MailMessage message2 = new MailMessage("msg1@from.com", "msg2@to.com", "Subject2", "message2, how are you?");
MailMessage message3 = new MailMessage("msg1@from.com", "msg3@to.com", "Subject3", "message3, how are you?");
// یک نمونه از MailMessageCollection ایجاد کنید و پیام های ایمیل را به آن اضافه کنید
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.Add(message1);
manyMsg.Add(message2);
manyMsg.Add(message3);
try
{
// ارسال پیام
client.Send(manyMsg);
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
Aspose Email API for C# - Live Demos
نتیجه
در این مقاله با نحوه ایجاد ایمیل های Outlook در سی شارپ آشنا شدید. علاوه بر این، نحوه ارسال ایمیل ها به صورت همزمان یا ناهمزمان از داخل برنامه های NET را مشاهده کرده اید. برای کسب اطلاعات بیشتر در مورد API، میتوانید اسناد Aspose.Email را برای .NET کاوش کنید.