메시지 첨부 파일 관리
Outlook에서 첨부 파일 처리
Outlook 메시지(MSG) 파일 만들기 및 저장 메시지를 생성하고 저장하는 방법, 그리고 첨부 파일이 포함된 MSG 파일을 만드는 방법을 설명합니다. 이 문서는 Aspose.Email을 사용하여 Microsoft Outlook 첨부 파일을 관리하는 방법을 설명합니다. 메시지 파일의 첨부 파일은 다음을 사용하여 액세스하고 디스크에 저장됩니다 the MapiMessage 클래스 첨부 파일 속성. 첨부 파일 속성은 타입의 컬렉션입니다 MapiAttachmentCollection 클래스.
첨부 파일 유형 확인 (인라인 또는 일반)
인라인 첨부 파일과 일반 첨부 파일은 서로 다른 목적을 가집니다. 인라인 첨부 파일은 이메일 메시지에 시각적으로 통합되며 일반적으로 이미지나 미디어 파일입니다. 반면 일반 첨부 파일은 이메일에 별도로 첨부되는 파일로 다양한 유형을 포함할 수 있습니다. The MapiAttachment.IsInline 속성 MapiAttachment 클래스는 첨부 파일이 인라인인지 일반인지 나타내는 값을 가져옵니다.
다음 코드 샘플은 로드된 MapiMessage의 각 첨부 파일에 대한 정보를 추출하고 표시합니다. 여기에는 표시 이름과 인라인 첨부 파일인지 여부가 포함됩니다.
var message = MapiMessage.Load(fileName);
foreach (var attach in message.Attachments)
{
Console.WriteLine($"{attach.DisplayName0} : {attach.IsInline)}");
}
첨부 파일 유형 확인 (IsReference)
다음은 MapiAttachment 클래스는 IsReference 메시지에서 참조 첨부 파일을 식별할 수 있게 해주는 속성입니다. 다음 코드 샘플을 사용하면 첨부 파일이 참조 첨부 파일인지 확인할 수 있습니다:
foreach (var attachment in msg.Attachments)
{
if (attachment.IsReference)
{
// Process reference attachment
}
}
MSG 파일에서 첨부 파일 저장
MSG 파일에서 첨부 파일을 저장하려면:
- 다음에 대해 반복합니다 MapiAttachmentCollection 컬렉션을 사용하여 개별 첨부 파일을 가져옵니다.
- 첨부 파일을 저장하려면 MapiAttachment 클래스의 Save() 메서드를 호출하십시오.
다음 코드 스니펫은 첨부 파일을 로컬 디스크에 저장하는 방법을 보여줍니다.
RTF 형식 MSG 파일에서 첨부 파일 추출
RTF 형식의 메시지에 대해서는, 다음 코드를 사용하여 인라인이거나 메시지 본문에 아이콘으로 표시되는 첨부 파일을 구분하고 추출할 수 있습니다. 다음 코드 스니펫은 RTF 형식의 MSG에서 임베디드 첨부 파일을 식별하고 추출하는 방법을 보여줍니다.
var eml = MapiMessage.Load("MSG file with RTF Formatting.msg");
foreach (var attachment in eml.Attachments)
{
if (IsAttachmentInline(attachment))
{
try
{
SaveAttachment(attachment, Data.Out/new Guid().ToString());
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
static bool IsAttachmentInline(MapiAttachment attachment)
{
foreach (var property in attachment.ObjectData.Properties.Values)
{
if (property.Name == "\x0003ObjInfo")
{
var odtPersist1 = BitConverter.ToUInt16(property.Data, 0);
return (odtPersist1 & (1 << (7 - 1))) == 0;
}
}
return false;
}
static void SaveAttachment(MapiAttachment attachment, string fileName)
{
foreach (var property in attachment.ObjectData.Properties.Values)
{
if (property.Name == "Package")
{
using var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
fs.Write(property.Data, 0, property.Data.Length);
}
}
}
중첩 메일 메시지 첨부 파일 가져오기
임베디드 OLE 첨부 파일도 the MapiMessage Attachment 컬렉션 클래스. 다음 코드 예제는 임베디드 메시지 첨부 파일을 파싱하여 디스크에 저장합니다. The MapiMessage FromProperties() 클래스의 정적 메서드를 사용하면 임베디드 첨부 파일에서 새 메시지를 생성할 수 있습니다. 다음 코드 스니펫은 중첩 메일 메시지 첨부 파일을 가져오는 방법을 보여줍니다.
첨부 파일 제거
Aspose Outlook 라이브러리는 Microsoft Outlook 메시지(.msg) 파일에서 첨부 파일을 제거하는 기능을 제공합니다:
- RemoveAttachments() 메서드를 호출하십시오. 이 메서드는 메시지 파일 경로를 매개변수로 받습니다. 정적(public static) 메서드로 구현되어 있어 객체를 인스턴스화할 필요가 없습니다.
다음 코드 스니펫은 첨부 파일을 제거하는 방법을 보여줍니다.
또한 다음을 호출할 수 있습니다 MapiMessage 클래스 정적 메서드 DestroyAttachment(). RemoveAttachment()보다 더 빠르게 작동합니다, 왜냐하면 RemoveAttachment() 메서드는 메시지 파일을 파싱하기 때문입니다.
MSG 첨부 파일 추가
Outlook 메시지는 첨부 파일로 다른 Microsoft Outlook 메시지를 일반 또는 임베디드 형식으로 포함할 수 있습니다. The MapiAttachmentCollection Add 메서드의 오버로드된 멤버를 제공하여 두 종류의 첨부 파일이 모두 포함된 Outlook 메시지를 생성합니다.
사용해 보세요!
무료로 이메일 첨부 파일을 추가하거나 제거하세요 Aspose.Email Editor App.
MapiMessages에 참조 첨부 파일 추가
다음은 ReferenceAttachmentOptions 클래스는 모든 필요한 속성을 하나의 객체에 캡슐화하여 참조 첨부 파일 추가를 간소화합니다.
ReferenceAttachmentOptions 매개변수:
- sharedLink: 파일을 호스팅하는 웹 서비스에서 제공하는 완전한 공유 링크.
- url: 파일 위치 또는 리소스 URL.
- providerName: 참조 첨부 제공자 이름 (예: Google Drive, Dropbox).
- 예제: ReferenceAttachmentOptions를 사용한 참조 첨부 파일 추가
var options = new ReferenceAttachmentOptions(
"https://drive.google.com/file/d/1HJ-M3F2qq1oRrTZ2GZhUdErJNy2CT3DF/",
"https://drive.google.com/drive/my-drive",
"GoogleDrive");
// Add reference attachment
msg.Attachments.Add("Document.pdf", options);
메시지를 첨부 파일로 포함
다음 코드 스니펫은 MSG 파일 첨부를 메시지에 삽입하는 방법을 보여줍니다.
첨부 파일에서 포함된 메시지 읽기
다음 코드 조각은 첨부 파일에서 포함된 메시지를 읽는 방법을 보여줍니다.
첨부 파일 삽입 및 교체
Aspose.Email API는 부모 메시지의 특정 인덱스에 첨부 파일을 삽입할 수 있는 기능을 제공합니다. 또한 한 첨부 파일의 내용을 다른 메시지 첨부 파일로 교체하는 기능도 제공합니다.
사용해 보세요!
다음 명령을 실행하십시오 ReplaceAttach 간단한 앱 프로젝트를 만들고 Aspose.Email 기능을 사용하여 첨부 파일을 교체해 보세요.
특정 위치에 첨부 파일 삽입
Aspose.Email API는 MapiAttachmentCollection의 Insert 메서드(MapiAttachmentCollection Insert(int index, string name, MapiMessage msg))를 사용하여 MSG 첨부 파일을 상위 MSG에 삽입할 수 있는 기능을 제공합니다. 다음 코드 스니펫은 특정 위치에 첨부 파일을 삽입하는 방법을 보여줍니다.
첨부 파일 내용 교체
Replace 메서드를 사용하여 임베디드 첨부 파일 내용을 새로운 것으로 교체할 수 있습니다. 하지만 collection.Count = 2인 컬렉션에 PR_ATTACH_NUM = 4(예)와 같은 첨부 파일을 삽입할 수는 없습니다. 다음 코드 스니펫은 첨부 파일 내용을 교체하는 방법을 보여줍니다.
MapiMessage에서 첨부 파일 이름 바꾸기
MapiMessage 첨부 파일의 DisplayName 속성 값을 편집할 수 있습니다.
var msg = MapiMessage.Load(fileName);
msg.Attachments[0].DisplayName = "New display name 1";
msg.Attachments[1].DisplayName = "New display name 2";
디지털 서명된 메시지에서 첨부 파일 저장
Aspose.Email API는 클리어 서명된 메시지를 디코딩할지 여부를 나타내는 값을 가져오거나 설정하는 기능을 제공합니다.