ایجاد و تنظیم محتویات ایمیل‌ها

ایجاد پیام ایمیل جدید

کلاس MailMessage نمایانگر یک پیام ایمیل است و به توسعه‌دهندگان اجازه می‌دهد پیام ایمیل جدیدی ایجاد کنند. ویژگی‌های پایه ایمیل مانند From، To، Subject و body می‌توانند به‌ آسانی به پیام ایمیل جدید افزوده شوند. به‌ همان شکل می‌توانیم پیام ایمیل را در قالب‌های مختلفی مانند EML، MSG و MHTML ذخیره کنیم.

  • یک نمونه از کلاس MailMessage ایجاد کنید.
  • ویژگی‌های پیام ایمیل را تنظیم کنید.
  • پیام ایمیل را در فرمت‌های مختلف ذخیره کنید.

قطعه کد زیر نشان می‌دهد چگونه یک ایمیل جدید با ویژگی‌های مختلف ایجاد کنید.

مشخص کردن چندین گیرنده

MailMessage نمایانگر یک پیام ایمیل است. نمونه‌های کلاس MailMessage برای ساخت پیام‌های ایمیل که به سرور SMTP با استفاده از کلاس SmtpClient ارسال می‌شوند، استفاده می‌شوند. این موضوع نشان می‌دهد چگونه می‌توان بیش از یک آدرس ایمیل را مشخص کرد. آدرس‌های ایمیل می‌توانند با استفاده از کلاس MailMessage مشخص شوند. آدرس‌های ایمیل استفاده شده در کلاس MailMessage عبارتند از:

  • To - آدرس‌های گیرنده می‌توانند در فیلد ‘To’ مشخص شوند. گیرندگان فیلد ‘To’ مخاطبان اصلی پیام هستند. می‌توان بیش از یک آدرس گیرنده داشت.
  • Cc - CC مخفف «کپی کربن» یا «کپی Courtesy» است و به شما امکان می‌دهد گیرندگانی را اضافه کنید که نیاز به مشاهده ایمیل دارند اما لزوماً انتظار نمی‌رود اقدام کنند. برای مثال مدیران یا اعضای تیم شما که باید از گفت‌وگو آگاه باشند. با Aspose.Email، می‌توانید آدرس‌های CC را در کد خود مشخص کنید. به این ترتیب، ایمیل‌های خودکار یا تمام ایمیل‌ها به یک آدرس خاص می‌توانند به پرسنل مربوطه کپی شوند.
  • Bcc - Bcc مخفف کپی سیاه‌رنگ است و به شما اجازه می‌دهد ایمیلی به گیرنده‌ای بفرستید که از سایر گیرندگان پنهان باشد. در حالی که CC در اطلاعات ایمیل برای گیرندگان اصلی ظاهر می‌شود، Bcc نه. این برای اطلاع‌رسانی مخفی استفاده می‌شود. 

برای مشخص کردن چندین آدرس ایمیل در یک پیام ایمیل، مراحل زیر را دنبال کنید:

  1. یک نمونه از کلاس MailMessage ایجاد کنید.
  2. آدرس‌های From و چندین To، Cc و Bcc را با استفاده از نمونه MailMessage مشخص کنید.
  3. یک نمونه از کلاس SmtpClient ایجاد کنید و ایمیل را با استفاده از متد Send ارسال کنید.

نمونه کد زیر نشان می‌دهد چگونه می‌توان چندین آدرس To، CC و BCC را مشخص کرد.

تغییر آدرس‌های ایمیل به نام دوستانه

نمونه‌های برنامه‌نویسی زیر نشان می‌دهند چگونه آدرس‌های ایمیل را به نام‌های دوستانه در یک پیام ایمیل تبدیل کنیم. یک نام دوستانه نامی است که برای افراد انسانی قابل‌خواناتر باشد، به عنوان مثال John Smith به‌جای js346@domain.com. هنگام ارسال ایمیل می‌توانیم یک نام دوستانه را با آدرس ایمیل در سازنده کلاس MailMessage مرتبط کنیم.

