EML에서 MSG로

EML은 Outlook, Outlook Express, Windows Live Mail 또는 Thunderbird에서 지원하는 MIME RFC 822 표준 형식의 파일에 저장된 전자 메일 메시지의 파일 확장자입니다. 또한 EML 파일 형식은 전자 메일을 저장하기 위한 일반 텍스트 MIME(rfc822) 파일 형식입니다. 반면에 MSG는 Microsoft의 Outlook MAPI를 기반으로 하는 복합 파일 바이너리 형식입니다. 또한 Outlook Item MSG(.msg) 파일 형식은 전자 메일, 약속, 연락처, 작업 등과 같은 단일 메시지 개체를 파일에 저장하기 위한 구문입니다.

따라서 이 문서에서는 REST API를 사용하여 EML 파일을 MSG 형식으로 프로그래밍 방식으로 변환하는 방법에 대한 단계를 살펴보겠습니다.

이메일 처리 API

Aspose.Email Cloud는 일반적인 이메일 형식(Outlook EML, MSG, iCalendar 파일, VCard)을 다른 지원되는 파일 형식으로 생성, 조작 및 렌더링하는 기능을 제공하는 REST 기반 API입니다. 헤더, 발신자 주소, 메시지에 포함된 콘텐츠를 처리하거나 파일, 사진, 문서 등과 같은 이메일 첨부 파일을 처리하는 기능을 제공합니다. 동시에 애플리케이션에서 연락처 카드 처리(Operate VCard)를 구현하거나 iCalendar 지원을 통해 일정을 처리합니다.

개발자의 편의를 위해 Cloud API를 중심으로 래퍼를 만들어서 좋아하는 IDE 내에서 모든 기능을 바로 사용할 수 있도록 했습니다. 계속 진행하기 전에 다음 링크를 방문하여 Aspose.Cloud SDK 설치 방법에 대해 자세히 알아보는 것이 좋습니다.

C#에서 EML을 MSG로 변환

귀하의 요구 사항을 달성하려면 아래 단계를 따르십시오.

  • 먼저 ClientID와 Client Secret 세부 정보를 인수로 전달하여 EmailCloud 클래스의 객체를 만듭니다.
  • 둘째, 소스 이메일 파일을 File.OpenRead 인스턴스로 읽어서 클라우드 스토리지 UploadFile(…) 메서드에 업로드합니다.
  • 셋째, 입력 파일과 결과 형식을 전달하는 EmailGetAsFileRequest 인스턴스를 생성합니다.
  • 이제 EmailGetAsFile API를 사용하여 클라우드 저장소에 있는 EML 파일을 MSG 형식으로 변환합니다.
  • 마지막으로 File.Create 인스턴스를 사용하여 결과 파일을 로컬 드라이브에 저장하기 위한 사용자 지정 메서드를 호출합니다.
// 전체 예제와 데이터 파일은 여기로 이동하세요. 
https://github.com/aspose-email-cloud/aspose-email-cloud-dotnet

// https://dashboard.aspose.cloud/에서 클라이언트 자격 증명을 가져옵니다.
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// EmailCloud Api 인스턴스를 생성합니다.
var emailApi = new EmailCloud(clientSecret, clientID);
       
// 소스 EML 파일 이름
string name = "sample.eml";
// 결과 MSG 파일의 이름
string resultantFile = "converted.msg";
// 결과 파일의 형식
string toFormat = "Msg";

 try
{
    // sourceec EML을 읽어서 스트림 객체로 만듭니다.
    using (var file = System.IO.File.OpenRead(@"C:\Users\shahbnay\Downloads\" + name))
    {
    
        // 소스 EML 파일을 클라우드 스토리지에 업로드
        emailApi.CloudStorage.File.UploadFile(new Aspose.Email.Cloud.Sdk.Model.UploadFileRequest(name, file));
        
        // 입력 파일과 결과 형식을 전달하여 EmailGetAsFileRequest 인스턴스를 생성합니다.
        var convertRequest = new EmailGetAsFileRequest(name, toFormat);
        
        // 변환 작업을 수행합니다.
        var response = emailApi.Email.GetAsFile(convertRequest);

        // 변환이 성공하면 성공 메시지를 출력합니다.
        if (response != null && response.Equals("OK"))
        {
            // 성공 메시지를 인쇄하다
            Console.WriteLine("Successfully converted EML to MSG !");
            Console.ReadKey();
        }
        
        // 결과 파일 스트림을 로컬 드라이브에 저장
        saveToDisk(response, @"C:\Users\shahbnay\Downloads\" + resultantFile);
    }
}catch (Exception ex)
{
    // 콘솔에 예외를 출력하세요
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}

// 시스템 드라이브에 출력을 저장하는 사용자 정의 방법
static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

위 예제에서 사용된 샘플 파일은 sample.emlconverted.msg에서 다운로드할 수 있습니다.

로컬 드라이브에서 파일을 로드하고 변환을 수행해야 하는 경우 EmailConvert API를 사용해 보세요.

cURL 명령을 사용하여 EML을 MSG로 변환

Aspose.Email Cloud는 REST 아키텍처에 따라 개발되었으므로 cURL 명령을 통해 쉽게 액세스할 수 있습니다. 터미널 애플리케이션/명령 프롬프트를 사용하여 API에 액세스합니다. 따라서 첫 번째 단계는 Aspose.Cloud 대시보드에서 지정된 클라이언트 자격 증명을 기반으로 JWT 액세스 토큰을 생성하는 것입니다. 자세한 내용은 클라이언트 ID 및 클라이언트 비밀 키를 사용하여 JWT 토큰을 얻는 방법을 참조하세요.

JWT 토큰이 있으면 다음 명령을 사용하여 클라우드 저장소에서 사용 가능한 EML 파일을 MSG 형식으로 변환하고 로컬 드라이브에 출력을 저장하세요. 변환 목적으로 EmailGetAsFile API가 사용됩니다.

curl -X GET "https://api.aspose.cloud/v4.0/email/as-file?fileName=sample.eml&format=Msg" \
-H  "accept: multipart/form-data" \
-H  "authorization: Bearer <JWT Token>" \
-o Converted.msg

결론

이 글에서는 Aspose.Email Cloud의 인기 있는 이메일 형식을 처리하는 기능에 대해 설명했습니다. 구체적으로는 C# .NET 및 cURL 명령을 사용하여 EML 파일을 MSG로 변환하는 방법을 설명했습니다. 그럼에도 불구하고 Cloud SDK는 MIT 라이선스에 따라 개발되었으며 전체 소스 코드는 GitHub에서 다운로드할 수 있습니다.

또한 웹 브라우저 내에서 API를 테스트할 수 있도록 Cloud API의 swagger view도 제공했습니다. 또한 문제가 발생하거나 추가 질문이 있는 경우 무료 고객 지원 포럼을 통해 언제든지 문의해 주십시오.

관련기사