Outlook 메시지 관리

이메일을 HTML로 저장

Aspose.Email는 메시지를 HTML 형식으로 내보낼 때 이메일 리소스를 상대 경로로 저장할 수 있게 합니다. 이 기능은 출력 HTML 파일에서 리소스 연결 방식을 보다 유연하게 하여 다양한 시스템에서 저장된 이메일을 쉽게 공유하고 표시할 수 있게 합니다. 리소스를 상대 경로로 저장하려면 HtmlSaveOptions.UseRelativePathToResources 속성을 사용해 정의합니다. 기본값은 false이며(리소스가 절대 경로로 저장됨) true로 설정하면 리소스가 상대 경로로 저장됩니다.

상대 경로를 가진 HTML 파일은 더 이식성이 높으며 호스팅 환경의 파일 구조에 관계없이 올바르게 표시됩니다. 요구 사항에 따라 절대 경로나 상대 경로를 선택할 수 있습니다. 리소스에 대한 사용자 지정 경로는 ResourceHtmlRendering 이벤트.

다음 코드 샘플은 리소스에 대한 기본 상대 경로로 이메일을 저장하는 방법을 보여줍니다:

var msg = MapiMessage.Load(sourceFileName);

var htmlSaveOptions = new HtmlSaveOptions
{
    ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
    UseRelativePathToResources = true
};

msg.Save(Path.Combine("target_files"), htmlSaveOptions);

이 경우 리소스는 [html 파일 이름]_files 폴더에 .html 파일과 동일한 경로에 저장되며 HTML은 상대 경로를 통해 리소스를 참조합니다.

아래 코드 샘플은 리소스에 대한 절대 경로로 저장하는 방법을 보여줍니다:

var msg = MapiMessage.Load(sourceFileName);

var htmlSaveOptions = new HtmlSaveOptions
{
    ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
    UseRelativePathToResources = false
};

msg.Save(Path.Combine("target_files"), htmlSaveOptions);

첫 번째 경우와 같이, 기본적으로 리소스는 [html 파일 이름]_files 폴더에 저장되며 HTML은 절대 경로를 사용해 리소스를 참조합니다.

사용하여 ResourceHtmlRendering 이벤트를 사용하면 리소스에 대해 사용자 정의 상대 경로나 절대 경로를 설정할 수 있습니다. 경로를 사용자 정의할 때 ResourceHtmlRendering 이벤트 핸들러이며, 그리고 UseRelativePathToResources true 로 설정되면, 상대 경로를 지정해야 합니다. PathToResourceFile 정확한 참조를 보장하기 위한 속성입니다.

다음 코드 샘플은 ResourceHtmlRendering 이벤트를 사용한 사용자 지정 상대 경로 방법을 보여줍니다

var msg = MapiMessage.Load(sourceFileName);

var htmlSaveOptions = new HtmlSaveOptions
{
    ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
    UseRelativePathToResources = true
};

htmlSaveOptions.ResourceHtmlRendering += (o, args) =>
{
    if (o is AttachmentBase attachment)
    {
	    // Since UseRelativePathToResources = true, you should assign a relative path to the PathToResourceFile property.
        args.PathToResourceFile = $@"images\{attachment.ContentType.Name}";
    }
};

msg.Save(Path.Combine(targetPath, "A Day in the Park.html"), htmlSaveOptions);

MSG를 MIME 메시지로 변환

Aspose.Email API는 다음을 사용하여 MSG 파일을 MIME 메시지로 변환하는 기능을 제공합니다. ToMailMessage 메서드.

메시지 변환 및 로드 타임아웃 설정

다음 기능을 사용하면 변환 및 로드 과정에 대한 타임아웃을 밀리초 단위로 설정할 수 있습니다:

아래 코드 샘플은 메시지를 변환할 때 타임아웃을 설정하는 방법을 보여줍니다:

var options = new MailConversionOptions();
// Set the timeout to 5 seconds
options.Timeout = 5000;

options.TimeoutReached += (object sender, EventArgs args) =>
{
    string subj = (sender as MailMessage).Subject;
	 // Set a flag indicating the timeout was reached
    isTimedOut = true;
};

var mailMessage = mapiMessage.ToMailMessage(options);

RTF 본문을 보존하는 MSG에서 EML 변환

RTF 본문을 보존하면서 MSG 파일을 EML로 변환하는 방법은 두 가지가 있습니다:

두 속성은 MailMessage에 RTF 본문을 유지할지 여부를 나타내는 값을 가져오거나 설정합니다.

다음 코드 스니펫은 MSG 파일을 EML로 변환하면서 RTF 본문을 보존하는 방법을 보여줍니다:

