تبدیل EML به HTML

تبدیل EML به HTML

برای یکپارچه‌سازی محتوای ایمیل در برنامه‌های وب، تبدیل EML به HTML گزینهٔ مناسبی است که ارائهٔ بصری جذابی از ایمیل را فراهم می‌کند.

برای تبدیل EML به HTML، به کلاس‌های زیر نیاز دارید:

  • MailMessage کلاس برای ایجاد شیء نمایانگر یک پیام ایمیل استفاده می‌شود. این کلاس امکان دسترسی به ویژگی‌های پیام مانند موضوع، بدنه، فرستنده و آدرس‌های گیرندگان و غیره را فراهم می‌کند. با متدهای آن می‌توانید ایمیل‌ها را ایجاد، بارگذاری، تجزیه، ویرایش، ذخیره یا سایر عملیات را انجام دهید.
  • SaveOptions کلاس گزینه‌هایی برای ذخیره پیام‌های ایمیل در قالب‌های مختلف فراهم می‌کند. این امکان را به کاربران می‌دهد تا نحوه ذخیره پیام‌های ایمیل در فرمت‌های مختلف را سفارشی کنند. با این کلاس، کاربران می‌توانند گزینه‌های ذخیره پیوست‌ها، سرآیندها، فراداده‌ها و ویژگی‌های پیام‌های ایمیل را مشخص کنند، گزینه‌های رمزگذاری تنظیم یا تصمیم بگیرند که پیام‌ها را با رمزنگاری ذخیره کنند یا نه.

در نمونه کد زیر این کلاس‌ها با هم کار می‌کنند تا یک فایل EML موجود را بارگذاری کرده و فرمت پیام را به عنوان EML مشخص کنند. سپس پیام ایمیل بارگذاری‌شده را به‌عنوان فایل HTML با استفاده از گزینه‌های پیش‌فرض ذخیره‌سازی HTML ذخیره می‌کنند:

  1. از MailMessage.Load() متد برای بارگذاری فایل موجود به‌عنوان شیء MailMessage و تعیین فرمت پیام.
  2. شیء MailMessage بارگذاری‌شده را به‌عنوان فایل HTML با استفاده از ذخیره متد. استفاده کنید از SaveOptions.DefaultHtml() برای مشخص کردن گزینه‌های ذخیره برای فرمت HTML.
// Initialize and Load an existing EML file by specifying the MessageFormat
var message = MailMessage.Load("myMessage.eml");
message.Save("output.html", SaveOptions.DefaultHtml);

ذخیره منابع EML در یک فایل جداگانه

Aspose.Email ارائه می‌دهد ResourceRenderingMode نوع شمارشی که به توسعه‌دهندگان امکان دستکاری منابع در یک فایل HTML را می‌دهد. در نمونه کد زیر، این enum برای ذخیره منابع در یک فایل و درج در HTML تگ ‘src’ با مسیر این فایل استفاده می‌شود:

  1. پیام ایمیل را از فایل منبع با استفاده از MapiMessage.Load متد.
  2. یک نمونه از HtmlSaveOptions با گزینه‌های رندرینگ و منابع مشخص شده.
  3. پیام ایمیل بارگذاری‌شده را به‌عنوان فایل HTML به مکان هدف ذخیره کنید با استفاده از ذخیره متد با پارامتر HtmlSaveOptions.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = true
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);

جاسازی منابع در یک فایل HTML

در برخی موارد، لازم است منابعی مانند تصاویر مستقیماً در فایل HTML جاسازی شوند تا توزیع و نمایش یکپارچه‌ای داشته باشند. با Aspose.Email برای .NET، می‌توانید به‌راحتی این کار را با استفاده از ResourceRenderingMode نوع شمارشی:

  1. پیام ایمیل را از فایل منبع با استفاده از MapiMessage.Load متد.
  2. ایجاد یک HtmlSaveOptions شیء و ویژگی ResourceRenderingMode را به EmbedIntoHtml تنظیم کنید.
  3. پیام ایمیل بارگذاری‌شده را به‌عنوان فایل HTML با استفاده از ذخیره متد، مسیر فایل هدف را مشخص می‌کند و شیء HtmlSaveOptions را به‌عنوان پارامتر برای جاسازی منابع در فایل HTML پاس می‌دهد.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);

