创建一个 EML 文件(通过编程方式)在需要归档电子邮件、与遗留系统集成或自动化通知时至关重要。Aspose.3D Cloud SDK for Node.js 提供了一个简洁的库,处理繁重的工作,让您专注于业务逻辑。在本教程中,您将学习如何在 Node.js 中创建 EML,查看完整的工作示例,探索等效的 cURL 命令,并发现可靠的电子邮件导出的最佳实践。

如何在 Node.js 中创建 EML - 步骤指南

  1. 安装 SDK 并配置 API 密钥: 使用 npm 添加该包,并使用您的客户端凭证创建 Configuration 对象。
const { Configuration } = require('@asposecloud/email');

const config = new Configuration({
       clientId: 'YOUR_CLIENT_ID',
       clientSecret: 'YOUR_CLIENT_SECRET'
   });
  1. 初始化 EmailApi 客户端: 将配置传递给 EmailApi 构造函数。
const { EmailApi } = require('@asposecloud/email');
const emailApi = new EmailApi(config);

欲了解更多详情,请参阅 EmailApi 参考.

  1. 创建一个包含发件人、收件人、主题、正文和附件的 EmailDto:DTO 包含所有电子邮件组件。
const { EmailDto, MailAddress } = require('@asposecloud/email');

const email = new EmailDto({
       from: new MailAddress({ address: 'sender@example.com', displayName: 'Sender Name' }),
       to: [new MailAddress({ address: 'recipient@example.com', displayName: 'Recipient Name' })],
       subject: 'Test Email generated via Aspose.Email Cloud SDK',
       body: 'Hello,\n\nThis is a test email created with Aspose.Email Cloud SDK for Node.js.\n\nBest regards,\nNode.js',
       isBodyHtml: false,
       attachments: [{
           name: 'sample.txt',
           content: Buffer.from('Sample attachment content').toString('base64')
       }]
   });
  1. 生成 EML 文件: 调用 create 并使用格式 'Eml'。该方法返回二进制缓冲区。
const emlBuffer = await emailApi.create(email, 'Eml');
  1. 将缓冲区写入磁盘:使用 Node 的 fs 模块保存文件。
const fs = require('fs');
const path = require('path');

const outputFile = path.resolve(__dirname, 'output.eml');
   fs.writeFileSync(outputFile, emlBuffer);
   console.log(`EML file successfully created at: ${outputFile}`);

完整代码示例:使用 Node.js 创建 EML 文件

以下代码演示了从配置到文件创建的完整工作流。

const fs = require('fs');
const path = require('path');
const {
    EmailApi,
    EmailDto,
    MailAddress,
    Configuration
} = require('@asposecloud/email');

// -----------------------------------------------------
// 1. Install the SDK and configure API keys
// -----------------------------------------------------
const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';

const config = new Configuration({
    clientId: clientId,
    clientSecret: clientSecret,
    // baseUrl is optional; default is https://api.aspose.cloud
});

const emailApi = new EmailApi(config);

// -----------------------------------------------------
// 2. Initialize Email object and set properties
// -----------------------------------------------------
const email = new EmailDto({
    from: new MailAddress({
        address: 'sender@example.com',
        displayName: 'Sender Name'
    }),
    to: [
        new MailAddress({
            address: 'recipient@example.com',
            displayName: 'Recipient Name'
        })
    ],
    subject: 'Test Email generated via Aspose.Email Cloud SDK',
    body: 'Hello,\n\nThis is a test email created with Aspose.Email Cloud SDK for Node.js.\n\nBest regards,\nNode.js',
    isBodyHtml: false,
    // Optional: add a simple text attachment
    attachments: [
        {
            name: 'sample.txt',
            // Content must be Base64‑encoded
            content: Buffer.from('Sample attachment content').toString('base64')
        }
    ]
});

