이메일 메시지 로드 및 저장

이메일 메시지 로드

EML에서 로드

이 섹션에서는 다음을 사용하여 EML 파일을 MailMessage 객체로 로드하는 방법을 설명합니다: EmlLoadOptions 클래스. EmlLoadOptions 클래스는 내장 메시지 형식 유지 및 TNEF 첨부 파일 로드 동작 제어 등 EML 파일 로드 방식을 맞춤화할 다양한 옵션을 제공합니다.

  1. EmlLoadOptions 인스턴스를 초기화합니다.
  2. 필요에 따라 로드 옵션을 구성합니다.
  3. 다음 사용 MailMessage.Load() 지정된 옵션으로 EML 파일을 로드하는 메서드.
using Aspose.Email;

// Initialize EmlLoadOptions
var loadOptions = new EmlLoadOptions
{
    // Configure load options
    PreferredTextEncoding = Encoding.UTF8, // Sets preferred encoding for the message
    PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
    PreserveTnefAttachments = true, // Control TNEF attachment loading
    RemoveSignature = false // Do not remove the signature
};

// Load the EML file
var eml = MailMessage.Load("file.eml", loadOptions);

EmlLoadOptions 속성

내장 메시지 형식 유지

서명 포함/제외 메시지 로드

EML 파일을 로드할 때 서명 보존이 기본적으로 지원됩니다. 서명을 제거하려면 다음을 설정할 수 있습니다. LoadOptions.RemoveSignature 속성을 true 로 설정합니다.

아래 코드 예제는 메시지를 로드할 때 서명을 제거하는 방법을 보여줍니다:

var msg = MailMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});

EMLX에서 로드

다음 섹션에서는 EMLX 파일을 로드하는 방법을 다룹니다. EmlxLoadOptions 클래스. 이 클래스는 EmlLoadOptions와 유사한 옵션을 제공하며, 인코딩, 서명 제거 등에 대한 제어를 제공합니다.

  1. EmlxLoadOptions를 인스턴스화합니다.
  2. 필요에 따라 속성을 구성하세요.
  3. 다음 사용 MailMessage.Load() EMLX 파일을 로드하는 메서드.
using Aspose.Email;

// Instantiate EmlxLoadOptions
var loadOptions = new EmlxLoadOptions
{
    // Configure load options
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
    RemoveSignature = true // Remove signatures during loading
};

// Load the EMLX file
var emlx = MailMessage.Load("file.emlx", loadOptions);

EmlxLoadOptions 속성

  • PreferredTextEncoding: 메시지 제목 및 본문의 기본 인코딩을 설정합니다. 기본값은 null.
  • PreserveEmbeddedMessageFormat: 내장 메시지 형식을 유지할지 여부를 나타냅니다. 기본값은 false.
  • RemoveSignature: 로드 중 서명을 제거할지 여부를 지정합니다. 기본값은 false.

HTML에서 로드

HTML 파일을 MailMessage에 로드하는 방법을 알아보세요. HtmlLoadOptions 클래스. 이 클래스는 리소스 관리 및 일반 텍스트 뷰 추가 옵션을 통해 HTML 콘텐츠를 처리하도록 특별히 설계되었습니다.

  1. HtmlLoadOptions의 인스턴스를 초기화합니다.
  2. 필요한 속성을 구성하세요.
  3. 다음 사용 MailMessage.Load() 지정된 옵션으로 HTML 파일을 로드하는 메서드.
using Aspose.Email;

// Initialize HtmlLoadOptions
var loadOptions = new HtmlLoadOptions
{
    // Configure load options
    PathToResources = "resources/", // Path to directory containing resource files
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    ShouldAddPlainTextView = true // Add plain text view of the body
};

// Load the HTML file
var html = MailMessage.Load("file.html", loadOptions);

HtmlLoadOptions 속성

  • PathToResources: 리소스 파일(예: 이미지)이 들어 있는 디렉터리 경로를 정의합니다.
  • PreferredTextEncoding: 메시지 제목 및 본문에 대한 선호 인코딩을 설정합니다. 기본값은 null.
  • PreserveEmbeddedMessageFormat: 포함된 메시지의 형식을 보존할지 여부를 결정합니다. 기본값은 false.
  • ShouldAddPlainTextView: 메시지 본문의 일반 텍스트 뷰를 추가할지 여부를 지정합니다. 기본값은 false.

