Создание файла EML программно необходимо, когда нужно архивировать электронные письма, интегрировать с устаревшими системами или автоматизировать уведомления. Aspose.3D Cloud SDK for Node.js предоставляет простой набор библиотек, который берёт на себя тяжёлую работу, позволяя сосредоточиться на бизнес‑логике. В этом руководстве вы узнаете, как создать EML в Node.js, увидите полностью рабочий пример, изучите эквивалентные команды cURL и откроете для себя лучшие практики надёжного экспорта электронной почты.
Как создать EML в Node.js - пошагово
- Установите SDK и настройте ключи API: Используйте npm для добавления пакета и создания объекта
Configurationс вашими учётными данными клиента.
const { Configuration } = require('@asposecloud/email');
const config = new Configuration({
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET'
});
- Инициализировать клиент EmailApi: Передайте конфигурацию конструктору
EmailApi.
const { EmailApi } = require('@asposecloud/email');
const emailApi = new EmailApi(config);
Для получения более подробной информации см. справка EmailApi.
- Создайте 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')
}]
});
- Создать файл EML: Вызовите
createс форматом'Eml'. Метод возвращает бинарный буфер.
const emlBuffer = await emailApi.create(email, 'Eml');
- Записать буфер на диск: Используйте модуль
fsNode для сохранения файла.
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.
- Получить токен доступа
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"
- Создайте 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=="
}
]
}
- Запрос генерации 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.