在 PHP 中使用 REST API 將電子郵件轉換為 PDF。

在某些情況下,我們可能需要將我們的電子郵件和 Outlook 消息轉換為 PDF 文檔。這種轉換使我們能夠保留重要電子郵件的記錄或以便攜式形式共享它們。我們還可以通過編程將電子郵件中附加的文檔轉換為 PDF 文檔。在本文中,我們將學習如何使用 PHP 中的 REST API 將電子郵件和 MSG 文件轉換為 PDF 文檔。

本文應涵蓋以下主題:

電子郵件到 PDF 轉換 REST API 和 PHP SDK

為了將 EMLMSG 文件轉換為 PDF 文檔,我們將使用 GroupDocs.Conversion Cloud 的 PHP SDK API。它使我們能夠將任何支持的文件格式 的文檔和圖像無縫轉換為我們需要的任何格式。請在控制台中使用以下命令安裝它:

composer require groupdocscloud/groupdocs-conversion-cloud

安裝後,請使用Composers的autoload來使用SDK,如下圖:

require_once('vendor/autoload.php'); 

在執行上述步驟之前,請從儀表板獲取您的客戶端 ID 和密碼。獲得 ID 和密碼後,添加如下所示的代碼:

// 下面的代碼示例演示瞭如何在代碼中添加Client id和secret
static $ClientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
static $ClientSecret = 'b377c36cfa28fa69960ebac6b6e36421';

static $ApiBaseUrl = 'https://api.groupdocs.cloud';
static $MyStorage = '';

在 PHP 中使用 REST API 將電子郵件轉換為 PDF

按照下面給出的簡單步驟,我們可以在雲端以編程方式輕鬆地將電子郵件轉換為 PDF 文檔:

  1. 上傳EML文件到雲端
  2. 將 EML 轉換為 PDF
  3. 下載轉換後的PDF文件

上傳 EML 文件

首先,我們將使用以下代碼示例將 EML 文件上傳到雲端:

// 此代碼示例演示如何將 EML 文件上傳到雲。
// 設置配置
$configuration = new GroupDocs\Conversion\Configuration();
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);

// 初始化接口
$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);

因此,上傳的文件將在雲端儀表板的 文件部分 中可用。

在 PHP 中將 EML 轉換為 PDF

現在,我們將按照以下步驟將電子郵件從上傳的 EML 文件轉換為 PDF 文檔:

  • Firstly, create an instance of the ConvertApi.
  • Next, provide the uploaded EML file path, the convert format and output file path.
  • 然後,設置各種 EmlLoadOptions,如 setDisplayHeader、setDisplayEmailAddress 等。
  • 可選地,設置各種 PdfConvertOptions,例如 setCenterWindow、setMarginTop、setMarginLeft 等。
  • 之後,使用 ConvertSettings 作為參數創建 ConvertDocumentRequest。
  • 最後,使用帶有 ConvertDocumentRequest 的 convertDocument() 方法轉換 EML。

以下代碼示例顯示瞭如何在 PHP 中使用 REST API 將 EML 文件轉換為 PDF 文檔。

// 此代碼示例演示瞭如何在 PHP 中將 EML 轉換為 PDF。
// 設置配置
$configuration = new GroupDocs\Conversion\Configuration();
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
$configuration->setApiBaseUrl(self::$ApiBaseUrl);

// 創建新的 ConversionAPI 實例
$convertApi = new GroupDocs\Conversion\ConvertApi($configuration);

// 定義轉換設置
$settings = new GroupDocs\Conversion\Model\ConvertSettings();
$settings->setStorageName(self::$MyStorage);
$settings->setFilePath("sample.eml");
$settings->setFormat("pdf");
$settings->setOutputPath("convertedEML.pdf");

// 定義 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);

// 定義 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);

// 創建轉換請求
$request = new GroupDocs\Conversion\Model\Requests\ConvertDocumentRequest($settings);

// 轉換文檔
$response = $convertApi->convertDocument($request);
echo "Document converted successfully: ", $response[0]->getUrl();
在 PHP 中使用 REST API 將 EML 轉換為 PDF

使用 PHP 中的 REST API 將 EML 轉換為 PDF。

下載轉換後的文件

上面的代碼示例會將轉換後的 PDF 文件保存在雲端。可以使用以下代碼示例下載它:

// 此代碼示例演示瞭如何從雲端下載 PDF。
// 設置配置
$configuration = new GroupDocs\Conversion\Configuration();
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);

// 初始化接口
$apiInstance = new GroupDocs\Conversion\FileApi($configuration);

// 創建下載請求
$request = new GroupDocs\Conversion\Model\Requests\DownloadFileRequest("convertedEML.pdf", self::$MyStorage, null);

// 下載文件
$response = $apiInstance->downloadFile($request);

在 PHP 中使用 REST API 將 Outlook MSG 轉換為 PDF