// -----------------------------------------------------
// 3. Generate EML file with Node.js
// -----------------------------------------------------
(async () => {
    try {
        // 'Eml' tells the service to return the message in .eml format
        const emlBuffer = await emailApi.create(email, 'Eml');

// Write the binary buffer to a file
        const outputFile = path.resolve(__dirname, 'output.eml');
        fs.writeFileSync(outputFile, emlBuffer);
        console.log(`EML file successfully created at: ${outputFile}`);
    } catch (error) {
        console.error('Failed to create EML:', error);
    }
})();

注意: 此代码示例演示了核心功能。在将其用于项目之前,请确保更新所有文件路径和配置值以匹配实际环境,验证已正确安装所有必需的依赖项,并在开发环境中进行彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。

使用 cURL 通过 REST API 生成 EML

以下是通过 REST API 执行相同操作的 cURL 命令。

  1. 获取访问令牌
curl -X POST "https://api.aspose.cloud/connect/token" \
        -H "Content-Type: application/x-www-form-urlencoded" \
        -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. 创建电子邮件 JSON 负载(保存为 email.json)
{
  "from": { "address": "sender@example.com", "displayName": "Sender Name" },
  "to": [{ "address": "recipient@example.com", "displayName": "Recipient Name" }],
  "subject": "Test Email generated via Aspose.Email Cloud SDK",
  "body": "Hello,\n\nThis is a test email created with Aspose.Email Cloud SDK for Node.js.\n\nBest regards,\nNode.js",
  "isBodyHtml": false,
  "attachments": [
    {
      "name": "sample.txt",
      "content": "U2FtcGxlIGF0dGFjaG1lbnQgY29udGVudA=="
    }
  ]
}
  1. 请求生成 EML
curl -X POST "https://api.aspose.cloud/email/create?format=Eml" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d @email.json --output output.eml

这些命令允许您在不编写任何 Node.js 代码的情况下生成 EML 文件。有关更多详细信息,请参阅官方 API 文档。

Aspose.3D Cloud SDK 的先决条件和设置

要开始使用 SDK,您需要 Node.js(v12 或更高)和 Aspose Cloud 帐户。

npm install aspose3dcloud

您也可以直接从发布页面下载该包。安装后,创建一个免费的 Aspose Cloud 帐户,获取您的 clientId 和 clientSecret,并妥善保管它们。

微调电子邮件生成选项

SDK 提供了多个可调属性:

  • isBodyHtml - 将其设置为 true,如果您的电子邮件正文包含 HTML 标记。
  • attachments - 向 attachments 数组添加多个对象;每个对象必须包含 name 和 Base64 编码的 content。
  • customHeaders - 虽然示例中未显示,但您可以添加 customHeaders 映射以包含其他 MIME 头。

请参阅 EmailDto 类参考 以获取完整的可配置字段列表。

EML 生成最佳实践

  • 验证电子邮件地址 在将其发送到 API 之前,以避免运行时错误。
  • 对附件内容进行 Base64 编码 以确保二进制数据正确传输。
  • 在多个 API 调用中复用 Configuration 对象 以减少开销。
  • 优雅地处理错误 通过将 create 调用包装在 try/catch 块中并记录响应。
  • 安全地存储生成的 EML 文件,尤其是当它们包含敏感信息时。

结论

在 Node.js 中创建 EML 变得简单且可重复,借助 Aspose.3D Cloud SDK for Node.js。按照上述步骤、代码示例和最佳实践操作,您可以可靠地将电子邮件导出为 EML 格式,以用于归档、合规或后续处理。请记住保护您的 API 凭证并获取适用于生产环境的正式许可证;您可以在临时许可证页面查看定价选项或申请临时许可证。祝编码愉快!

常见问题

如何在 Node.js 中使用 Aspose.3D Cloud SDK 创建 EML?
使用 EmailApi 类构建 EmailDto,然后使用 'Eml' 格式调用 create。本文中的完整示例展示了确切的代码。

在创建 EML 文件时,我可以自定义哪些选项?
您可以切换 isBodyHtml、添加多个附件,并定义自定义 MIME 标头。请参阅 Configuration / Options 部分了解详细信息。

在生产环境使用是否需要许可证?
在生产部署中需要有效许可证。可从临时许可证页面获取临时许可证,或通过 Aspose 商店购买完整许可证。

查看更多