Создание файла EML программно необходимо, когда нужно архивировать электронные письма, интегрировать с устаревшими системами или автоматизировать уведомления. Aspose.3D Cloud SDK for Node.js предоставляет простой набор библиотек, который берёт на себя тяжёлую работу, позволяя сосредоточиться на бизнес‑логике. В этом руководстве вы узнаете, как создать EML в Node.js, увидите полностью рабочий пример, изучите эквивалентные команды cURL и откроете для себя лучшие практики надёжного экспорта электронной почты.

Как создать EML в Node.js - пошагово

  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. Записать буфер на диск: Используйте модуль fs Node для сохранения файла.
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}`);

Полный пример кода: создание файла EML с Node.js

Следующий код демонстрирует весь процесс работы от настройки до создания файла.

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);
    }
})();

Примечание: Этот пример кода демонстрирует базовую функциональность. Прежде чем использовать его в вашем проекте, убедитесь, что обновили все пути к файлам и значения конфигурации в соответствии с вашей реальной средой, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если вы столкнётесь с какими‑либо проблемами, обратитесь к официальной документации или свяжитесь с командой поддержки для получения помощи.

Создание EML через REST API с помощью cURL

Ниже приведены команды cURL, которые выполняют ту же операцию через REST API.

  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. Создайте payload письма в формате 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

Эти команды позволяют создать файл EML без написания кода Node.js. Для получения более подробной информации см. официальную документацию 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

  • Проверяйте email‑адреса перед отправкой их в API, чтобы избежать ошибок выполнения.
  • Base64‑кодируйте содержимое вложения чтобы гарантировать корректную передачу бинарных данных.
  • Повторно используйте объект Configuration при множественных вызовах API, чтобы снизить нагрузку.
  • Обрабатывайте ошибки корректно оборачивая вызов create в блок try/catch и записывая ответ в журнал.
  • Храните сгенерированные файлы EML безопасно, особенно если они содержат конфиденциальную информацию.

Заключение

Создание EML в Node.js становится простым, повторяемым процессом с помощью Aspose.3D Cloud SDK for Node.js. Следуя шагам, примеру кода и лучшим практикам, описанным выше, вы можете надёжно экспортировать электронные письма в формат EML для архивирования, соответствия требованиям или дальнейшей обработки. Не забудьте защитить свои учётные данные API и получить соответствующую лицензию для использования в продакшене; вы можете изучить варианты ценообразования или запросить временную лицензию на странице страница временной лицензии. Удачной разработки!

Часто задаваемые вопросы

Как создать EML в Node.js с помощью Aspose.3D Cloud SDK?
Используйте класс EmailApi для создания объекта EmailDto, затем вызовите create с форматом 'Eml'. Полный пример в этой статье показывает точный код.

Какие параметры я могу настроить при создании файла EML?
Вы можете переключать isBodyHtml, добавлять несколько вложений и определять пользовательские заголовки MIME. См. раздел Конфигурация / Параметры для подробностей.

Требуется ли лицензия для использования в продакшене?
Для продакшн‑развертываний требуется действующая лицензия. Получите временную лицензию на странице временных лицензий или приобретите полную лицензию в магазине Aspose.

Подробнее