ایجاد و تنظیم محتوای ایمیلها
ایجاد پیام ایمیل جدید
Aspose.Email برای جاوا به توسعهدهندگان امکان ایجاد پیامهای MIME (Multipurpose Internet Mail Extensions) از ابتدا را میدهد. کلاس اصلی برای این منظور در API Aspose.Email برای جاوا، MailMessage کلاس. این موضوع مراحل لازم برای ایجاد پیامهای ایمیل در فرمتهای فایل EML، MSG و MTH با استفاده از Aspose.Email برای جاوا را توضیح میدهد.
برای ایجاد یک پیام ایمیل از ابتدا:
- یک نمونه از کلاس MailMessage ایجاد کنید.
- موضوع پیام را با استفاده از setSubject() متد.
- متن پیام را با استفاده از setHtmlBody() متد.
- فرستنده ایمیل را با استفاده از setFrom() متد.
- گیرنده را در فیلد TO با استفاده از getTo().add() متد.
- گیرنده را در فیلد CC با استفاده از getCC().add() متد.
- متد را فراخوانی کنید Save() روشی برای ذخیره فایل پیام بر روی دیسک در فرمتهای MSG، EML و MHT.
مشخص کردن چندین گیرنده
این MailMessage نمایانگر یک پیام ایمیل است. نمونههای کلاس MailMessage برای ساخت پیامهای ایمیلی که با استفاده از SmtpClient کلاس. این موضوع نشان میدهد چگونه بیش از یک آدرس ایمیل را مشخص کنید. آدرسهای ایمیل میتوانند با استفاده از کلاس MailMessage تعیین شوند. آدرسهای ایمیل استفاده شده در کلاس MailMessage عبارتند از:
- To - آدرسهای گیرنده میتوانند در فیلد ‘To’ مشخص شوند. گیرندگان فیلد ‘To’ مخاطبان اصلی پیام هستند. میتوان بیش از یک آدرس گیرنده داشت.
- Cc - CC مخفف «کپی کربن» یا «کپی Courtesy» است و به شما امکان میدهد گیرندگانی را اضافه کنید که نیاز به مشاهده ایمیل دارند اما لزوماً انتظار نمیرود اقدام کنند. برای مثال مدیران یا اعضای تیم شما که باید از گفتوگو آگاه باشند. با Aspose.Email، میتوانید آدرسهای CC را در کد خود مشخص کنید. به این ترتیب، ایمیلهای خودکار یا تمام ایمیلها به یک آدرس خاص میتوانند به پرسنل مربوطه کپی شوند.
- Bcc - Bcc مخفف کپی سیاهرنگ است و به شما اجازه میدهد ایمیلی به گیرندهای بفرستید که از سایر گیرندگان پنهان باشد. در حالی که CC در اطلاعات ایمیل برای گیرندگان اصلی ظاهر میشود، Bcc نه. این برای اطلاعرسانی مخفی استفاده میشود.
برای مشخص کردن چندین آدرس ایمیل در یک پیام ایمیل، مراحل زیر را دنبال کنید:
- یک نمونه از کلاس MailMessage ایجاد کنید.
- آدرسهای From و چندین To، Cc و Bcc را با استفاده از نمونه MailMessage مشخص کنید.
- یک نمونه از کلاس SmtpClient ایجاد کنید و ایمیل را با استفاده از متد Send ارسال کنید.
نمونه کد زیر نشان میدهد چگونه میتوان چندین آدرس To، CC و BCC را مشخص کرد.
تغییر آدرسهای ایمیل به نام دوستانه
نمونههای برنامهنویسی زیر نشان میدهند چگونه آدرسهای ایمیل را به نامهای دوستانه در یک پیام ایمیل تغییر دهیم. یک نام دوستانه نامی است که نسبت به آدرس ایمیل بیشتر انسانی بهنظر میرسد، برای مثال John Smith به جای js346@domain.com. هنگام ارسال ایمیل، میتوانیم یک نام دوستانه را به آدرس ایمیل در MailMessage سازنده کلاس.
برای تغییر آدرسهای ایمیل به نامهای دوستانه در یک پیام ایمیل، مراحل زیر را دنبال کنید:
- یک نمونه از کلاس MailMessage ایجاد کنید و آدرسهای ایمیل را در فیلدهای To و From همراه با نامهای دوستانه مشخص کنید.
- آدرسهای ایمیل Cc و Bcc را همراه با نامهای دوستانه با فراخوانی سازنده کلاس MailMessage در نمونه MailMessage مشخص کنید.
- یک نمونه از کلاس SmtpClient ایجاد کنید و ایمیل را با استفاده از متد Send ارسال کنید.
قطعه کد زیر نشان میدهد چگونه نامها برای آدرسهای ایمیل نمایش داده شوند.
تنظیم بدنه ایمیل
این MailMessage کلاس نمایانگر یک پیام ایمیل است. نمونههای کلاس MailMessage برای ساخت پیامهای ایمیلی که با استفاده از یک سرور SMTP برای تحویل ارسال میشوند، استفاده میشود. SmtpClient کلاس. بدنه ایمیل میتواند با استفاده از کلاس MailMessage مشخص شود. بدنه ایمیل میتواند با استفاده از setHtmlBody متد در کلاس MailMessage.
علاوه بر HtmlBody، Aspose.Email یک متد دیگر مربوط به بدنه ایمیل دارد:
- 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.
قطعه کد زیر نشان میدهد چگونه متن جایگزین را تنظیم کنید.
مشخص کردن رمزگذاری بدنه ایمیل
نوع محتوا قالب محتویات ایمیل را تعریف میکند: مجموعه کاراکترها. برای مثال، چند مجموعه کاراکتری رایج که در java.nio.Charset ارائه میشوند عبارتند از:
- US-ASCII - ASCII 7 بیتی، معروف به ISO646-US، یا بلوک پایه لاتین مجموعه کاراکترهای یونیکد
- ISO-8859-1 - الفبای لاتین ISO شماره ۱، معروف به ISO-LATIN-1
- UTF-8 - فرمت تبدیل UCS 8 بیتی
- UTF-16BE - فرمت تبدیل UCS 16 بیتی، ترتیب بایت بیگ-اندین
- UTF-16LE - فرمت تبدیل UCS 16 بیتی، ترتیب بایت لِتل-اندین
- UTF-16 - فرمت تبدیل UCS 16 بیتی، ترتیب بایت توسط علامت ترتیب بایت اختیاری شناسایی میشود
Aspose.Email از BodyEncoding ویژگی کلاس MailMessage برای مشخص کردن رمزگذاری بدنه ایمیل. برای رمزگذاری بدنه یک پیام ایمیل، مراحل زیر را دنبال کنید:
- یک نمونه از کلاس MailMessage ایجاد کنید.
- فرستنده، گیرنده و بدنه HTML ایمیل را در نمونه MailMessage مشخص کنید.
- مقدار ویژگی BodyEncoding را مشخص کنید.
- یک نمونه از SmtpClient کلاس و ایمیل را با استفاده از متد Send ارسال کنید.
ویژگیهای MailMessage
این MailMessage کلاس نمایانگر محتویات یک پیام ایمیل است. نمونههای کلاس MailMessage برای ساخت پیام ایمیلی استفاده میشوند که با استفاده از یک سرور SMTP برای تحویل ارسال میشوند. SmtpClient کلاس. این مقاله نشان میدهد چگونه از قابلیتهای یوتیلیتی کلاس MailMessage برای کنترل ویژگیهای زیر ایمیل استفاده کنید:
- تاریخ و زمان - از طریق کلاس MailMessage setDate متدی که تاریخ و زمان ایمیل را تنظیم میکند.
- اولویت پیام - MailPriority کلاس سطوح اولویت برای ارسال پیام ایمیل را مشخص میکند. میتواند کم، معمولی یا بالا باشد. اولویت بر سرعت انتقال و تحویل تأثیر میگذارد.
- حساسیت پیام - MailSensitivity کلاس پنج سطح حساسیت را مشخص میکند.
- اطلاع تحویل - اطلاعیههای تحویل به فرستندگان میگویند ایمیلهای ارسالشده به صندوق ورودی دریافتکننده تحویل داده شدهاند.
بهطور پیشفرض، تاریخ تاریخی است که پیام ارسال شده و زمان زمانی است که پیام ارسال شده است، همانگونه که Microsoft Outlook نمایش میدهد. با این حال، زمان واقعی تحویل ایمیل توسط خود سرور SMTP در هدر ایمیل افزوده میشود. برای مثال، در زیر یک هدر ایمیل رایج نشان داده شده است که فیلد Date با استفاده از MailMessage.setDate تنظیم شده بود.
قطعه کد زیر نشان میدهد چگونه هر یک از ویژگیهای ذکر شده در بالا میتوانند استفاده شوند.
درخواست رسید خواندن
نمونههای برنامهنویسی زیر نشان میدهند چگونه میتوانید درخواست رسید خواندن کنید. کلاس MailMessage DeliveryNotificationOptions ویژگی شمارشی توصیف میکند گزینههای اعلان تحویل برای یک ایمیل. برای درخواست رسید خوانده شدن پس از ارسال ایمیل، این مراحل را دنبال کنید:
- یک نمونه از کلاس MailMessage ایجاد کنید.
- فرستنده، گیرنده و بدنه HTML ایمیل را در نمونه MailMessage مشخص کنید.
- گزینههای DeliveryNotificationOptions را در دیگر نمونههای MailMessage مشخص کنید.
- یک نمونه از کلاس SmtpClient ایجاد کنید و ایمیل را با استفاده از متد Send ارسال کنید.
درخواستهای رسید خواندن ممکن است همیشه رعایت نشوند زیرا:
- یک کلاینت ایمیل ممکن است این قابلیت را پیادهسازی نکرده باشد.
- کاربر نهایی ممکن است این قابلیت را غیرفعال کرده باشد.
- کاربر نهایی ممکن است انتخاب کند که ارسال نکند.
قطعه کد زیر نشان میدهد چگونه یک رسید خواندن درخواست شود.
تنظیم هدرهای ایمیل
هدرهای ایمیل نمایانگر یک استاندارد اینترنتی هستند و RFC فیلدهای هدر را که در پیامهای ایمیل اینترنتی گنجانده میشوند تعریف میکند. یک هدر ایمیل میتواند با استفاده از MailMessage کلاس. انواع هدرهای رایج در HeaderType کلاس. این یک کلاس sealed است که مانند یک شمارشگر معمولی عمل میکند.
معمولاً یک هدر ایمیل شامل این فیلدها است:
- 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 کلاس.
- با استفاده از یک نمونه از کلاس MailMessage، To، From، CC، Bcc، ReplyTo، Subject، Date و XMailer را مشخص کنید.
- یک نمونه از 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. اگر مجموعه شامل هدرهایی با نام یکسان باشد، این هدر قبل از دیگر هدرهای با همان نام درج خواهد شد. در زیر امضای متد Insert و نمونه کد برای استفاده آورده شده است.
Method Signature
HeaderCollection.insert(String name, String value)
افزودن هدرهای سفارشی به ایمیل
نمونههای برنامهنویسی زیر نشان میدهند چگونه یک هدر سفارشی در یک پیام ایمیل مشخص کنیم. یک هدر ایمیل میتواند با استفاده از کلاس MailMessage مشخص شود. برای مشخص کردن هدر سفارشی در یک پیام ایمیل، لطفاً این مراحل را دنبال کنید:
- یک نمونه از کلاس MailMessage ایجاد کنید.
- مقادیر to، from و subject را با استفاده از نمونه MailMessage مشخص کنید.
- هدر مخفی را به نمونه MailMessage اضافه کنید.
- یک نمونه از کلاس SmtpClient ایجاد کنید و ایمیل را با استفاده از متد Send ارسال کنید.
قطعه کد زیر نشان میدهد چگونه هدرهای سفارشی را به ایمیل اضافه کنید.
امضای ایمیلها با DKIM
Aspose.Email امکان امضای ایمیل با DKIM (DomainKeys Identified Mail) را فراهم میکند. این به سازمان اجازه میدهد مسئولیت یک پیام در حین انتقال را بر عهده بگیرد (درباره DKIM ). DKIM یک امضای دیجیتال به هدرهای پیام ایمیل اضافه میکند که میتواند توسط دریافتکنندگان تأیید شود. کلید عمومی فرستنده به دریافتکننده امکان میدهد تأیید کند که امضا با محتوای پیام مطابقت دارد. کلاس MailMessage dKIMSign متد برای تنظیم اطلاعات رمزنگاری و امضا برای امضای پیام استفاده میشود. قطعه کد زیر نشان میدهد چگونه ایمیلها را با DKIM امضا کنید.
انجام ادغام نامه
ادغام نامه به شما کمک میکند یک دسته از پیامهای ایمیل مشابه را ایجاد و ارسال کنید. محتوای اصلی ایمیلها یکسان است، اما محتوا میتواند شخصیسازی شود. معمولاً جزئیات تماس گیرنده (نام، نام خانوادگی، شرکت و غیره) برای شخصیسازی ایمیل استفاده میشود.
|
| | :- | |شکل: تصویر نحوه کار ادغام نامه|
برای انجام ادغام نامه با Aspose.Email، مراحل زیر را انجام دهید:
- یک تابع با نام signature ایجاد کنید.
- یک نمونه از MailMessage کلاس.
- فرستنده، گیرنده، موضوع و متن را مشخص کنید.
- یک امضا برای انتهای ایمیل ایجاد کنید.
- یک نمونه از TemplateRoutine کلاس بگیرید و به آن MailMessage نمونه.
- امضای را در TemplateRoutine نمونه.
- یک نمونه از DataTable کلاس.
- ستونهای Receipt، FirstName و LastName را به عنوان منبع داده در کلاس DataTable اضافه کنید.
- یک نمونه از DataRow کلاس
- آدرس دریافت، نام و نام خانوادگی را در شیء DataRow مشخص کنید.
- یک نمونه از MailMessageCollection کلاس
- مشخص کنید TemplateRoutine و نمونههای DataTable در MailMessageCollection نمونه.
- یک نمونه از SmtpClient کلاس و سرور، پورت، نام کاربری و رمز عبور را مشخص کنید
- ارسال ایمیلها با استفاده از SmtpClient متد BulkSendAsync کلاس
کد زیر ایمیلی را از سه نفر به یک نفر میفرستد.