var loadOptions = new MsgLoadOptions
{
    PreserveRtfContent = true
};

var eml = MailMessage.Load("my.msg", loadOptions);
var conversionOptions = new MailConversionOptions
{
    PreserveRtfContent = true
};

var msg = MapiMessage.Load("my.msg");

var eml = msg.ToMailMessage(conversionOptions);

Outlook 템플릿 파일(.OFT) 처리

Outlook 템플릿은 유사한 이메일을 반복해서 보낼 때 매우 유용합니다. 매번 처음부터 메시지를 작성하는 대신 먼저 Outlook에서 메시지를 작성하고 Outlook 템플릿(OFT)으로 저장합니다. 이후 메시지를 보낼 필요가 있을 때마다 템플릿에서 생성하면 본문이나 제목에 동일한 텍스트를 작성하고 서식을 설정하는 등 시간을 절약할 수 있습니다. Aspose.Email의 MailMessage 클래스를 사용하여 Outlook 템플릿(OFT) 파일을 로드하고 읽을 수 있습니다. Outlook 템플릿이 해당 인스턴스에 로드되면 MailMessage 클래스를 사용하면 발신자, 수신자, 본문, 제목 및 기타 속성을 업데이트할 수 있습니다. 속성을 업데이트한 후:

  • 다음으로 이메일을 보냅니다 SmtpClient 클래스 또는
  • 메시지를 MSG로 저장하고 Microsoft Outlook을 사용하여 추가 업데이트/검증을 수행합니다.

아래 코드 예시에서 우리는:

  1. 다음으로 템플릿을 로드합니다 MailMessage 클래스.
  2. 몇몇 속성을 업데이트합니다.
  3. 메시지를 MSG 형식으로 저장합니다.

다음 코드 스니펫은 OFT 파일을 로드하고 메시지를 업데이트한 뒤 MSG 형식으로 저장하는 방법을 보여줍니다.

MSG 파일을 템플릿으로 저장

다음 코드 스니펫은 Outlook MSG 파일을 템플릿으로 저장하는 방법을 보여줍니다.

MAPI 메시지 유형 결정 (OFT 또는 MSG)

파일에서 MapiMessage 객체를 로드할 때 로드된 메시지가 템플릿 파일인지 일반 이메일 파일인지 판단해야 할 수 있습니다. 이를 위해 IsTemplate 속성 MapiMessage 클래스를 사용하면 이메일이 템플릿인지 여부를 정확히 감지할 수 있습니다. 이 기능은 애플리케이션 및 시스템 내에서 다양한 유형의 이메일 파일을 처리하고 관리할 때 유용합니다.

아래 코드 예제는 MapiMessage가 OFT인지 MSG인지 판단하는 방법을 보여줍니다:

var msg = MapiMessage.Load("message.msg");
var isOft = msg.IsTemplate; // returns false

var msg = MapiMessage.Load("message.oft");
var isOft = msg.IsTemplate; // returns true

MapiMessage 또는 MailMessage를 OFT 형식으로 저장

다음은 SaveOptions 클래스는 MailMessage 또는 MapiMessage를 특정 형식으로 저장할 때 추가 옵션을 지정할 수 있게 합니다.

다음 코드 샘플은 메시지를 OFT 형식으로 저장하는 방법을 보여줍니다:

// Save the MailMessage to OFT format
using (var eml = MailMessage.Load("message.eml"))
{
    eml.Save("message.oft", SaveOptions.DefaultOft);
	
	// or alternative way #2
	var saveOptions = new MsgSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    eml.Save("message.oft", saveOptions);
	
	// or alternative  way #3
	saveOptions = SaveOptions.CreateSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    eml.Save("message.oft", saveOptions);

}

// Save the MapiMessage to OFT format
using (var msg = MapiMessage.Load("message.msg"))
{
    msg.Save("message.oft", SaveOptions.DefaultOft);
	
	// or alternative way #2
	var saveOptions = new MsgSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    msg.Save("message.oft", saveOptions);
	
	// or alternative  way #3
	saveOptions = SaveOptions.CreateSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    msg.Save("message.oft", saveOptions);
}

디지털 서명된 메시지 관리

Aspose.Email는 완전한 S/MIME 이메일 객체 알고리즘을 구현합니다. 이를 통해 API는 형식 간 메시지 변환 시 디지털 서명을 완전히 보존할 수 있습니다.

EML에서 MSG 변환 시 서명 보존

Aspose.Email은 EML을 MSG로 변환할 때 디지털 서명을 보존합니다. 다음 코드 스니펫은 EML을 MSG로 변환하는 방법을 보여줍니다.

MSG에서 EML로 S/MIME 메시지 변환