برای تغییر آدرس‌های ایمیل به نام‌های دوستانه در یک پیام ایمیل، مراحل زیر را دنبال کنید:

  • یک نمونه از کلاس MailMessage ایجاد کنید و آدرس‌های ایمیل را در فیلدهای To و From همراه با نام‌های دوستانه مشخص کنید.
  • آدرس‌های ایمیل Cc و Bcc را همراه با نام‌های دوستانه با فراخوانی سازنده کلاس MailMessage در نمونه MailMessage مشخص کنید.
  • یک نمونه از کلاس SmtpClient ایجاد کنید و ایمیل را با استفاده از متد Send ارسال کنید.

قطعه کد زیر نشان می‌دهد چگونه نام‌ها برای آدرس‌های ایمیل نمایش داده شوند.

تنظیم بدنه ایمیل

کلاس MailMessage نمایانگر یک پیام ایمیل است. نمونه‌های کلاس MailMessage برای ساخت پیام‌های ایمیلی استفاده می‌شوند که به سرور SMTP برای تحویل ارسال می‌شوند. بدنه ایمیل می‌تواند با استفاده از کلاس MailMessage مشخص شود. یک ایمیل می‌تواند چندین بدنه داشته باشد. در کلاس MailMessage دو نوع بدنه ایمیل وجود دارد:

  • بدنه HTML
  • بدنه متن

علاوه بر HtmlBody و TextBody، Aspose.Email دو ویژگی فقط‌خواندنی دیگر مرتبط با بدنه ایمیل دارد:

  • IsBodyText: به کاربر می‌گوید بدنه متن است.
  • IsBodyHtml: به کاربر می‌گوید بدنه HTML است یا متن ساده.

این مقاله نشان می‌دهد چگونه متن ساده یا متن بدنه HTML را تعریف کنید، متن جایگزین تنظیم کنید و بدنه ایمیل را رمزگذاری کنید.

تنظیم بدنه HTML

HtmlBody برای تعیین محتوای HTML بدنه پیام استفاده می‌شود. HtmlBody باید بین برچسب‌های قرار گیرد. قطعه کد زیر نشان می‌دهد چگونه بدنه HTML را تنظیم کنید.

تنظیم متن جایگزین

از کلاس AlternateView برای تعیین نسخه‌های یک پیام ایمیل در قالب‌های مختلف استفاده کنید. برای مثال، اگر پیامی را به‌صورت HTML می‌فرستید، ممکن است بخواهید یک نسخه متن ساده نیز فراهم کنید تا در صورتی که برخی دریافت‌کنندگان ایمیل‌خوان‌هایی داشته باشند که قادر به نمایش محتوای HTML نباشند، استفاده کنند. این کلاس دو ویژگی LinkedResources و BaseUri دارد که برای حل URLها داخل محتوای ایمیل به کار می‌روند.

  • LinkedResources مجموعه‌ای از اشیاء LinkedResources است. هنگام رندر شدن، URLهای داخل محتوای ایمیل ابتدا با URLهای موجود در Content Link هر شیء LinkedResources در مجموعه LinkedResources مقایسه و حل می‌شوند.
  • BaseUri توسط خواننده ایمیل برای حل URLهای نسبی داخل بدنه استفاده می‌شود و همچنین برای حل URLهای لینک محتوای نسبی، در مجموعه LinkedResources.

قطعه کد زیر نشان می‌دهد چگونه متن جایگزین را تنظیم کنید.

ویژگی‌های MailMessage