MHTML에서 로드

이 섹션에서는 MHTML 파일을 로드하는 방법을 설명합니다. MhtmlLoadOptions 클래스. MhtmlLoadOptions 클래스는 인코딩 관리, 포함된 메시지 형식 보존 및 TNEF 첨부 파일 처리를 위한 옵션을 제공합니다.

  1. MhtmlLoadOptions의 인스턴스를 생성합니다.
  2. 원하는 속성을 구성하세요.
  3. 다음 메서드를 사용하여 MHTML 파일을 로드합니다: MailMessage.Load() 메서드.
using Aspose.Email;

// Create MhtmlLoadOptions
var loadOptions = new MhtmlLoadOptions
{
    // Set load options
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
    PreserveTnefAttachments = true, // Handle TNEF attachments
    RemoveSignature = false // Keep the signature
};

// Load the MHTML file
var mhtml = MailMessage.Load("file.mht", loadOptions);

MhtmlLoadOptions 속성

  • MessageFormat: 메일 메시지 형식을 나타냅니다(EML, MSG 또는 MHTML 가능). 기본값은 EML입니다.
  • PreferredTextEncoding: 메시지 제목 및 본문의 기본 인코딩을 설정합니다. 기본값은 null.
  • PreserveEmbeddedMessageFormat: 포함된 메시지의 형식을 보존할지 여부를 결정합니다. 기본값은 false.
  • PreserveTnefAttachments: TNEF 첨부 파일 로드 동작을 제어합니다. 기본값은 false.
  • RemoveSignature: 로드 중 서명을 제거할지 여부를 지정합니다. 기본값은 false.

MSG에서 로드

이 섹션에서는 MSG 파일을 MailMessage 객체로 로드하는 방법을 설명합니다. MsgLoadOptions 클래스. MsgLoadOptions 클래스는 MSG 파일이 로드되는 방식을 처리하기 위한 다양한 속성을 제공하며, 여기에는 RTF 콘텐츠를 보존하거나 TNEF 첨부 파일을 관리하는 옵션이 포함됩니다.

  1. MsgLoadOptions의 인스턴스를 생성합니다.
  2. 로드를 맞춤 설정하기 위해 원하는 속성을 설정하세요.
  3. 다음을 사용하여 MSG 파일을 로드합니다 MailMessage.Load() 메서드.
using Aspose.Email;

// Create MsgLoadOptions
var loadOptions = new MsgLoadOptions
{
    // Set load options
    KeepOriginalEmailAddresses = true, // Preserve original email addresses
    PreferredTextEncoding = Encoding.UTF8, // Set preferred encoding
    PreserveRtfContent = true, // Keep RTF content in the message
    PreserveTnefAttachments = true, // Handle TNEF attachments
    RemoveSignature = false, // Keep the signature
    Timeout = 5000 // Set timeout to 5 seconds
};

// Load the MSG file
var msg = MailMessage.Load("file.msg", loadOptions);

MsgLoadOptions 속성

  • KeepOriginalEmailAddresses: 원본 이메일 주소를 유지할지 여부를 나타냅니다. 기본값은 false.
  • PreferredTextEncoding: 메시지 제목 및 본문에 대한 선호 인코딩을 정의합니다. 기본값은 null.
  • PreserveEmbeddedMessageFormat: 포함된 메시지의 형식을 유지할지 여부를 결정합니다. 기본값은 false.
  • PreserveRtfContent: RTF 본문 내용을 유지할지 여부를 지정합니다 MailMessage. 기본값은 false.
  • PreserveTnefAttachments: TNEF 첨부 파일 로드 동작을 관리합니다. 기본값은 false.
  • RemoveSignature: 로드 중 서명을 제거할지 여부를 결정합니다. 기본값은 false.
  • 시간 제한: 변환 중 형식 지정 시간을 밀리초 단위로 제한합니다. 기본값은 3000 ms입니다.

TNEF 로드

