ایجاد پیام های MIME با استفاده از سی شارپ

MIME (افزونه های ایمیل چند منظوره اینترنتی) استانداردی است که به طور گسترده برای قالب بندی و تبادل پیام های ایمیل و همچنین انواع دیگر محتوا از طریق اینترنت استفاده می شود. این اجازه می دهد تا انواع رسانه های مختلف مانند متن، تصاویر، صدا و ویدئو را در یک پیام ایمیل قرار دهید. در این مقاله، نحوه ایجاد پیام های EML را به صورت برنامه نویسی در پایتون بررسی خواهیم کرد. در پایان مقاله، درک روشنی از نحوه ایجاد پیام‌های MIME، افزودن تصاویر به محتوای HTML ایمیل و ذخیره ایمیل به فرمت EML خواهید داشت.

API برای ایجاد پیام های MIME در پایتون

برای ایجاد یک پیام MIME، باید قوانین قالب بندی مشخص شده توسط استاندارد MIME را رعایت کنید. این معمولاً شامل استفاده از کتابخانه ها یا ماژول های مناسب ارائه شده توسط زبان های برنامه نویسی مانند پایتون برای ایجاد ساختار MIME لازم است. Aspose.Email for Python یک کتابخانه قدرتمند است که طیف وسیعی از قابلیت‌ها را برای ایجاد، دستکاری و پردازش پیام‌های ایمیل ارائه می‌کند و توسعه‌دهندگان را آسان‌تر می‌کند تا وظایف مرتبط با ایمیل را در پروژه‌های پایتون خود بگنجانند. این برای کار با فرمت های مختلف و در پلتفرم های مختلف طراحی شده است. شما به راحتی می توانید API را از طریق PyPI یا دانلود DLL آن نصب کنید.

> pip install Aspose.Email-for-Python-via-NET

یک فایل EML از ابتدا ایجاد کنید

برای ایجاد یک پیام ایمیل جدید، از کلاس MailMessage از Aspose.Email استفاده می کنیم. کلاس تمام متدها و ویژگی های لازم را برای تعیین فرستنده، گیرنده، موضوع و بدنه HTML دارد. سپس پیام به عنوان یک فایل EML با نام “message.eml” ذخیره می شود.

فرآیند ایجاد یک فایل eml جدید را می توان در مراحل زیر شرح داد:

  • کلاس های مورد نیاز را از ماژول aspose.email وارد کنید.
  • یک نمونه جدید از کلاس MailMessage با استفاده از سازنده پیش فرض ایجاد کنید.
  • ویژگی های شی MailMessage را بر اساس نیاز خود تنظیم کنید: آدرس فرستنده، آدرس گیرنده، موضوع، بدنه HTML و غیره.
  • ساختار و محتوای HTML را تعریف کنید. در مثال ما، یک ساختار ساده HTML با یک عنوان و یک پاراگراف ارائه شده است.
  • با استفاده از روش ذخیره، شی MailMessage را در یک فایل EML ذخیره کنید. در مثال ما، نام فایل “message.eml” خواهد بود.

نمونه کد زیر به شما نشان می دهد که چگونه یک EML را از ابتدا به صورت برنامه ریزی شده ایجاد کنید:

from aspose.email import MailMessage, MailAddress, LinkedResource, SaveOptions

# یک نمونه جدید از کلاس MailMessage ایجاد کنید
eml = MailMessage()

# فرستنده و گیرنده را تنظیم کنید
eml.from_address = MailAddress("sender@domain.com")
eml.to.append(MailAddress("receiver@receiver.com"))

# موضوع و بدن را تنظیم کنید
eml.subject = "New message with image"
eml.html_body = """<!DOCTYPE html>
 <html>
  <head>
   <style>
    h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;}
    p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal;
      font-weight:normal;color:#000000;background-color:#ffffff;}
   </style>
  </head>
  <body>
    <h3>New message</h3>
    <p>This is a new message created by Aspose.Email.</p>
  </body>
 </html>"""

#  شی MailMessage را در یک فایل EML ذخیره کنید
eml.save("message.eml", SaveOptions.default_eml)

روش ذخیره کلاس MailMessage دو پارامتر دارد: مسیر فایل و گزینه های ذخیره. گزینه های ذخیره فرمت فایل خروجی را مشخص می کند.

