Last Updated: 15 Oct, 2025

WJaka jest różnica między glutaminianem sodu a EML? Jak przekonwertować glutaminian sodu na EML?

Podczas pracy z Formatami plików e-mail możesz natknąć się na dwa popularne formaty: MSG i EML. Oba przechowują wiadomości e-mail, ale różnią się strukturą, kompatybilnością i zastosowaniem. W tym wpisie na blogu omówimy, czym są te formaty, ich funkcje i różnice oraz jak konwertować pliki MSG i EML za pomocą różnych typów interfejsów API i przykładów kodu.

Czym jest plik MSG?

Format pliku MSG to zastrzeżony format opracowany przez firmę Microsoft. Jest to pojedyncza wiadomość e-mail, spotkanie, kontakt lub zadanie zapisane w Microsoft Outlook. Jest to zastrzeżony format, co oznacza, że ​​został zaprojektowany tak, aby najlepiej działać w ekosystemie Outlook. Pliki MSG zawierają wszystkie szczegóły wiadomości e-mail, w tym nadawcę, odbiorcę, datę, temat, treść i załączniki, a także funkcje specyficzne dla programu Outlook, takie jak kategorie i flagi.

Najważniejsze cechy:

  • Przechowuje treść wiadomości e-mail, załączniki i metadane (nadawca, odbiorca, temat).
  • Format binarny oparty na formacie Compound File Binary Format (CFBF).
  • Przechowuje metadane, treść wiadomości e-mail (RTF lub HTML) i załączniki.
  • Używany głównie w środowiskach Windows.

Czym jest plik EML?

Format pliku EML to otwarty standard zdefiniowany w RFC 5322 i jest bardziej uniwersalnym formatem wiadomości e-mail używanym przez różne programy pocztowe, takie jak Mozilla Thunderbird, Windows Mail, Outlook Express i Apple Mail. Ponieważ jest to format zwykłego tekstu, jest bardziej wszechstronny i można go otwierać w różnych systemach operacyjnych i na różnych urządzeniach.

Najważniejsze cechy:

  • Format tekstowy, który przechowuje nagłówki i treść zakodowaną w standardzie MIME.
  • Pełna obsługa formatowania HTML, obrazów w tekście i załączników.
  • Niezależne od platformy i czytelne dla człowieka.
  • Łatwiejsze do przetwarzania programistycznego.

Kluczowe różnice między MSG a EML

NrFunkcjaFormat MSGFormat EML
1Typ formatuBinarny (zastrzeżony)Zwykły tekst (standardowy)
2ZgodnośćMicrosoft OutlookThunderbird, Apple Mail, Gmail itp.
3Obsługa metadanychPełna (w tym obiekty osadzone)Ograniczona (podstawowe nagłówki i MIME)
4Wymagana czytelnośćOutlook lub specjalistyczne narzędziaCzytelny dla człowieka (tekstowy)
5Obsługa załącznikówOsadzone w plikuKodowanie Base64 w MIME

Teraz przyjrzyjmy się, jak konwertować MSG do EML i EML do MSG za pomocą popularnych interfejsów API open source i bibliotek. Poniżej znajdują się przykłady kodu wykorzystujące różne interfejsy API.

Jak konwertować MSG do EML za pomocą interfejsów API .NET?

Możemy użyć bibliotek open source MsgKit i MimeKit do konwertowania pliku MSG do formatu EML w aplikacjach .NET. Chociaż sam MsgKit nie oferuje natywnego eksportu do formatu .eml, ułatwia on odczyt i wyodrębnienie wszystkich komponentów pliku .msg, które następnie można zapisać w formacie .eml za pomocą innych bibliotek zgodnych ze standardem MIME, takich jak MimeKit lub MailKit, jak pokazano w poniższym przykładzie kodu.

Jak konwertować plik MSG do EML za pomocą MsgKit?

using MsgReader.Outlook;
using MimeKit;
using System.IO;

var msg = new Storage.Message("sample.msg");
var mimeMessage = new MimeMessage();
mimeMessage.Subject = msg.Subject;
mimeMessage.From.Add(new MailboxAddress(msg.SenderName, msg.SenderEmail));
mimeMessage.To.Add(MailboxAddress.Parse(msg.GetEmailRecipients(Storage.RecipientType.To)[0].Email));
mimeMessage.Body = new TextPart("plain") { Text = msg.BodyText };

using var stream = File.Create("output.eml");
mimeMessage.WriteTo(stream);

Jak przekonwertować plik EML na plik MSG za pomocą MimeKit?

using MsgKit;
using System.IO;

var email = new Email(
    new Sender("sender@example.com", "Sender Name"),
    "Subject of Email",
    "This is the plain body text.");

email.Recipients.AddTo("recipient@example.com", "Recipient Name");
email.Save(new FileInfo("output.msg"));

Konwersja MSG do EML za pomocą interfejsów API Java Open Source?