TNEF eml 파일을 로드하는 방법을 알아보세요 TnefLoadOptions 클래스. 이 클래스는 로드 과정에서 인코딩을 관리하고 서명을 제거하는 옵션을 제공합니다.

  1. TnefLoadOptions를 인스턴스화합니다.
  2. 필요에 따라 속성을 구성합니다.
  3. 다음 사용 MailMessage.Load() TNEF 파일을 로드하는 메서드.
using Aspose.Email;

// Instantiate TnefLoadOptions
var loadOptions = new TnefLoadOptions
{
    // Configure load options
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
    RemoveSignature = true // Remove signatures during loading
};

// Load the TNEF file
var tnef = MailMessage.Load("file.eml", loadOptions);

TnefLoadOptions 속성

  • MessageFormat: EML, MSG, MHTML와 같은 메일 메시지 형식을 나타냅니다. 기본값은 EML.
  • PreferredTextEncoding: 메시지 제목 및 본문의 기본 인코딩을 설정합니다. 기본값은 null.
  • PreserveEmbeddedMessageFormat: 내장 메시지 형식을 유지할지 여부를 나타냅니다. 기본값은 false.
  • RemoveSignature: 로드 중 서명을 제거할지 여부를 지정합니다. 기본값은 false.

파일 형식 감지

Aspose.Email API는 제공된 메시지 파일의 파일 형식을 감지하는 기능을 제공합니다. The DetectFileFormat 메서드 FileFormatUtil 이 작업을 수행할 수 있는 클래스입니다. 다음 클래스와 메서드를 사용하여 로드된 파일 형식을 감지할 수 있습니다.

다음 코드 스니펫은 파일 형식을 감지하는 방법을 보여줍니다.

메시지 저장 및 변환

Aspose.Email를 사용하면 모든 메시지 유형을 다른 형식으로 쉽게 변환할 수 있습니다. 이 기능을 보여주기 위해 이 문서의 코드는 디스크에서 세 종류의 메시지를 로드하고 다른 형식으로 다시 저장합니다. 기본 클래스 SaveOptions 및 클래스 EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions 저장 시 추가 설정을 위해 MailMessage 다른 형식으로 메시지를 저장하는 데 사용할 수 있습니다. 이 문서는 이러한 클래스를 사용하여 샘플 이메일을 다음과 같이 저장하는 방법을 보여줍니다:

  • EML 형식.
  • Outlook MSG.
  • MHTML 형식.
  • HTML 형식.

EML로 저장

다음 코드 스니펫은 EML 메시지를 로드하고 동일한 형식으로 디스크에 저장하는 방법을 보여줍니다.

원본 경계 보존

다음 코드 스니펫은 원본 경계를 보존하면서 EML을 로드하고 EML로 저장하는 방법을 보여줍니다.

TNEF 첨부 파일 보존

다음 코드 스니펫은 TNEF 첨부 파일을 보존하면서 EML로 저장하는 방법을 보여줍니다.

EML을 MSG로 저장

다음 코드 스니펫은 적절한 옵션을 사용하여 EML 메시지를 로드하고 MSG로 변환하는 방법을 보여줍니다 SaveOptions.

날짜 보존

다음은 MsgSaveOptions 클래스를 사용하면 원본 메시지를 날짜를 보존한 상태로 Outlook 메시지 파일(MSG)로 저장할 수 있습니다. 다음 코드 스니펫은 날짜를 보존하여 MSG로 저장하는 방법을 보여줍니다.

EML을 MHTML로 저장

원하는 결과를 얻기 위해 다양한 MHTML 옵션을 사용할 수 있습니다. 다음 코드 스니펫은 EML 메시지를 로드하는 방법을 보여줍니다: MailMessage 그리고 UTC 시스템의 메시지 날짜와 함께 MHTML로 변환합니다.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET

// Set options for MHTML output
MhtSaveOptions saveOptions = SaveOptions.DefaultMhtml;
saveOptions.PreserveOriginalDate = false; // save a message date as UTC date

// Initialize and load an existing EML file
using (MailMessage mailMessage = MailMessage.Load(folderPath + "Message.eml"))
{
    mailMessage.Save(folderPath + "Message_out.mhtml", saveOptions);
}

변환 옵션

