Konwertuj e-maile przez serwery webowe
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total Mail Converter X to serwerowy SDK, który konwertuje wiadomości MSG, EML i MBOX do formatów PDF, DOC, RTF, HTML, XHTML, TXT, TIFF, JPEG, EML, MSG i PST — bez Microsoft Outlook, MAPI ani żadnego Office Interop na serwerze. Działa w trybie cichym: bez interfejsu graficznego, okien dialogowych i komunikatów. Total Mail Converter X dostarczany jest zarówno z plikiem wiersza poleceń, jak i interfejsem ActiveX/COM, więc bez problemu integruje się z ASP, PHP, .NET, Pythonem, Ruby, Javą i każdym innym backendem obsługującym COM.
Co potrafi ta wersja Standard:
-atemplate; archiwa ZIP rozpakowywane przy użyciu -uattach
-HeadText / -FootText) na potrzeby e-discovery w sprawach prawnych
-mp, -up, -perm)
-rfcheaders)
-Recurse + -kfs do przetwarzania całego drzewa skrzynki pocztowej
Standard kontra Pro X: edycja Standard zapisuje załączniki w ich oryginalnych formatach obok pliku PDF z wiadomością. Wersja Pro z opcją -docs renderuje załączniki (DOCX, XLSX, obrazy, PDF) do formatu docelowego i scala je z tym samym plikiem wyjściowym co treść wiadomości. Wybierz Standard do prostej archiwizacji skrzynek pocztowych; wybierz Pro do przygotowywania materiałów e-discovery, gdzie efektem jest jeden samodzielny plik PDF na wątek wiadomości.
Wypróbuj za darmo (30-dniowy okres próbny, bez ograniczeń) i przekonaj się, że naprawdę warto.
Niektóre z aktualnie obsługiwanych konwersji formatów plików:
|
|
|
(zawiera 30-dniowy DARMOWY okres próbny)
(tylko $950.00)
string src = @"C:\test\Source.eml";
string dest = @"C:\test\Dest.pdf";
var cnv = new MailConverterX();
cnv.Convert(src, dest, "-cPDF -log c:\\test\\Mail.log");
if (!string.IsNullOrEmpty(cnv.ErrorMessage))
throw new Exception(cnv.ErrorMessage);
public static class Function1
{
[FunctionName("Function1")]
public static async Task Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
StringBuilder sbLogs = new StringBuilder();
sbLogs.AppendLine("started...");
try
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
var assemblyDirectoryPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
assemblyDirectoryPath = assemblyDirectoryPath.Substring(0, assemblyDirectoryPath.Length - 4);
var executablePath = $@"{assemblyDirectoryPath}\Converter\MailConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var srcPath = $@"{assemblyDirectoryPath}\src\sample.msg";
var outPath = Path.GetTempFileName() + ".pdf";
startInfo.FileName = executablePath;
if (File.Exists(outPath))
{
File.Delete(outPath);
}
if (File.Exists(executablePath) && File.Exists(srcPath))
{
sbLogs.AppendLine("files exists...");
}
else
sbLogs.AppendLine("EXE & source files NOT exists...");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = $"\"{srcPath}\" \"{outPath}\" -cPDF";
using (Process exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"wait...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"complete...{DateTime.Now.ToString()}");
}
sbLogs.AppendLine("Conversion complete.");
}
catch (Exception ex)
{
sbLogs.AppendLine(ex.ToString());
}
return new OkObjectResult(sbLogs);
}
}
dim C
Set C=CreateObject("MailConverter.MailConverterX")
C.Convert "c:\test\source.eml", "c:\test\dest.pdf", "-cPDF -log c:\mail.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("MailConverter.MailConverterX")
Response.Clear
Response.AddHeader "Content-Type", "binary/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=test.pdf"
Response.BinaryWrite C.ConvertToStream("C:\www\ASP\Source.eml", "C:\www\ASP", "-cpdf -log c:\mail.log")
set C = nothing
$src="C:\\test\\test.msg";
$dest="C:\\test\\test.pdf";
if (file_exists($dest)) unlink($dest);
$c= new COM("MailConverter.MailConverterX");
$c->convert($src,$dest, "-cPDF -log c:\\Mail.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('MailConverter.MailConverterX')
src = "C:\\test\\test.eml"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -log c:\\test\\Mail.log")
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("MailConverter.MailConverterX")
src = "C:\\test\\test.eml"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -log c:\\test\\Mail.log")
if not os.path.exists(dest):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('MailConverter.MailConverterX');
c.Convert('c:\test\source.eml', 'c:\test\dest.pdf', '-cPDF -log c:\test\Mail.log');
if c.ErrorMessage <> '' then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("MailConverter.MailConverterX");
c.Convert("C:\\test\\source.msg", "C:\\test\\dest.pdf", "-cPDF");
if (c.ErrorMessage != "")
alert(c.ErrorMessage)
use Win32::OLE; my $src = "C:\\test\\test.eml"; my $dest = "C:\\test\\test.pdf"; my $c = CreateObject Win32::OLE 'MailConverter.MailConverterX'; $c->convert($src, $dest, "-cPDF -log c:\\test\\Mail.log"); print $c->ErrorMessage if -e $dest;
"Pracuję dla Freeland Cooper & Foreman LLP i obecnie prowadzę projekt, na potrzeby którego zakupiliśmy Total Mail Converter X. Kupiliśmy program, aby łączyć duże ilości plików .msg w postać .pst i jak dotąd jestem bardzo zadowolony z rezultatów; jest niezawodny, wysoce funkcjonalny i łatwy w obsłudze."
Max Canin
www.freelandlaw.com
"Używamy SharePoint jako biblioteki dokumentów i uzyskujemy do niej dostęp przez UNC. Korzystam z Total Mail Converter X do archiwizacji wiadomości e-mail. Jako część nazwy pliku wynikowego używam wiersza tematu, ale to powoduje problem: SharePoint nie zezwala na pewne znaki w nazwach plików. Zastanawiałem się, czy można dodać opcję wiersza poleceń usuwającą niedozwolone znaki na potrzeby ścieżek UNC w SharePoint."
Shane Adam
Systems Analyst & Developer, http://eigltd.com
"Archiwizujemy eksporty skrzynek pocztowych pracowników odchodzących z pracy. Klienci przesyłają nam zrzuty PST/MBOX; nasz potok zamienia każdy z nich w folder samodzielnych plików PDF z pełnymi nagłówkami RFC-822 zachowanymi na potrzeby przeglądu kryminalistycznego. Total Mail Converter X z parametrami -Recurse -kfs -rfcheaders -combine to silnik tego rozwiązania. Sześć lat w produkcji, przepustowość około 5000 wiadomości na godzinę na naszym sprzęcie. Nigdzie w potoku nie ma Outlooka."
Bartosz K.
Senior Backend Developer at a compliance-archive vendor
"Zgłoszenia mają załączone pliki EML; zespół wsparcia potrzebuje kopii PDF do śladu zgłoszenia. Total Mail Converter X plus Total Folder Monitor: zgłoszenia upuszczają EML do folderu skrzynki odbiorczej, konwerter je opróżnia, narzędzie wsparcia odbiera pliki PDF. Czysta numeracja stron w stylu Bates dzięki -HeadText/-FootText, bez ręcznej interwencji. Bezgłowo na Windows Server Core, bez Outlooka, bez niespodzianek licencyjnych."
Soledad O.
DevOps Engineer at a customer-support SaaS
"Wbudowaliśmy Total Mail Converter X w nasz produkt do zarządzania dokumentacją na licencji Royalty-Free. Jednorazowa opłata za projekt była ułamkiem tego, czego żądał Aspose.Email w abonamencie naliczanym od dewelopera. Nasz instalator dostarcza i rejestruje ActiveX, nasza aplikacja wywołuje go bezpośrednio, użytkownicy końcowi widzą tylko nasz interfejs. Ograniczenie ActiveX do 32 bitów kosztowało nas kilka dni przerabiania potoku, ale wsparcie szybko reagowało, gdy pytaliśmy o obejścia."
Niko T.
Independent Software Vendor
Total Mail ConverterX jest dostarczany z plikiem MailConverterX.exe, binarnym narzędziem konsolowym, które możesz uruchamiać ze skryptów, zaplanowanych zadań, robotników archiwum poczty lub dowolnej usługi backendowej. Zestaw flag jest zgodny z GUI MailConverter.exe; pełną dokumentację znajdziesz w dokumentacji wiersza poleceń. Poniższe przepisy obejmują przypadki, o które najczęściej pytają klienci SDK pracujący ze skrzynkami MSG, EML i MBOX.
Najprostsze możliwe wywołanie — jedna wiadomość Outlook na wejściu, jeden PDF na wyjściu.
MailConverterX.exe "C:\mailbox\invoice.msg" "C:\out\invoice.pdf" -cPDF
Przetwórz cały folder plików EML wyeksportowanych z Thunderbirda, Apple Mail lub dowolnego klienta IMAP i upuść PDF-y do siostrzanego katalogu wyjściowego.
MailConverterX.exe "C:\mailbox\*.eml" "C:\out\" -cPDF
Zamień maskę na *.msg lub *.mbox, aby wybrać inny format źródłowy, lub -cDOC / -cTXT / -cTIFF, aby wybrać inny cel.
Eksport Outlook rzadko mieści się w jednym płaskim folderze — zwykle dostajesz Inbox, Sent, Archive i dziesiątki podfolderów. -Recurse przechodzi przez podkatalogi; -kfs odtwarza to samo drzewo po stronie wyjścia zamiast spłaszczać wszystko do jednego kontenera.
MailConverterX.exe "C:\export\Mailbox\*.msg" "C:\out\Mailbox\" -cPDF -Recurse -kfs
Dla e-discovery i akt spraw zwykle chcesz jednego PDF na sprawę, nie jednego na e-mail. -combine łączy dopasowane wiadomości w jeden PDF w kolejności plików źródłowych; -sort date układa je chronologicznie.
MailConverterX.exe "C:\cases\Acme\*.eml" "C:\out\Acme-thread.pdf" -cPDF -combine -sort date
Edycja Standard konwertuje treść e-maila i zapisuje oryginalne załączniki na dysku obok dokumentu wyjściowego. -attach włącza ekstrakcję załączników; -atemplate kontroluje wzorzec nazwy pliku załącznika.
MailConverterX.exe "C:\mailbox\*.msg" "C:\out\" -cPDF -attach -atemplate "[mail]_[attach_index]_[attach]"
Dodaj -uattach, aby automatycznie rozpakować załączniki ZIP, lub -images, aby osadzić obrazy inline bezpośrednio w treści PDF.
Domyślnie eksportowane jest każde pole nagłówka. Aby wyprodukować czysty, gotowy do druku PDF pokazujący tylko Od, Datę i Temat — bez DW, bez UDW, bez nagłówków transportowych — jawnie wyłącz niechciane pola.
MailConverterX.exe "C:\mailbox\*.eml" "C:\out\" -cPDF -sender -date -subject -cc:off -bcc:off -rcpt:off
Dodaj -rfcheaders, jeśli zamiast tego potrzebujesz zachować pełne nagłówki transportowe RFC-822 do przeglądu kryminalistycznego.
Stemplowanie w stylu Bates do przekazania litygacyjnego: stopka z bieżącym numerem strony na każdej stronie plus nagłówek z datą produkcji. [page] i [date] to wbudowane symbole zastępcze.
MailConverterX.exe "C:\cases\Acme\*.msg" "C:\out\Acme.pdf" -cPDF -combine -sort date -HeadText "ACME-PROD [date]" -HeadAlign right -FootText "Page [page]" -FootAlign center
Standard wysyłania uprzywilejowanej korespondencji do strony przeciwnej: hasło właściciela blokuje uprawnienia edycji/drukowania, hasło użytkownika kontroluje otwarcie pliku, a -perm przyznaje dokładnie te prawa, które dopuszczasz.
MailConverterX.exe "C:\mailbox\*.msg" "C:\out\" -cPDF -mp "owner-pwd" -up "user-pwd" -perm Copy
Gdy MailConverterX.exe działa jako usługa lub zaplanowane zadanie, jedynym sposobem, aby wiedzieć co się stało, jest log. -verbosity detail pisze jedną linię na plik; -logmode append zachowuje historię między uruchomieniami; -fo nadpisuje wcześniejsze wyjście cicho zamiast zatrzymywać się na kolizjach.
MailConverterX.exe "C:\mailbox\*.eml" "C:\out\" -cPDF -log "C:\logs\mailconv.log" -verbosity detail -logmode append -fo
Gdy robotnik archiwum poczty zapisuje plik kolejki, a konwerter go konsumuje, nie chcesz kodować ścieżek plików w samym wierszu poleceń. -list czyta maski plików (po jednej na linię) z pliku tekstowego.
MailConverterX.exe -list "C:\queues\mail-batch.txt" "C:\out\" -cPDF -log "C:\logs\mailconv.log"
Zaktualizowano Tue, 05 May 2026
(tylko $950.00)
-docs, który renderuje każdy obsługiwany załącznik (Word, Excel, PowerPoint, obrazy, PDF) do formatu docelowego i scala je z tym samym plikiem PDF co treść wiadomości. Wybierz Standard do prostej archiwizacji skrzynek pocztowych; wybierz Pro do przygotowywania materiałów e-discovery, gdzie efektem jest jeden samodzielny plik PDF na wątek wiadomości.new COM("MailConverter.MailConverterX") w PHP, new MailConverterX() w .NET, win32com.client.Dispatch("MailConverter.MailConverterX") w Pythonie, WIN32OLE.new('MailConverter.MailConverterX') w Ruby. Alternatywnie, plik wykonywalny MailConverterX.exe wiersza poleceń można wywołać z dowolnego procesu, harmonogramu lub skryptu powłoki. Dostępne jest również bezpośrednie strumieniowanie PDF poprzez ConvertToStream dla odpowiedzi WWW ASP/PHP.-c <FORMAT>, aby wybrać format docelowy.-attach, aby włączyć wyodrębnianie załączników. Załączniki domyślnie trafiają do tego samego folderu co plik PDF wyjściowy. Użyj -atemplate "[mail]_[attach_index]_[attach]", aby zdefiniować niestandardowy wzorzec nazewnictwa oparty na metadanych wiadomości i załącznika. Dodaj -uattach, aby automatycznie rozpakować archiwa ZIP, dzięki czemu ich zawartość zostanie zapisana obok reszty. Dodaj -images, aby osadzić obrazy inline bezpośrednio w treści PDF zamiast zapisywać je jako pliki.-mp "owner-pwd" ustawia hasło właściciela (kontroluje uprawnienia); -up "user-pwd" ogranicza otwieranie pliku; -perm przyjmuje dowolną kombinację Print, HighResPrint, Copy, Modify, Annotation, FormFill. Do stemplowania Bates użyj -HeadText/-FootText z symbolami [page], [date], [time] oraz -HeadAlign/-FootAlign, aby umiejscowić tekst. W połączeniu z -combine -sort date daje to jeden ostemplowany plik PDF dla całego wątku wiadomości.Pobierz wersję próbną i konwertuj pliki w kilka minut.
Nie jest wymagana karta kredytowa ani e-mail.
Skontaktuj się z nami. Chętnie ulepszymy nasz kombajn pocztowy, aby idealnie pasował do Twoich potrzeb. Dostosowanie jest często darmowe dla naszych klientów.
Docker docker run -p 5000:5000 tdhster/mailconverter-api