Criar um arquivo EML programaticamente é essencial quando você precisa arquivar e‑mails, integrar com sistemas legados ou automatizar notificações. Aspose.3D Cloud SDK for Node.js fornece uma biblioteca simples que cuida do trabalho pesado, permitindo que você se concentre na lógica de negócios. Neste tutorial você aprenderá como criar EML no Node.js, verá um exemplo completo em funcionamento, explorará comandos cURL equivalentes e descobrirá as melhores práticas para exportação confiável de e‑mails.
Como Criar EML em Node.js - Passo a Passo
- Instale o SDK e configure as chaves de API: Use o npm para adicionar o pacote e criar um objeto
Configurationcom suas credenciais de cliente.
const { Configuration } = require('@asposecloud/email');
const config = new Configuration({
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET'
});
- Inicializar o cliente EmailApi: Passe a configuração para o construtor
EmailApi.
const { EmailApi } = require('@asposecloud/email');
const emailApi = new EmailApi(config);
Para mais detalhes, veja a referência EmailApi.
- Criar um EmailDto com remetente, destinatário, assunto, corpo e anexo: O DTO contém todos os componentes de e‑mail.
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')
}]
});
- Gerar o arquivo EML: Chame
createcom o formato'Eml'. O método retorna um buffer binário.
const emlBuffer = await emailApi.create(email, 'Eml');
- Escreva o buffer no disco: Use o módulo
fsdo Node para salvar o arquivo.
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}`);
Exemplo de Código Completo: Criar Arquivo EML com Node.js
O código a seguir demonstra todo o fluxo de trabalho, da configuração à criação do arquivo.
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);
}
})();
Nota: Este exemplo de código demonstra a funcionalidade principal. Antes de usá‑lo em seu projeto, certifique‑se de atualizar quaisquer caminhos de arquivo e valores de configuração para corresponder ao seu ambiente real, verifique se todas as dependências necessárias estão instaladas corretamente e teste minuciosamente em seu ambiente de desenvolvimento. Se encontrar algum problema, consulte a documentação oficial ou entre em contato com a equipe de suporte para obter assistência.
Gerar EML via API REST com cURL
Abaixo estão os comandos cURL que executam a mesma operação através da API REST.
- Obter um token de acesso
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"
- Crie o payload de e‑mail JSON (salve como
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=="
}
]
}
- Solicitar geração de 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
Esses comandos permitem gerar um arquivo EML sem escrever nenhum código Node.js. Para mais detalhes, consulte a documentação oficial da API.
Pré-requisitos e Configuração para Aspose.3D Cloud SDK
Para começar a usar o SDK, você precisa do Node.js (v12 ou posterior) e de uma conta Aspose Cloud.
npm install aspose3dcloud
Você também pode baixar o pacote diretamente da página de lançamentos. Após a instalação, crie uma conta gratuita da Aspose Cloud, obtenha seu clientId e clientSecret e mantenha-os seguros.
Ajuste fino das opções de geração de e‑mail
O SDK expõe várias propriedades que você pode ajustar:
- isBodyHtml - Defina como
truese o corpo do seu e‑mail contiver marcação HTML. - attachments - Adicione vários objetos ao array
attachments; cada um deve incluir umnameecontentcodificado em Base64. - customHeaders - Embora não mostrado no exemplo, você pode adicionar um mapa
customHeaderspara incluir cabeçalhos MIME adicionais.
Consulte a referência da classe EmailDto para obter uma lista completa de campos configuráveis.
Melhores Práticas para Geração de EML
- Validar endereços de email antes de enviá‑los para a API para evitar erros de tempo de execução.
- Codificar o conteúdo do anexo em Base64 para garantir que os dados binários sejam transmitidos corretamente.
- Reutilizar o objeto Configuration em várias chamadas de API para reduzir a sobrecarga.
- Tratar erros de forma elegante envolvendo a chamada
createem um blocotry/catche registrando a resposta. - Armazenar arquivos EML gerados com segurança, especialmente se contiverem informações sensíveis.
Conclusão
Criar EML em Node.js torna‑se um processo simples e repetível com o Aspose.3D Cloud SDK for Node.js. Seguindo as etapas, o exemplo de código e as melhores práticas descritas acima, você pode exportar e‑mails de forma confiável para o formato EML para arquivamento, conformidade ou processamento posterior. Lembre‑se de proteger suas credenciais de API e obter uma licença adequada para uso em produção; você pode explorar opções de preços ou solicitar uma licença temporária na página de licença temporária. Feliz codificação!
FAQs
Como criar EML em Node.js usando Aspose.3D Cloud SDK?
Use a classe EmailApi para construir um EmailDto, então chame create com o formato 'Eml'. O exemplo completo neste artigo mostra o código exato.
Quais opções posso personalizar ao criar um arquivo EML?
Você pode alternar isBodyHtml, adicionar vários anexos e definir cabeçalhos MIME personalizados. Consulte a seção Configuração / Opções para obter detalhes.
É necessária uma licença para uso em produção?
É necessária uma licença válida para implantações em produção. Obtenha uma licença temporária na página de licença temporária ou compre uma licença completa através da loja Aspose.