다음은 MhtSaveOptions 이 클래스는 이메일 메시지를 MHTML 형식으로 저장하기 위한 추가 옵션을 제공합니다. 열거형 MhtFormatOptions 추가 이메일 정보를 출력 MHTML에 기록할 수 있게 합니다. 다음 추가 필드를 기록할 수 있습니다:

  • WriteHeader – 이메일 헤더를 출력 파일에 씁니다.
  • WriteOutlineAttachments – 개요 첨부 파일을 출력 파일에 씁니다.
  • WriteCompleteEmailAddress – 전체 이메일 주소를 출력 파일에 씁니다.
  • NoEncodeCharacters – 문자 전송 인코딩을 사용하지 않아야 합니다.
  • HideExtraPrintHeader – 출력 파일 상단의 추가 인쇄 헤더를 숨깁니다.
  • WriteCompleteToEmailAddress – 수신자의 전체 이메일 주소를 출력 파일에 씁니다.
  • WriteCompleteFromEmailAddress – 발신자의 전체 이메일 주소를 출력 파일에 씁니다.
  • WriteCompleteCcEmailAddress – 참조 수신자의 전체 이메일 주소를 출력 파일에 씁니다.
  • WriteCompleteBccEmailAddress – 숨은 참조 수신자의 전체 이메일 주소를 출력 파일에 씁니다.
  • RenderCalendarEvent – 캘린더 이벤트의 텍스트를 출력 파일에 씁니다.
  • SkipByteOrderMarkInBody – Byte Order Mark(BOM) 바이트를 출력 파일에 씁니다.
  • RenderVCardInfo – VCard AlternativeView의 텍스트를 출력 파일에 씁니다.
  • DisplayAsOutlook – From 헤더를 표시합니다.
  • RenderTaskFields – 특정 작업 필드를 출력 파일에 씁니다.
  • None – 설정이 지정되지 않음.

다음 코드 스니펫은 선택적 설정을 사용하여 EML 파일을 MHTML로 변환하는 방법을 보여줍니다.

캘린더 이벤트 렌더링

다음은 MhtFormatOptions.RenderCalendarEvent 캘린더 이벤트를 출력 MHTML로 렌더링합니다. 다음 코드 스니펫은 MHTML로 변환하면서 캘린더 이벤트를 렌더링하는 방법을 보여줍니다.

인라인 이미지 없이 이메일을 MHT로 내보내기

맞춤형 시간대로 이메일을 MHT로 내보내기

MailMessage class는 다음을 제공합니다 TimeZoneOffset MHT로 내보낼 때 사용자 지정 시간대를 설정하는 속성입니다. 다음 코드 스니펫은 사용자 지정 시간대로 이메일을 MHT로 내보내는 방법을 보여줍니다.

글꼴 조정

EML을 HTML로 저장

다음은 HtmlSaveOptions 클래스는 메시지 본문을 HTML로 내보내는 기능을 제공합니다. 다음 코드 스니펫은 메시지를 HTML로 저장하는 방법을 보여줍니다.

임베디드 리소스 없이 저장

EML을 OFT로 저장

다음 코드 스니펫은 메시지를 Outlook 템플릿(.oft) 파일로 저장하는 방법을 보여줍니다.

EML을 MSG로 변환 (MailMessage에서 MapiMessage로)

변환하려면 MailMessage EML 파일에서 로드된 객체를 MapiMessage 객체, 다음을 사용하십시오 MapiConversionOptions 클래스. 이러한 변환은 두 객체가 이메일 처리에서 서로 다른 목적을 수행하고 구별되는 요구를 충족하기 때문에 종종 필요합니다. MapiMessage Microsoft Outlook 및 Exchange Server와의 호환성을 위해 특별히 설계되었으며, 메일링 애플리케이션 프로그래밍 인터페이스(MAPI) 형식을 준수합니다. 이는 MSG 파일로 변환된 이메일이 Microsoft 제품과 완전히 호환되어 Outlook 내에서 직접 열고, 수정하고, 관리할 수 있게 합니다.