این MailMessage class محتوای یک پیام ایمیل را نمایش می‌دهد. نمونه‌های MailMessage class برای ساخت یک پیام ایمیل استفاده می‌شود که به سرور SMTP برای تحویل ارسال می‌شود با استفاده از SmtpClient class. این مقاله نشان می‌دهد چگونه از آن استفاده کنید MailMessage ویژگی‌های utility کلاس برای کنترل ویژگی‌های زیر ایمیل:

  • Date and time - از طریق MailMessage ویژگی class Date که برای دریافت یا تنظیم تاریخ و زمان ایمیل استفاده می‌شود.
  • اولویت پیام -  MailPriority کلاس سطوح اولویت برای ارسال پیام ایمیل را مشخص می‌کند. می‌تواند کم، معمولی یا بالا باشد. اولویت بر سرعت انتقال و تحویل تأثیر می‌گذارد.
  • حساسیت پیام -  MailSensitivity کلاس پنج سطح حساسیت را مشخص می‌کند.
  • اطلاع تحویل - اطلاعیه‌های تحویل به فرستندگان می‌گویند ایمیل‌های ارسال‌شده به صندوق ورودی دریافت‌کننده تحویل داده شده‌اند.

به طور پیش‌فرض، تاریخ برابر با تاریخ واقعی ارسال پیام است و زمان نیز زمان ارسال را نشان می‌دهد، همان‌طور که در Microsoft Outlook نمایش داده می‌شود. با این حال، زمان واقعی تحویل ایمیل توسط خود سرور SMTP در هدر ایمیل افزوده می‌شود. برای مثال، در زیر یک هدر رایج ایمیل آورده شده است که در آن فیلد Date مقدار Date را تنظیم می‌کند.

قطعه کد زیر نشان می‌دهد چگونه هر یک از ویژگی‌های ذکر شده در بالا می‌توانند استفاده شوند.

درخواست رسید خواندن

نمونه‌های برنامه‌نویسی زیر نشان می‌دهند که چگونه می‌توانید درخواست رسید خواندن کنید. The MailMessage کلاس DeliveryNotificationOptions ویژگی Enumeration گزینه‌های اعلان تحویل ایمیل را توصیف می‌کند. برای درخواست دریافت خوانده شده پس از ارسال ایمیل، مراحل زیر را دنبال کنید:

  1. یک نمونه از MailMessage کلاس.
  2. آدرس فرستنده، گیرنده و بدنه HTML ایمیل را در MailMessage نمونه.
  3. مشخص کنید DeliveryNotificationOptions در سایر MailMessage نمونه‌ها.
  4. یک نمونه از SmtpClient کلاس و ایمیل را با استفاده از متد Send ارسال کنید.

درخواست‌های رسید خواندن ممکن است همیشه رعایت نشوند زیرا:

  • یک کلاینت ایمیل ممکن است این قابلیت را پیاده‌سازی نکرده باشد.
  • کاربر نهایی ممکن است این قابلیت را غیرفعال کرده باشد.
  • کاربر نهایی ممکن است انتخاب کند که ارسال نکند.

قطعه کد زیر نشان می‌دهد چگونه یک رسید خواندن درخواست شود.

تنظیم هدرهای ایمیل

هدرهای ایمیل نمایانگر یک استاندارد اینترنتی هستند و RFC فیلدهای هدر را که در پیام‌های ایمیل اینترنتی گنجانده می‌شوند تعریف می‌کند. هدر ایمیل می‌تواند با استفاده از کلاس MailMessage مشخص شود. انواع هدرهای رایج در کلاس HeaderType تعریف شده‌اند. این کلاس یک کلاس sealed است که مانند یک enumeration معمولی عمل می‌کند.

