在某些情况下,我们可能需要将我们的电子邮件和 Outlook 消息转换为 PDF 文档。这种转换使我们能够保留重要电子邮件的记录或以便携式形式共享它们。我们还可以通过编程将电子邮件中附加的文档转换为 PDF 文档。在本文中,我们将学习如何使用 PHP 中的 REST API 将电子邮件和 MSG 文件转换为 PDF 文档。
本文应涵盖以下主题:
- 电子邮件到 PDF 转换 REST API 和 PHP SDK
- 在 PHP 中将电子邮件转换为 PDF
- 在 PHP 中将 Outlook MSG 转换为 PDF
- 如何在 PHP 中将电子邮件附件转换为 PDF
电子邮件到 PDF 转换 REST API 和 PHP SDK
为了将 EML 和 MSG 文件转换为 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 文档:
- 上传EML文件到云端
- 将 EML 转换为 PDF
- 下载转换后的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 文档:
- 首先,创建一个 ConvertApi 的实例。
- 接下来,提供上传的 EML 文件路径、转换格式和输出文件路径。
- 然后,设置各种 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();
下载转换后的文件
上面的代码示例会将转换后的 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 文档:
- 首先,创建一个 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 中将电子邮件附件转换为 PDF
我们还可以按照以下步骤以编程方式将电子邮件附件转换为 PDF 文档:
- 首先,创建一个 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();
在线试用
请试用以下免费的在线 EML 到 PDF 和 MSG 到 PDF 转换工具,这些工具是使用上述 API 开发的。
- https://products.groupdocs.app/conversion/eml-to-pdf
- https://products.groupdocs.app/conversion/msg-to-pdf
结论
在本文中,我们了解到:
- 如何使用 PHP 将 EML 转换为 PDF;
- 如何将 Outlook MSG 文件转换为 PDF 文档;
- 在 PHP 中将电子邮件附件保存为 PDF;
- 如何以编程方式将 EML 文件上传到云端;
- 如何从云端下载PDF文件。
此外,您可以使用 文档 了解有关 GroupDocs.Conversion Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。如有任何歧义,请随时在论坛上与我们联系。