یک تصویر به محتوای HTML اضافه کنید

در این بخش، با استفاده از کلاس LinkedResource از همان API، یک تصویر را در ایمیل جاسازی می کنیم. کلاس یک منبع جاسازی شده در یک پیام را نشان می دهد. سپس، پیام را به عنوان یک فایل EML با نام “messagewithimage.eml” ذخیره می کنیم.

فقط مراحل را دنبال کنید.

  • کلاس های مورد نیاز را از ماژول aspose.email وارد کنید.
  • یک نمونه جدید از کلاس MailMessage با استفاده از سازنده پیش فرض ایجاد کنید.
  • ویژگی های شی MailMessage را با توجه به نیاز خود تنظیم کنید.
  • بدنه HTML حاوی یک تگ تصویر با ویژگی منبع است که روی “cid:myImage” تنظیم شده است.
  • کلاس AlternateView برای دریافت نمای دیگری از متن پیام که حاوی تصویر تعبیه شده است استفاده می شود.
  • کلاس LinkedResource برای نمایش تصویر تعبیه شده استفاده می شود و شناسه محتوای آن روی “image1” تنظیم شده است.
  • در نهایت نمای جایگزین به مجموعه نماهای متناوب پیام اضافه می شود.

نمونه کد زیر را برای افزودن یک تصویر به محتوای HTML امتحان کنید:

from aspose.email import MailMessage, MailAddress, LinkedResource, SaveOptions
from aspose.email.mime import MediaTypeNames

# یک نمونه جدید از کلاس MailMessage ایجاد کنید
eml = MailMessage()

# فرستنده و گیرنده را تنظیم کنید
eml.from_address = MailAddress("sender@domain.com")
eml.to.append(MailAddress("receiver@receiver.com"))

# سوژه و بدنه را تنظیم کنید
eml.subject = "New message with image"
eml.html_body = """<!DOCTYPE html>
 <html>
  <head>
   <style>
    h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;}
    p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal;
      font-weight:normal;color:#000000;background-color:#ffffff;}
   </style>
  </head>
  <body>
    <h3>New message</h3>
    <p>This is a new message created by Aspose.Email.</p>
    <img src='cid:myImage' />
  </body>
 </html>"""

# منبع تصویر را به نماهای جایگزین اضافه کنید
for alternate_view in eml.alternate_views:
    if alternate_view.content_type.media_type == "text/html":
        image_resource = LinkedResource("image.png", "image/png")
        image_resource.content_id = "myImage"
        alternate_view.linked_resources.append(image_resource)

# MailMessage را به عنوان یک فایل EML ذخیره کنید
eml.save("message_with_image.eml", SaveOptions.default_eml)

یک فایل EML از یک فایل HTML ایجاد کنید

کتابخانه Aspose.Email برای Python یک راه آسان برای بارگیری، تغییر و ذخیره یک فایل HTML به عنوان یک فایل EML فراهم می کند. اگر یک HTML دارید که می خواهید به عنوان یک پیام ایمیل ارسال کنید، این فرآیند تبدیل می تواند مفید باشد. برای این منظور از کلاس HtmlLoadOptions استفاده می کنیم. کلاس اجازه می دهد تا گزینه های اضافی را هنگام بارگیری MailMessage از فرمت Html مشخص کنید. ابتدا باید محتوای HTML را داشته باشیم. در مثال ما، فایلی به نام «content.html» خواهد بود.

<!DOCTYPE html>
<html>
<head>
	<title>My Email</title>
</head>
<body>
	<h1>Hello,</h1>
	<img src="logo.png" alt="Logo">
	<p>This is my first email created form HTML.</p>
</body>
</html>

همچنین باید تمامی تصاویر حاوی HTML را از قبل آماده کرده و مسیر صحیح آنها را در فایل HTML مشخص کنید.

اکنون، می‌توانیم به راحتی با تنظیم بدنه HTML از «content.html» یک MailMessage ایجاد کنیم.

  • کلاس های مورد نیاز را از ماژول aspose.email وارد کنید.
  • یک نمونه از HtmlLoadOptions ایجاد کنید تا گزینه های بارگیری را برای شی فایل HTML مشخص کنید.
  • رشته ای را تنظیم کنید که حاوی مسیر تصاویر در ویژگی pathtoresources باشد.
  • اگر EML باید حاوی AlternateView با متن ساده باشد، ویژگی shouldaddplaintextview را روی True تنظیم کنید.
  • با بارگیری فایل HTML و ارسال شیء HtmlLoadOptions به عنوان پارامتر، یک نمونه جدید از MailMessage ایجاد کنید.
  • ویژگی های پیام اضافی را تنظیم کنید.
  • در نهایت، شی MailMessage را با استفاده از روش ذخیره در یک فایل EML ذخیره کنید.
