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 메서드.
메시지 변환 및 로드 타임아웃 설정
다음 기능을 사용하면 변환 및 로드 과정에 대한 타임아웃을 밀리초 단위로 설정할 수 있습니다:
-
MailConversionOptions.Timeout property- 메시지를 변환하는 동안 제한 시간을 밀리초 단위로 지정합니다.
-
MailConversionOptions.TimeoutReached - MailMessage로 변환 중 시간 초과가 발생하면 발생합니다.
-
MsgLoadOptions.Timeout - 메시지를 변환하는 동안 시간을 밀리초 단위로 제한합니다.
-
MsgLoadOptions.TimeoutReached - MailMessage로 변환 중 시간 초과가 발생하면 발생합니다.
아래 코드 샘플은 메시지를 변환할 때 타임아웃을 설정하는 방법을 보여줍니다:
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로 변환하는 방법은 두 가지가 있습니다:
-
사용하여 MsgLoadOptions.PreserveRtfContent 속성 MsgLoadOptions class;
-
사용하여 MailConversionOptions.PreserveRtfContent 속성 MailConversionOptions class;
두 속성은 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을 사용하여 추가 업데이트/검증을 수행합니다.
아래 코드 예시에서 우리는:
- 다음으로 템플릿을 로드합니다 MailMessage 클래스.
- 몇몇 속성을 업데이트합니다.
- 메시지를 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 객체의 서명을 확인할 수 있습니다.
- SecureEmailManager 보안 이메일 서명을 확인하는 클래스.
- SmimeResult 검사 결과를 저장하는 클래스.
- SecureEmailManager.CheckSignature(MapiMessage msg) 메서드.
- SecureEmailManager.CheckSignature(MapiMessage msg, X509Certificate2 certificateForDecrypt) 메서드.
- SecureEmailManager.CheckSignature(MapiMessage msg, X509Certificate2 certificateForDecrypt, X509Store store) 메서드.
아래 코드 샘플은 프로젝트에 기능을 구현하는 방법을 보여줍니다:
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의 다음 기능이 유용할 수 있습니다:
- MapiMessage.IsEncrypted - 메시지가 암호화되었는지 여부를 나타내는 값을 가져옵니다.
- MapiMessage.Decrypt() - 이 메시지를 복호화합니다(메서드는 현재 사용자와 컴퓨터의 My 스토어에서 적절한 인증서와 개인 키를 검색합니다).
- MapiMessage.Decrypt(X509Certificate2 certificate) - 인증서를 사용하여 이 메시지를 복호화합니다.
다음 코드 스니펫은 암호화된 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 특정 메시지에서 모든 색상 카테고리를 검색하는 데 사용됩니다.
다음 예제는 아래와 같이 작업을 수행합니다:
- 색상 카테고리를 추가합니다.
- 다른 색상 카테고리를 추가합니다.
- 모든 카테고리의 목록을 검색합니다.
- 모든 카테고리를 제거합니다.
MSG 파일에서 후속 조치 정보 접근
Aspose.Email API는 보낸 또는 받은 메시지에서 후속 정보를 액세스할 수 있는 기능을 제공합니다. 메시지 파일에서 읽음, 배달 영수증 및 투표 결과 정보를 검색할 수 있습니다.
읽음 및 배달 영수증 정보 가져오기
다음 코드 스니펫은 읽음 및 배달 영수증 정보를 검색하는 방법을 보여줍니다.
전달 및 회신 메시지 만들기
Aspose.Email API는 전달 및 회신 메시지를 생성하고 서식 지정하는 기능을 제공합니다. ReplyMessageBuilder 및 ForwardMessageBuilder API의 클래스는 각각 회신 및 전달 메시지를 만드는 데 사용됩니다. 회신 또는 전달 메시지는 다음 모드 중 任意 하나를 사용해 생성하도록 지정할 수 있습니다. OriginalMessageAdditionMode 열거형. 이 열거형은 다음 값을 가집니다:
- OriginalMessageAdditionMode.None - 원본 메시지가 응답 메시지에 포함되지 않습니다.
- OriginalMessageAdditionMode.Attachment - 원본 메시지가 응답 메시지에 첨부 파일로 포함됩니다
- OriginalMessageAdditionMode.Textpart - 원본 메시지는 응답 메시지 본문에 텍스트로 포함됩니다
회신 메시지 만들기
다음 코드 스니펫은 회신 메시지를 만드는 방법을 보여줍니다.
전달 메시지 만들기
다음 코드 조각은 전달 메시지를 만드는 방법을 보여줍니다.