تبدیل EML به ICS

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

// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// If an ICS view is found, save it to a file
if (icsView != null)
{
    File.WriteAllText("appointment.ics", icsView);
}

سفارشی‌سازی

Aspose.Email برای .NET ابزارهایی برای سفارشی‌سازی محتویات ICS (iCalendar) استخراج‌شده از فایل‌های EML (پست الکترونیک) ارائه می‌دهد.

سفارشی‌سازی جزئیات رویداد

نمونه کد زیر نشان می‌دهد که چگونه جزئیات مختلفی از قرار ملاقات مانند خلاصه، مکان و توصیف را تنظیم کنید. کد از Appointment کلاسی که قرارهای تقویم یا رویدادها را در فرمت ICS (iCalendar) نمایندگی می‌کند. این کلاس ویژگی‌ها و متدهایی برای ایجاد، ویرایش و مدیریت برنامه‌های تقویم به‌صورت برنامه‌نویسی فراهم می‌کند.

// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// If an ICS view is found, load it to Appointment class object
var appointment = Appointment.Load(new MemoryStream(Encoding.UTF8.GetBytes(icsView)));

// Customize the event details
appointment.Summary = "Customized Event Summary";
appointment.Location = "Customized Location";
appointment.Description = "Customized Event Description";

// Add or modify attendees as needed
appointment.Attendees.Clear();
appointment.Attendees.Add("custom@example.com");

// Save the customized ICS content to a file
appointment.Save("customized_appointment.ics");

ایجاد الگوی تکرار

نمونه کد زیر نشان می‌دهد که چگونه یک الگوی تکرار هفتگی برای یک قرار ملاقات ایجاد کنید که این قرار هر 5 هفته یک‌بار در روزهای شنبه رخ می‌دهد. کد از Recurrence ویژگی Appointment کلاسی که الگوی تکرار را دریافت یا تنظیم می‌کند.

var pattern = new  WeeklyRecurrencePattern(5, 7);
pattern. EndDate = new DateTime(2023, 8, 7);

appointment.Recurrence = pattern;

افزودن EML به MBOX

MBOX یک فرمت رایج برای ذخیره‌سازی چندین پیام ایمیل در یک فایل است که آن را برای بایگانی و مهاجرت ایمیل مناسب می‌سازد. از MboxrdStorageWriter کلاس برای نوشتن پیام‌های ایمیل به یک فایل MBOX. نمونه کد زیر نشان می‌دهد که چگونه این کار را انجام دهید:

using (var message = MailMessage.Load("inputFile.eml")){
	using (var writer = new MboxrdStorageWriter("output.mbox", false)){
			writer.WriteMessage(message);
	}
} 

تبدیل EML به MHTML

با Aspose.Email برای .NET، می‌توانید به راحتی فایل‌های EML را به فرمت MHTML برای اهداف مختلفی مانند بایگانی، سازگاری، مشاهده آفلاین و غیره تبدیل کنید. پیام ایمیل را با استفاده از MailMessage.Load، سپس از MhtSaveOptions کلاس به‌عنوان پارامتر برای MailMessage.Save متد برای تعیین فرمت فایل خروجی هنگام ذخیره پیام به‌صورت فایل جداگانه:

// Initialize and Load an existing EML file by specifying the MessageFormat
var message = MailMessage.Load("myMessage.eml");
var mhtSaveOptions = new MhtSaveOptions;
message.Save("output.mhtml", mhtSaveOptions);

این MhtSaveOptions کلاس گزینه‌های متنوعی برای سفارشی‌سازی فایل‌های خروجی MHTML فراهم می‌کند تا نیازهای خاص شما را برآورده سازد:

  • حفظ قالب‌بندی تاریخ اصلی. می‌توانید انتخاب کنید که قالب‌بندی اصلی پیام‌های ایمیل را در طول فرآیند تبدیل حفظ کنید:

    saveOptions.PreserveOriginalDate = true;
    
  • تنظیم رمزنگاری خروجی. می‌توانید رمزگذاری مورد استفاده هنگام نوشتن فایل‌های MHTML خروجی را مشخص کنید:

    saveOptions.OutputEncoding = Encoding.UTF8; 
    
  • شامل پیوست‌ها. این می‌تواند مفید باشد اگر بخواهید هنگام تبدیل ایمیل‌ها به فرمت MHTML پیوست‌ها را حفظ کنید:

    saveOptions.SaveAttachments = true;
    