from aspose.email import HtmlLoadOptions, MailAddress, MailMessage, SaveOptions

htmlloadOptions = HtmlLoadOptions()
htmlloadOptions.path_to_resources = path
htmlloadOptions.should_add_plain_text_view = True
eml = MailMessage.load(path + str(r"content.html"), htmlloadOptions)

#  فرستنده و گیرنده را تنظیم کنید
eml.from_address = MailAddress("sender@domain.com")
eml.to = MailAddress("recipient@domain.com")

#  موضوع را تنظیم کنید
eml.subject = "New message from HTML"

#  پیام را در فرمت EML ذخیره کنید
eml.save("message_from_html.eml", SaveOptions.default_eml)

نکاتی برای بهبود نمای پیام HTML در Outlook

وقتی نوبت به ارسال ایمیل های HTML می رسد، سازگاری با کلاینت های مختلف ایمیل بسیار مهم است. به ویژه Outlook موتور رندر خود را دارد که با اکثر مرورگرهای وب متفاوت است که می تواند منجر به مشکلات قالب بندی شود. در اینجا به برخی از آنها اشاره می کنیم:

  • Outlook ممکن است برخی از برچسب‌های HTML و ویژگی‌های CSS را که معمولاً در مرورگرهای وب استفاده می‌شوند، پشتیبانی نکند. عناصری مانند تصاویر پس‌زمینه، شناورها، حاشیه‌ها و بالشتک‌ها ممکن است آنطور که انتظار می‌رود ارائه نشوند. برای غلبه بر این مشکل، استفاده از سبک‌های درون خطی، جداول یا نظرات شرطی برای دستیابی به طرح‌بندی و قالب‌بندی مورد نظر در Outlook ضروری است.
  • Outlook ممکن است فضاها یا خطوط بیشتری را بین عناصر ایجاد کند یا حتی برخی از عناصر را به طور کلی حذف کند و طراحی دقیق شما را مختل کند. برای کاهش این موضوع، استفاده استراتژیک از فضاهای بدون شکست، فضاهای با عرض صفر یا سلول های خالی جدول می تواند به حفظ ساختار مورد نظر و جلوگیری از دستکاری عناصر ناخواسته در Outlook کمک کند.
  • موتور رندر Outlook ممکن است کدگذاری یا مجموعه کاراکترهای فایل HTML شما را تغییر دهد و در نتیجه کاراکترهای مخدوش یا نادرست نمایش داده شوند. برای اطمینان از رندر مناسب، با استفاده از یک متا تگ، به صراحت مجموعه کدگذاری و کاراکتر را در HTML خود مشخص کنید. این به Outlook کمک می کند تا متن را به طور دقیق تفسیر و نمایش دهد و از بروز هرگونه مشکل مرتبط با کاراکتر جلوگیری کند.

نتیجه

برای جمع بندی، بیایید به یاد بیاوریم که در این مقاله به چه موضوعاتی پرداخته شده است. شما یاد گرفته اید که چگونه پیام های MIME را به صورت برنامه نویسی در پایتون با استفاده از Aspose.Email ایجاد کنید. دستورالعمل های دقیق و گام به گام ما با نمونه کد، آموزش را قابل خواندن و درک آسان می کند.

با ایجاد پیام‌های MIME، فرستندگان ایمیل می‌توانند اطمینان حاصل کنند که ارتباطات آنها از طیف گسترده‌ای از انواع محتوا پشتیبانی می‌کند و تجربه تعاملی و جذاب‌تری را برای گیرندگان فراهم می‌کند.

  • می‌توانید درباره Aspose.Email for Python بیشتر کاوش کنید و آن را به صورت رایگان امتحان کنید.
  • همچنین می‌توانید ویژگی‌ها و قابلیت‌های بیشتر Aspose.Email را در مستندات بررسی کنید.
  • سوالات شما در [فروم 11 ما خوش آمدید.

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