معمولاً یک هدر ایمیل شامل این فیلدها است:

  • To: آدرس‌های گیرنده می‌توانند در فیلد To مشخص شوند. دریافت‌کنندگان فیلد To مخاطبان اصلی پیام هستند. می‌توان بیش از یک آدرس گیرنده تعیین کرد.
  • From: این فیلد آدرس ایمیل فرستنده پیام را نشان می‌دهد.
  • Cc: به کاربران اجازه می‌دهد پیام را به‌عنوان "Carbon Copy" یا "Courtesy Copy" ارسال کنند. یعنی دریافت‌کننده انتظار پاسخ یا اقدام ندارد. معمولاً پرسنل نظارتی با CC مطلع می‌شوند.
  • Bcc: مخفف Blind Carbon Copy است و به عملیاتی اشاره دارد که پیام را برای دریافت‌کنندگان متعدد می‌فرستد به گونه‌ای که لیست کامل دریافت‌کنندگان برای آنها قابل مشاهده نیست. این برای اعلان‌های مخفی استفاده می‌شود.
  • ReplyTo: این فیلد هدر برای نشان دادن مقصد پاسخ‌های فرستنده در نظر گرفته شده است.
  • Subject: عنوان، سرصفحه، موضوع. اغلب به عنوان نشانگر رشته برای پیام‌هایی که به پیام‌های دیگر پاسخ یا اظهار نظر می‌کنند استفاده می‌شود.
  • Date: این هدر یک تاریخ (و زمان) را مشخص می‌کند. معمولاً این تاریخ زمانی است که پیام نوشته و ارسال شده است.
  • XMailer: اطلاعاتی درباره نرم‌افزار مشتری فرستنده. مثال: X-Mailer: Aspose.Email. XMailer توسط کلاینت‌های ایمیل استفاده می‌شود. کلاینت‌های ایمیل مختلف مقادیر XMailer متفاوتی دارند. مقدار XMailer در Microsoft Outlook، Microsoft Office Outlook, Build 11.0.5510 است. این مقدار توسط گیرنده یا خواننده ایمیل نادیده گرفته می‌شود.

معمولاً، هدر ایمیل به صورت زیر ظاهر می‌شود:


 Reply-To: reply@reply.com

From: sender@sender.com

To: guangzhou@guangzhoo.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

برای سفارشی‌سازی هدر ایمیل، این مراحل را دنبال کنید:

  • یک نمونه از MailMessage کلاس.
  • آدرس‌های To، From، CC، Bcc، ReplyTo، Subject، Date و XMailer را با استفاده از یک نمونه از MailMessage.
  • یک نمونه از MimeHeader کلاس و هدر مخفی را مشخص کنید.
  • هدر مخفی را به MailMessage نمونه.

قطعه کد زیر نشان می‌دهد چگونه هدرهای ایمیل را تنظیم کنید.

قطعه کد بالا هدر ایمیل را در قالب زیر تولید می‌کند. این را می‌توانید با باز کردن فایل حاصل "MsgHeaders.msg" در Microsoft Outlook و سپس مشاهده خصوصیات مشاهده کنید.


 Reply-To: reply@reply.com

From: sender@sender.com

To: receiver1@receiver.com

CC: receiver2@receiver.com

BCC: receiver3@receiver.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

secret-header: mystery

درج هدر در مکان خاص

این Add متد HeadersCollection کلاس هدر را در انتهای مجموعه درج می‌کند. با این حال، گاهی اوقات لازم است هدر را در موقعیت خاصی درج کنید. در چنین حالتی، Add متد کمک نمی‌کند. برای دستیابی به این هدف، از Insert متد از HeadersCollection. اگر مجموعه شامل هدرهایی با همان نام باشد، این هدر قبل از سایر هدرهای با همان نام درج خواهد شد. قطعه کد زیر نشان می‌دهد چگونه هدر را در مکان خاصی وارد کنید.

افزودن هدرهای سفارشی به ایمیل

نمونه‌های برنامه‌نویسی زیر نشان می‌دهند چگونه یک هدر سفارشی را در یک پیام ایمیل مشخص کنیم. یک هدر ایمیل می‌تواند با استفاده از MailMessage کلاس اضافه کنید. برای تعیین هدر سفارشی در یک پیام ایمیل، لطفاً این مراحل را دنبال کنید:

  1. یک نمونه از MailMessage کلاس.
  2. مقادیر to، from و subject را با استفاده از نمونه MailMessage مشخص کنید.
  3. هدر مخفی را به MailMessage نمونه.
  4. یک نمونه از کلاس SmtpClient ایجاد کنید و ایمیل را با استفاده از متد Send ارسال کنید.

قطعه کد زیر نشان می‌دهد چگونه هدرهای سفارشی را به ایمیل اضافه کنید.