تبدیل EML به MSG

چه نیاز به انتقال داده‌های ایمیل، بایگانی پیام‌ها یا ادغام با Microsoft Outlook داشته باشید، Aspose.Email راه‌حل‌هایی برای دستیابی به اهداف شما ارائه می‌دهد. فایل‌های MSG به‌طور گسترده‌ای توسط Microsoft Outlook استفاده می‌شوند. برای تبدیل EML به MSG، از MailMessage.Load متد برای بارگذاری فایل EML موجود که نحوه بارگذاری آن را با EmlLoadOptions.

نمونه کد زیر نشان می‌دهد که چگونه فایل‌های EML را به فرمت MSG تبدیل کنید:

// Load mail message
using (var message = MailMessage.Load("sourceFile.eml", new EmlLoadOptions())){
// Save as MSG
var msgSaveOptions = new MsgSaveOptions;
message.Save("output.msg", MsgSaveOptions);
} 

تبدیل EML به OFT

برای تبدیل فایل‌های EML به قالب Outlook (OFT)، پیام ایمیل موجود را با استفاده از MailMessage.Load متد و ذخیره آن با MailMessage.Save مشخص کردن گزینه‌های پیش‌فرض برای ذخیره‌سازی پیام به فرمت OFT:

// load the EML file to be converted
var message = MailMessage.Load("My File.eml"); 
// save EML as a OFT 
message.Save("Saved File.oft", SaveOptions.DefaultOft);

افزودن EML به PST

برای تبدیل فایل‌های EML به فرمت جدول ذخیره‌سازی شخصی (PST)، پیام را با استفاده از MapiMessage.Load متد، فایل خروجی را با PersonalStorage.Create و ایمیل را به پوشه Inbox ایجادشده در فایل ذخیره‌سازی با استفاده از AddMessage:

using (var msg = MapiMessage.Load("sourceFile.eml", new EmlLoadOptions()))
{
    using (var personalStorage = PersonalStorage.Create("outputFile.pst", FileFormatVersion.Unicode))
  {
        var inbox = personalStorage.RootFolder.AddSubFolder("Inbox");
        inbox.AddMessage(msg);
  }
}

افزودن EML به OST

توسعه‌دهندگان می‌توانند به راحتی فایل‌های EML را به فرمت جدول ذخیره‌سازی آفلاین Outlook (OST) تبدیل کنند و ادغام با Microsoft Outlook را امکان‌پذیر سازند. نمونه کد زیر نشان می‌دهد که چگونه یک پیام EML را به یک فایل OST اضافه کنید:

using (var ost = PersonalStorage.FromFile("storage.ost"))
{
    // Load the EML file
    var msg = MapiMessage.Load("message.eml", new EmlLoadOptions());

    // Add the EML message to the OST file
    var folderInfo = ost.RootFolder.GetSubFolder("Inbox");
    folderInfo.AddMessage(msg);
}

این EmlLoadOptions پارامتر گزینه‌های اضافی برای بارگذاری فایل‌های EML را مشخص می‌کند، مانند حفظ قالب‌های پیام تعبیه‌شده، حذف امضاها و موارد دیگر.

تبدیل EML به VCF

Aspose.Email برای .NET عملکردی برای تبدیل فایل‌های EML به فرمت vCard (VCF) ارائه می‌دهد که به توسعه‌دهندگان امکان استخراج اطلاعات تماس از پیام‌های ایمیل را می‌دهد. برای این منظور، کتابخانه گزینهٔ GetAlternateViewContent متد از MailMessage کلاسی که به توسعه‌دهندگان امکان دسترسی به نماهای جایگزین در پیام‌های ایمیل و استخراج محتوای VCF تعبیه‌شده در فایل‌های EML برای استفاده‌های بعدی را می‌دهد:

// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/vcard" (VCF)
var vcfView = eml.GetAlternateViewContent("text/vcard");
// If an VCF view is found, save it to a file
if (vcfView != null)
{
    File.WriteAllText("contact.vcf", vcfView);
}