Apache POI-HSMF i JavaMail mogą być używane do ładowania i konwersji plików MSG programu Outlook do formatu EML. Apache POI-HSMF może odczytywać pliki MSG, a JavaMail może generować pliki EML. Konwersja z EML do MSG w Javie zazwyczaj wymagałaby płatnych zestawów SDK (takich jak Aspose) lub ręcznej analizy składni MIME i zapisu binarnego MSG — co obecnie nie jest możliwe przy użyciu wyłącznie bibliotek Java Open Source.

Poniższy przykład kodu pokazuje, jak Apache POI-HSMF może odczytywać pliki MSG, a JavaMail może generować pliki EML.

import org.apache.poi.hsmf.MAPIMessage;
import javax.mail.*;
import javax.mail.internet.*;

public class MsgToEmlConverter {
    public static void convert(String msgPath, String emlPath) throws Exception {
        MAPIMessage msg = new MAPIMessage(msgPath);
        MimeMessage eml = new MimeMessage((Session) null);
        
        eml.setFrom(new InternetAddress(msg.getDisplayFrom()));
        eml.setSubject(msg.getSubject());
        eml.setText(msg.getTextBody());
        
        // Save EML file
        eml.writeTo(new java.io.FileOutputStream(emlPath));
    }

    public static void main(String[] args) throws Exception {
        convert("input.msg", "output.eml");
    }
}

Najlepsze komercyjne API do wydajnej konwersji

1. Aspose.Email (wieloplatformowy .NET/Java/Python)

Aspose.Email oferuje potężne komercyjne rozwiązanie do pracy z plikami e-mail. Za pomocą zaledwie kilku linijek kodu programiści mogą ładować, modyfikować i konwertować pliki MSG na EML oraz EML na MSG, używając różnych języków programowania, takich jak .NET, Java, Python i wielu innych. Poniższy przykład pokazuje, jak konwertować pliki MSG i EML za pomocą Aspose.Email dla .NET API.

Jak przekonwertować pliki EML na MSG za pomocą Aspose.Email dla .NET API?

// Convert MSG to EML
using Aspose.Email.Mime;
using Aspose.Email.Outlook;

var msg = MapiMessage.FromFile("input.msg");
msg.Save("output.eml", SaveOptions.DefaultEml);

// Convert EML to MSG
var eml = MailMessage.Load("input.eml");
eml.Save("output.msg", SaveOptions.DefaultMsgUnicode);

How to Convert b/t EML to MSG using Aspose.Email for Java API?


import com.aspose.email.*; // Load the MSG file MailMessage message = MailMessage.load("input.msg"); // Save as EML message.save("output.eml", SaveOptions.getDefaultEml());

Jak przekonwertować b/t EML na MSG przy użyciu API Aspose.Email dla Pythona?


import aspose.email as ae

# Load the EML file
eml = ae.MailMessage.load("input.eml")

# Save as MSG
eml.save("output.msg", ae.SaveOptions.default_msg_unicode)

2. Interfejs API Microsoft Graph

Kolejna dobra opcja komercyjna do rozważenia Microsoft Graph API (w chmurze)

Konwertuj MSG do EML za pomocą interfejsu API Microsoft Graph (w chmurze)

import requests

headers = {"Authorization": "Bearer YOUR_ACCESS_TOKEN"}
response = requests.post(
    "https://graph.microsoft.com/v1.0/me/messages/{id}/content?format=eml",
    headers=headers
)
with open("output.eml", "wb") as f:
    f.write(response.content)

Bonus: Konwertery online (bez kodu)

Jeśli nie chcesz programować, oto bardzo niezawodne i przydatne narzędzie online, które z łatwością wczytuje i konwertuje pliki MSG do formatu EML.

Podsumowanie

Zarówno formaty MSG, jak i EML mają swoje unikalne zalety. MSG idealnie nadaje się do ekosystemów Microsoft z pełnymi metadanymi i osadzonymi załącznikami, podczas gdy EML oferuje większą elastyczność dzięki swojej strukturze opartej na zwykłym tekście i MIME. Niezależnie od tego, czy jesteś programistą .NET, Java, Python czy JavaScript, dostępne są narzędzia open source i komercyjne do konwersji między formatami MSG i EML. Wybierz w zależności od języka, skali projektu i potrzeb licencyjnych.

FAQ

P: Czy mogę otwierać pliki MSG bez Outlooka?

O: Tak, biblioteki open source, takie jak MsgReader (C#) lub extract-msg (Python), umożliwiają odczyt plików MSG bez Outlooka.

P: Który format jest lepszy do archiwizacji wiadomości e-mail?

O: EML jest lepszy ze względu na otwarty standard i format czytelny dla człowieka.

P: Czy istnieją darmowe API do konwersji plików MSG do EML?

O: Tak, biblioteki takie jak MsgReader (.NET) i extract-msg (Python) są całkowicie darmowe i open source.

Zobacz także