Em certos casos, podemos precisar converter nossos e-mails e mensagens do Outlook em documentos PDF. Essa conversão nos permite manter um registro de e-mails importantes ou compartilhá-los de forma portátil. Também podemos converter os documentos anexados em e-mails em documentos PDF programaticamente. Neste artigo, aprenderemos como converter e-mails e arquivos MSG em documentos PDF usando uma API REST em PHP.
Os seguintes tópicos serão abordados neste artigo:
- API REST de conversão de e-mail para PDF e SDK PHP
- Converter e-mails para PDF em PHP
- Outlook MSG para conversão de PDF em PHP
- Como converter anexos de e-mail para PDF em PHP
API REST de conversão de e-mail para PDF e SDK PHP
Para converter arquivos EML e MSG em documentos PDF, usaremos a API PHP SDK of GroupDocs.Conversion Cloud. Ele nos permite converter facilmente documentos e imagens de qualquer formato de arquivo suportado para qualquer formato que exigimos. Instale-o usando o seguinte comando no console:
composer require groupdocscloud/groupdocs-conversion-cloud
Após a instalação, use o autoload dos compositores para usar o SDK conforme mostrado abaixo:
require_once('vendor/autoload.php');
Por favor, obtenha seu ID e Segredo do cliente no painel antes de seguir as etapas mencionadas. Depois de ter seu ID e segredo, adicione o código conforme mostrado abaixo:
// O exemplo de código a seguir demonstra como adicionar ID e segredo do cliente no código
static $ClientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
static $ClientSecret = 'b377c36cfa28fa69960ebac6b6e36421';
static $ApiBaseUrl = 'https://api.groupdocs.cloud';
static $MyStorage = '';
Converta e-mails em PDF usando uma API REST em PHP
Podemos facilmente converter e-mails em documentos PDF de forma programática na nuvem, seguindo as etapas simples abaixo:
- Upload o arquivo EML para a nuvem
- Converter EML para PDF
- Baixe o arquivo PDF convertido
Carregar o arquivo EML
Em primeiro lugar, faremos o upload do arquivo EML para a nuvem usando o seguinte exemplo de código:
// Este exemplo de código demonstra como fazer upload de um arquivo EML para a nuvem.
// Definindo as configurações
$configuration = new GroupDocs\Conversion\Configuration();
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
// Inicializar API
$apiInstance = new GroupDocs\Conversion\FileApi($configuration);
$file = "C:\\Files\\Conversion\\email\\sample.eml";
$request = new GroupDocs\Conversion\Model\Requests\UploadFileRequest("sample.eml", $file, self::$MyStorage, null);
$response = $apiInstance->uploadFile($request);
Como resultado, o arquivo carregado estará disponível na seção de arquivos do painel na nuvem.
Converter EML para PDF em PHP
Agora, converteremos e-mails do arquivo EML carregado em um documento PDF seguindo as etapas abaixo:
- Em primeiro lugar, crie uma instância do ConvertApi.
- Em seguida, forneça o caminho do arquivo EML carregado, o formato de conversão e o caminho do arquivo de saída.
- Em seguida, defina várias EmlLoadOptions, como setDisplayHeader, setDisplayEmailAddress, etc.
- Opcionalmente, defina várias PdfConvertOptions como setCenterWindow, setMarginTop, setMarginLeft, etc.
- Depois disso, crie ConvertDocumentRequest com ConvertSettings como argumento.
- Finalmente, converta EML usando o método convertDocument() com ConvertDocumentRequest.
O exemplo de código a seguir mostra como converter um arquivo EML em um documento PDF usando uma API REST em PHP.
// Este exemplo de código demonstra como converter EML para PDF em PHP.
// Definindo as configurações
$configuration = new GroupDocs\Conversion\Configuration();
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
$configuration->setApiBaseUrl(self::$ApiBaseUrl);
// Crie a nova instância de ConversionAPI
$convertApi = new GroupDocs\Conversion\ConvertApi($configuration);
// Definir configurações de conversão
$settings = new GroupDocs\Conversion\Model\ConvertSettings();
$settings->setStorageName(self::$MyStorage);
$settings->setFilePath("sample.eml");
$settings->setFormat("pdf");
$settings->setOutputPath("convertedEML.pdf");
// Definir opções de carregamento EML
$loadOptions = new GroupDocs\Conversion\Model\EmlLoadOptions();
$loadOptions->setDisplayHeader(true);
$loadOptions->setDisplayFromEmailAddress(true);
$loadOptions->setDisplayToEmailAddress(true);
$loadOptions->setDisplayEmailAddress(true);
$loadOptions->setDisplayCcEmailAddress(true);
$loadOptions->setDisplayBccEmailAddress(true);
$settings->setLoadOptions($loadOptions);
// Definir opções de conversão de PDF
$convertOptions = new GroupDocs\Conversion\Model\PdfConvertOptions();
$convertOptions->setCenterWindow(true);
$convertOptions->setMarginTop(50);
$convertOptions->setMarginLeft(50);
$convertOptions->setMarginRight(50);
$convertOptions->setMarginBottom(50);
$settings->setConvertOptions($convertOptions);
// Criar solicitação de conversão
$request = new GroupDocs\Conversion\Model\Requests\ConvertDocumentRequest($settings);
// Converter documento
$response = $convertApi->convertDocument($request);
echo "Document converted successfully: ", $response[0]->getUrl();
Baixe o arquivo convertido
O exemplo de código acima salvará o arquivo PDF convertido na nuvem. Ele pode ser baixado usando o seguinte exemplo de código:
// Este exemplo de código demonstra como baixar PDF da nuvem.
// Definindo as configurações
$configuration = new GroupDocs\Conversion\Configuration();
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
// Inicializar API
$apiInstance = new GroupDocs\Conversion\FileApi($configuration);
// Criar solicitação de download
$request = new GroupDocs\Conversion\Model\Requests\DownloadFileRequest("convertedEML.pdf", self::$MyStorage, null);
// ⇬ Fazer download do arquivo
$response = $apiInstance->downloadFile($request);
Conversão MSG para PDF do Outlook usando API REST em PHP
Podemos converter arquivos MSG do Outlook em documentos PDF seguindo as etapas abaixo:
- Em primeiro lugar, crie uma instância do ConvertApi.
- Em seguida, forneça o caminho do arquivo MSG carregado, o formato de conversão e o caminho do arquivo de saída.
- Em seguida, defina várias MsgLoadOptions, como setDisplayCcEmailAddress, etc.
- Opcionalmente, defina várias PdfConvertOptions como setCenterWindow, setMarginTop, setMarginLeft, etc.
- Depois disso, crie ConvertDocumentRequest com ConvertSettings como argumento.
- Por fim, converta MSG em PDF usando o método convertDocument() com ConvertDocumentRequest.
O exemplo de código a seguir mostra como converter um arquivo MSG em um documento PDF usando uma API REST em PHP. Siga as etapas mencionadas anteriormente para fazer upload e download de um arquivo.
// Este exemplo de código demonstra como converter MSG em PDF em PHP.
// Definindo as configurações
$configuration = new GroupDocs\Conversion\Configuration();
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
$configuration->setApiBaseUrl(self::$ApiBaseUrl);
// Crie a nova instância de ConversionAPI
$convertApi = new GroupDocs\Conversion\ConvertApi($configuration);
// Definir configurações de conversão
$settings = new GroupDocs\Conversion\Model\ConvertSettings();
$settings->setStorageName(self::$MyStorage);
$settings->setFilePath("sample.msg");
$settings->setFormat("pdf");
$settings->setOutputPath("convertedMSG.pdf");
// Definir opções de carregamento MSG
$loadOptions = new GroupDocs\Conversion\Model\MsgLoadOptions();
$loadOptions->setDisplayCcEmailAddress(true);
$loadOptions->setDisplayBccEmailAddress(true);
$settings->setLoadOptions($loadOptions);
// Criar solicitação de conversão
$request = new GroupDocs\Conversion\Model\Requests\ConvertDocumentRequest($settings);
// Converter documento
$response = $convertApi->convertDocument($request);
echo "Document converted successfully: ", $response[0]->getUrl();
Como converter anexos de e-mail para PDF em PHP
Também podemos converter anexos de e-mail em documentos PDF programaticamente seguindo as etapas abaixo:
- Em primeiro lugar, crie uma instância do ConvertApi.
- Em seguida, forneça o caminho do arquivo MSG carregado, o formato de conversão e o caminho do arquivo de saída.
- Crie uma instância do MsgLoadOptions
- Defina a propriedade convertAttachments como true
- Depois disso, crie ConvertDocumentRequest com ConvertSettings como argumento.
- Por fim, converta EML usando o método convertDocument() com ConvertDocumentRequest.
O exemplo de código a seguir mostra como converter anexos de e-mail em um documento PDF usando uma API REST em PHP. Siga as etapas mencionadas anteriormente para fazer upload e download de um arquivo.
// Este exemplo de código demonstra como converter anexos de e-mail em PDF em PHP.
// Definindo as configurações
$configuration = new GroupDocs\Conversion\Configuration();
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
// Criar instância da API de conversão
$convertApi = new GroupDocs\Conversion\ConvertApi($configuration);
// Definir configurações de conversão
$settings = new GroupDocs\Conversion\Model\ConvertSettings();
$settings->setStorageName(self::$MyStorage);
$settings->setFilePath("Msg_with_attachments.msg");
$settings->setFormat("pdf");
$settings->setOutputPath("convertedAttachments.pdf");
// Definir opções de carregamento MSG
$loadOptions = new GroupDocs\Conversion\Model\MsgLoadOptions();
$loadOptions->setConvertAttachments(true);
// Criar solicitação de documento
$request = new GroupDocs\Conversion\Model\Requests\ConvertDocumentRequest($settings);
// Converter documento
$response = $convertApi->convertDocument($request);
echo "Document converted successfully: ", $response[0]->getUrl();
Experimente on-line
Experimente as seguintes ferramentas de conversão on-line gratuitas de EML para PDF e MSG para PDF, que são desenvolvidas usando a API acima.
- https://products.groupdocs.app/conversion/eml-to-pdf
- https://products.groupdocs.app/conversion/msg-to-pdf
Conclusão
Neste artigo, aprendemos:
- como converter EML para PDF usando PHP;
- como converter arquivo MSG do Outlook em um documento PDF;
- Salvar anexos de e-mail como PDF em PHP;
- como fazer upload de arquivo EML programaticamente para a nuvem;
- como baixar arquivo PDF da nuvem.
Além disso, você pode aprender mais sobre GroupDocs.Conversion Cloud API usando a documentação. Também fornecemos uma seção Referência de API que permite visualizar e interagir com nossas APIs diretamente pelo navegador. Em caso de ambiguidade, sinta-se à vontade para nos contatar no fórum.