예를 들어, 이메일을 보관, 인덱싱하거나 MAPI 형식, PST/OST, OLM 스토리지를 필요로 하는 저장소에서 처리해야 할 때에도 이 변환이 필요합니다. 그 MapiConversionOptions 이 클래스는 원본 메시지 형식 보존, 원본 날짜 유지, 변환 중 RTF 본문 압축 등 추가 옵션을 지정할 수 있게 합니다. 다음 코드 예제는 .eml 형식 파일에서 이메일을 로드하고 Outlook .msg 형식으로 변환하는 방법을 보여 주며, 사용자 지정이 가능하면서도 원본 이메일의 특정 특성이 변환 과정에서 보존되도록 합니다.

  1. 다음의 인스턴스를 생성합니다 MapiConversionOptions 및 해당 속성을 구성합니다.
  2. 변환 MailMessage 객체를 MapiMessage 구성된 변환 옵션을 사용하는 객체.
MailMessage eml = MailMessage.Load("email.eml", new EmlLoadOptions());

// Create an instance of MapiConversionOptions
var conversionOptions = new MapiConversionOptions
{
    // Configure MapiConversionOptions
    Format = OutlookMessageFormat.Unicode, // Use Unicode format for MSG
    PreserveEmbeddedMessageFormat = true, // Preserve the format of embedded messages
    PreserveOriginalAddresses = true, // Keep original email addresses
    PreserveOriginalDates = true, // Preserve original dates
    PreserveEmptyDates = false, // Generate new dates if original are empty
    RemoveSignature = false, // Do not remove the signature
    UseBodyCompression = true, // Enable RTF body compression
    ForcedRtfBodyForAppointment = false // Disable forced RTF body for appointments
};

// Convert MailMessage to MapiMessage
MapiMessage msg = MapiMessage.FromMailMessage(eml, conversionOptions);

MapiConversionOptions의 사용 가능한 속성

  • ASCIIFormat: 반환합니다 MapiConversionOptions 구성됨 OutlookMessageFormat ASCII로, 다음과 함께 PreserveSignature false로 설정하고 UseBodyCompression false로 설정합니다. 순수 ASCII 형식 변환이 필요할 때 유용한 옵션입니다.

  • UnicodeFormat: 반환합니다 MapiConversionOptions 와 함께 OutlookMessageFormat Unicode로 설정하고, 두 PreserveSignatureUseBodyCompression false로 설정합니다. MSG 파일에서 더 포괄적인 문자 지원을 위해 이 옵션을 사용하세요.

  • ForcedRtfBodyForAppointment: true로 설정하면 캘린더 약속에 RTF 본문 사용을 강제합니다. 이는 특정 메일 클라이언트와의 호환성을 보장하려는 경우에 유용합니다. 기본값은 true입니다.

  • Format: MSG 파일의 출력 형식을 지정합니다. 다음 중 하나로 설정할 수 있습니다 OutlookMessageFormat.ASCII 또는 OutlookMessageFormat.Unicode, 변환된 MSG가 ASCII 또는 Unicode 인코딩을 사용할지 제어합니다.

  • PreserveEmbeddedMessageFormat: 포함된 메시지의 원본 EML 형식을 유지할지 여부를 결정합니다 MapiMessage. true로 설정하면 포함된 이메일이 원본 구조를 유지합니다. 기본값은 false입니다.

  • PreserveEmptyDates: true로 설정하면 EML의 원본 저장 및 수정 날짜를 보존합니다. 원본 날짜가 비어 있으면 새 날짜가 생성됩니다.

  • PreserveOriginalAddresses: true로 설정하면 검증 없이 원본 이메일 주소를 유지합니다. 이는 엄격한 표준을 따르지 않을 수 있는 이메일 주소를 그대로 보존해야 할 때 유용합니다. 기본값은 false입니다.

  • PreserveOriginalDates: 변환 과정에서 원본 송수신 날짜를 유지하도록 보장합니다. true로 설정하면 더 정확한 기록을 위해 날짜가 보존됩니다.

  • RemoveSignature: 디지털 서명이 있는 경우 변환 중에 메시지에서 서명을 제거할지 여부를 제어합니다. 기본값은 false이며, 명시적으로 제거하지 않는 한 서명이 유지됩니다.

  • UseBodyCompression: true로 설정하면 RTF 본문 압축을 활성화합니다. 이는 풍부한 서식이 포함된 큰 메시지의 MSG 파일 크기를 줄이는 데 도움이 됩니다.