Aspose.Email은 MSG를 EML로 변환할 때 디지털 서명을 보존합니다. 다음 코드 스니펫을 참고하십시오.

보안 이메일 서명 확인

다음 기능을 통해 MapiMessage 객체의 서명을 확인할 수 있습니다.

아래 코드 샘플은 프로젝트에 기능을 구현하는 방법을 보여줍니다:

var msg = MapiMessage.Load(fileName, new EmlLoadOptions());
var result = new SecureEmailManager().CheckSignature(msg);

var certFileName = "cert.pfx";
var cert = new X509Certificate2(certFileName, "pass");
var eml = MapiMessage.Load(fileName);
var store = new X509Store();
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();

var result = new SecureEmailManager().CheckSignature(eml, cert, store);

MapiMessage에서 서명 제거

보다 나은 호환성을 위해, MapiMessage.RemoveSignature 메서드 및 MapiMessage.IsSigned 속성은 메시지에서 디지털 서명을 제거하는 데 사용됩니다.

다음 코드 스니펫은 이러한 기능을 프로젝트에 구현하는 방법을 보여줍니다:

var msg = MapiMessage.Load(fileName);

if (msg.IsSigned)
{
    var unsignedMsg = msg.RemoveSignature();
}

인증서로 MapiMessage 복호화

암호화된 MAPI 메시지가 있고, 인증서에 저장된 개인키를 사용해 복호화해야 하는 경우, Aspose.Email의 다음 기능이 유용할 수 있습니다:

다음 코드 스니펫은 암호화된 MAPI 메시지를 처리하는 방법을 보여줍니다:

var privateCert = new X509Certificate2(privateCertFile, "password");
var msg = MapiMessage.Load("encrypted.msg");

if (msg.IsEncrypted);
{
    var decryptedMsg = msg.Decrypt(privateCert);
}

MSG 파일에 색상 범주 설정

색상 카테고리는 이메일 메시지에 특정 중요도나 범주를 표시합니다. Microsoft Outlook에서는 사용자가 색상 카테고리를 할당하여 이메일을 구분할 수 있습니다. 색상 카테고리를 처리하려면 다음을 사용하십시오 FollowUpManager. 다음과 같은 함수들을 포함합니다 AddCategory, RemoveCategory, ClearCategories 및 GetCategories.

  • AddCategory 받습니다 MapiMessage 그리고 색상 카테고리 문자열을 인수로 사용합니다. 예: "Purple Category" 또는 "Red Category".
  • RemoveCategory 받습니다 MapiMessage 그리고 메시지에서 제거할 색상 카테고리 문자열입니다.
  • ClearCategories 메시지에서 모든 색상 카테고리를 제거하는 데 사용됩니다.
  • GetCategories 특정 메시지에서 모든 색상 카테고리를 검색하는 데 사용됩니다.

다음 예제는 아래와 같이 작업을 수행합니다:

  1. 색상 카테고리를 추가합니다.
  2. 다른 색상 카테고리를 추가합니다.
  3. 모든 카테고리의 목록을 검색합니다.
  4. 모든 카테고리를 제거합니다.

MSG 파일에서 후속 조치 정보 접근

Aspose.Email API는 보낸 또는 받은 메시지에서 후속 정보를 액세스할 수 있는 기능을 제공합니다. 메시지 파일에서 읽음, 배달 영수증 및 투표 결과 정보를 검색할 수 있습니다.

읽음 및 배달 영수증 정보 가져오기

다음 코드 스니펫은 읽음 및 배달 영수증 정보를 검색하는 방법을 보여줍니다.

전달 및 회신 메시지 만들기

Aspose.Email API는 전달 및 회신 메시지를 생성하고 서식 지정하는 기능을 제공합니다. ReplyMessageBuilderForwardMessageBuilder API의 클래스는 각각 회신 및 전달 메시지를 만드는 데 사용됩니다. 회신 또는 전달 메시지는 다음 모드 중 任意 하나를 사용해 생성하도록 지정할 수 있습니다. OriginalMessageAdditionMode 열거형. 이 열거형은 다음 값을 가집니다:

  • OriginalMessageAdditionMode.None - 원본 메시지가 응답 메시지에 포함되지 않습니다.
  • OriginalMessageAdditionMode.Attachment - 원본 메시지가 응답 메시지에 첨부 파일로 포함됩니다
  • OriginalMessageAdditionMode.Textpart - 원본 메시지는 응답 메시지 본문에 텍스트로 포함됩니다

회신 메시지 만들기

다음 코드 스니펫은 회신 메시지를 만드는 방법을 보여줍니다.

전달 메시지 만들기

다음 코드 조각은 전달 메시지를 만드는 방법을 보여줍니다.