我們可以按照以下步驟將 Outlook MSG 文件轉換為 PDF 文檔:

  • Firstly, create an instance of the ConvertApi.
  • 接下來,提供上傳的 MSG 文件路徑、轉換格式和輸出文件路徑。
  • 然後,設置各種 MsgLoadOptions 如 setDisplayCcEmailAddress 等。
  • 可選地,設置各種 PdfConvertOptions,例如 setCenterWindow、setMarginTop、setMarginLeft 等。
  • 之後,使用 ConvertSettings 作為參數創建 ConvertDocumentRequest。
  • 最後,使用帶有 ConvertDocumentRequest 的 convertDocument() 方法將 MSG 轉換為 PDF。

以下代碼示例顯示瞭如何在 PHP 中使用 REST API 將 MSG 文件轉換為 PDF 文檔。請按照前面提到的步驟上傳和下載文件。

// 此代碼示例演示如何在 PHP 中將 MSG 轉換為 PDF。
// 設置配置
$configuration = new GroupDocs\Conversion\Configuration();
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);
$configuration->setApiBaseUrl(self::$ApiBaseUrl);

// 創建新的 ConversionAPI 實例
$convertApi = new GroupDocs\Conversion\ConvertApi($configuration);

// 定義轉換設置
$settings = new GroupDocs\Conversion\Model\ConvertSettings();
$settings->setStorageName(self::$MyStorage);
$settings->setFilePath("sample.msg");
$settings->setFormat("pdf");
$settings->setOutputPath("convertedMSG.pdf");

// 定義 MSG 加載選項
$loadOptions = new GroupDocs\Conversion\Model\MsgLoadOptions();
$loadOptions->setDisplayCcEmailAddress(true);
$loadOptions->setDisplayBccEmailAddress(true);
$settings->setLoadOptions($loadOptions);

// 創建轉換請求
$request = new GroupDocs\Conversion\Model\Requests\ConvertDocumentRequest($settings);

// 轉換文檔
$response = $convertApi->convertDocument($request);
echo "Document converted successfully: ", $response[0]->getUrl();
在 PHP 中使用 REST API 將 Outlook MSG 轉換為 PDF。

在 PHP 中使用 REST API 將 Outlook MSG 轉換為 PDF。

如何在 PHP 中將電子郵件附件轉換為 PDF

我們還可以按照以下步驟以編程方式將電子郵件附件轉換為 PDF 文檔:

  • Firstly, create an instance of the ConvertApi.
  • 接下來,提供上傳的 MSG 文件路徑、轉換格式和輸出文件路徑。
  • 創建 MsgLoadOptions 的實例
  • 將 convertAttachments 屬性設置為 true
  • 之後,使用 ConvertSettings 作為參數創建 ConvertDocumentRequest。
  • 最後,使用帶有 ConvertDocumentRequest 的 convertDocument() 方法轉換 EML。

以下代碼示例顯示瞭如何使用 PHP 中的 REST API 將電子郵件附件轉換為 PDF 文檔。請按照前面提到的步驟上傳和下載文件。

// 此代碼示例演示如何在 PHP 中將電子郵件附件轉換為 PDF。
// 設置配置
$configuration = new GroupDocs\Conversion\Configuration();
$configuration->setAppSid(self::$ClientId);
$configuration->setAppKey(self::$ClientSecret);

// 創建 ConversionAPI 實例
$convertApi = new GroupDocs\Conversion\ConvertApi($configuration);

// 定義轉換設置
$settings = new GroupDocs\Conversion\Model\ConvertSettings();
$settings->setStorageName(self::$MyStorage);
$settings->setFilePath("Msg_with_attachments.msg");
$settings->setFormat("pdf");
$settings->setOutputPath("convertedAttachments.pdf");

// 定義 MSG 加載選項
$loadOptions = new GroupDocs\Conversion\Model\MsgLoadOptions();
$loadOptions->setConvertAttachments(true);

// 創建文檔請求
$request = new GroupDocs\Conversion\Model\Requests\ConvertDocumentRequest($settings);

// 轉換文檔
$response = $convertApi->convertDocument($request);
echo "Document converted successfully: ", $response[0]->getUrl();
如何在 PHP 中將電子郵件附件轉換為 PDF

在 PHP 中將電子郵件附件轉換為 PDF。

在線試用

請試用以下免費的在線 EML 到 PDF 和 MSG 到 PDF 轉換工具,這些工具是使用上述 API 開發的。

結論

在本文中,我們了解到:

  • 如何使用 PHP 將 EML 轉換為 PDF;
  • 如何將 Outlook MSG 文件轉換為 PDF 文檔;
  • 在 PHP 中將電子郵件附件保存為 PDF;
  • 如何以編程方式將 EML 文件上傳到雲端;
  • 如何從雲端下載PDF文件。

此外,您可以使用 文檔 了解有關 GroupDocs.Conversion Cloud API 的更多信息。我們還提供了一個 API 參考 部分,讓您可以直接通過瀏覽器可視化我們的 API 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看