تعد MIME (ملحقات بريد الإنترنت متعددة الأغراض) معيارًا مستخدمًا على نطاق واسع لتنسيق رسائل البريد الإلكتروني وتبادلها ، بالإضافة إلى أنواع أخرى من المحتوى عبر الإنترنت. يسمح بإدراج أنواع الوسائط المختلفة ، مثل النصوص والصور والصوت والفيديو ، في رسالة بريد إلكتروني واحدة. في هذه المقالة ، سوف نستكشف كيفية إنشاء رسائل EML برمجيًا في بايثون. بنهاية المقالة ، سيكون لديك فهم واضح لكيفية إنشاء رسائل MIME وإضافة الصور إلى محتوى HTML للبريد الإلكتروني وحفظ البريد الإلكتروني بتنسيق EML.
- API لإنشاء رسائل MIME في Python
- قم بإنشاء ملف EML من سكراتش
- أضف صورة إلى محتوى HTML
- قم بإنشاء ملف EML من ملف HTML
- تلميحات لتحسين عرض رسالة HTML في Outlook
API لإنشاء رسائل MIME في Python
لإنشاء رسالة MIME ، يحتاج المرء إلى الالتزام بقواعد التنسيق المحددة بواسطة معيار MIME. يتضمن هذا عادةً استخدام مكتبات أو وحدات مناسبة توفرها لغات البرمجة ، مثل Python ، لإنشاء بنية MIME اللازمة. Aspose.Email for Python هي مكتبة قوية توفر مجموعة واسعة من الوظائف لإنشاء رسائل البريد الإلكتروني ومعالجتها ومعالجتها ، مما يسهل على المطورين دمج المهام المتعلقة بالبريد الإلكتروني في مشاريع 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 لنفس واجهة برمجة التطبيقات. يمثل الفصل موردًا مضمنًا في الرسالة. بعد ذلك ، سنحفظ الرسالة كملف 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
.
- قم باستيراد الفئات المطلوبة من الوحدة النمطية aspose.email.
- قم بإنشاء مثيل HtmlLoadOptions لتحديد خيارات التحميل لكائن ملف HTML.
- قم بتعيين سلسلة تحتوي على المسار إلى الصور في خاصية pathtoresources.
- عيّن الخاصية shouldaddplaintextview إلى True إذا كان يجب أن يحتوي EML على AlternateView بنص عادي.
- قم بإنشاء مثيل جديد لـ MailMessage عن طريق تحميل ملف HTML وتمرير الكائن HtmlLoadOptions كمعامل.
- قم بتعيين خصائص الرسالة الإضافية.
- أخيرًا ، احفظ كائن 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 برمجيًا في Python باستخدام Aspose. تجعل تعليماتنا التفصيلية والمفصلة خطوة بخطوة مع عينات التعليمات البرمجية البرنامج التعليمي قابلاً للقراءة وسهل الفهم.
من خلال إنشاء رسائل MIME ، يمكن لمرسلي البريد الإلكتروني التأكد من أن اتصالاتهم تدعم نطاقًا واسعًا من أنواع المحتوى وتوفر تجربة تفاعلية وتفاعلية أكثر للمستلمين.
- يمكنك استكشاف المزيد حول Aspose.Email for Python وتجربته مجانًا.
- يمكنك أيضًا التحقق من المزيد من ميزات ووظائف Aspose.Email في التوثيق.
- نرحب بأسئلتكم في المنتدى.