تبدیل پیام‌های ایمیل به نشانه‌گذاری مناسب برای وب یک نیاز مکرر هنگام ساخت مراکز اعلان، ابزارهای بایگانی یا پنل‌های پیش‌نمایش است. Aspose.Cells Cloud SDK for Node.js کتابخانه‌ای قدرتمند مبتنی بر ابر ارائه می‌دهد که به شما امکان می‌دهد مستقیماً از برنامه Node.JS خود با فایل‌ها کار کنید. این راهنما شما را در یک EML به HTML اسکریپت تبدیل در Node.JS قدم به قدم راهنمایی می‌کند، شامل تنظیمات، کد، گزینه‌های cURL و نکات پیکربندی تا بتوانید رندر ایمیل را به سرعت یکپارچه کنید.

مراحل انجام اسکریپت تبدیل EML به HTML در Node.JS - 5 مرحله

  1. آپلود فایل EML به فضای ذخیره‌سازی Aspose Cloud: از متد StorageApi.uploadFile برای قرار دادن فایل منبع در ابر استفاده کنید.
    const emlData = fs.readFileSync(localEmlPath);
    await storageApi.uploadFile({
        path: remoteEmlPath,
        file: emlData
    });
    console.log('EML file uploaded to cloud storage.');
    
  2. تبدیل EML آپلود شده به HTML: متد EmailApi.convert را صدا بزنید و مقدار format را به 'html' تنظیم کنید.
    const convertResponse = await emailApi.convert({
        format: 'html',
        file: remoteEmlPath
    });
    
    این متد payload HTML را در بدنهٔ پاسخ برمی‌گرداند. برای جزئیات بیشتر به مرجع API مراجعه کنید.
  3. ذخیرهٔ HTML حاصل به‌صورت محلی: بدنهٔ پاسخ را در یک فایل روی دیسک بنویسید.
    if (convertResponse && convertResponse.body) {
        fs.writeFileSync(localHtmlPath, convertResponse.body);
        console.log(`Conversion successful. HTML saved to ${localHtmlPath}`);
    }
    
  4. (اختیاری) حذف فایل موقت EML: پس از تبدیل، فضای ذخیره‌سازی ابری را پاک کنید.
    await storageApi.deleteFile({ path: remoteEmlPath });
    console.log('Remote EML file deleted from cloud storage.');
    
  5. به‌صورت ملایم خطاها را مدیریت کنید: برای دریافت خطاهای شبکه یا API، جریان کار را در یک بلوک try‑catch بپیچید.

مثال کامل کارآمد برای اسکریپت تبدیل EML به HTML در Node.JS

کد زیر جریان کاری کامل توصیف‌شده در بالا را نشان می‌دهد. این کد از Aspose.Email Cloud SDK for Node.js رسمی همراه با قابلیت‌های ذخیره‌سازی Aspose.Cells استفاده می‌کند.

const fs = require('fs');
const path = require('path');
const { EmailApi, StorageApi, Configuration } = require('asposeemailcloud');

// ==== Configuration ====
// Replace with your actual Aspose Cloud client credentials
const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';

// Initialize the SDK configuration
const config = new Configuration({
    clientId: clientId,
    clientSecret: clientSecret,
    // Optional: set a custom base URL if needed
    // baseUrl: 'https://api.aspose.cloud'
});

const emailApi = new EmailApi(config);
const storageApi = new StorageApi(config);

// ==== File paths ====
const localEmlPath = path.resolve(__dirname, 'sample.eml');   // Input EML file
const remoteEmlPath = 'sample.eml';                         // Path in Aspose Cloud storage
const localHtmlPath = path.resolve(__dirname, 'sample.html'); // Output HTML file

// ==== Main async function ====
(async () => {
    try {
        // 1. Upload the EML file to Aspose Cloud storage
        const emlData = fs.readFileSync(localEmlPath);
        await storageApi.uploadFile({
            path: remoteEmlPath,
            file: emlData
        });
        console.log('EML file uploaded to cloud storage.');

// 2. Convert the uploaded EML to HTML
        const convertResponse = await emailApi.convert({
            format: 'html',
            file: remoteEmlPath
        });

// 3. Save the resulting HTML to local disk
        if (convertResponse && convertResponse.body) {
            fs.writeFileSync(localHtmlPath, convertResponse.body);
            console.log(`Conversion successful. HTML saved to ${localHtmlPath}`);
        } else {
            console.error('Conversion returned empty response.');
        }

// 4. (Optional) Clean up – delete the file from cloud storage
        await storageApi.deleteFile({ path: remoteEmlPath });
        console.log('Remote EML file deleted from cloud storage.');
    } catch (error) {
        console.error('Error during EML to HTML conversion:', error);
    }
})();

توجه: این مثال کد عملکرد اصلی را نشان می‌دهد. قبل از استفاده از آن در پروژه خود، مطمئن شوید مسیرهای فایل (sample.eml، sample.html و غیره) را مطابق با مکان‌های واقعی خود به‌روزرسانی کنید، اطمینان حاصل کنید تمام وابستگی‌های مورد نیاز نصب شده‌اند و به‌طور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به مستندات رسمی مراجعه کنید یا برای دریافت کمک با تیم پشتیبانی تماس بگیرید.

تبدیل EML به HTML از طریق REST API با استفاده از cURL

اگر ترجیح می‌دهید رویکردی مستقل از زبان استفاده کنید، همان تبدیل می‌تواند با تماس‌های ساده HTTP انجام شود. در زیر دستورات ضروری cURL آورده شده‌اند.

  1. دریافت توکن دسترسی (OAuth 2.0).
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"

پاسخ شامل access_token است.

  1. آپلود فایل EML به فضای ذخیره‌سازی ابری.
curl -X PUT "https://api.aspose.cloud/v3.0/cells/storage/file/sample.eml" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@sample.eml"
  1. درخواست تبدیل به HTML.
curl -X POST "https://api.aspose.cloud/v3.0/email/convert?format=html&file=sample.eml" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

بدنهٔ پاسخ شامل نشانه‌گذاری HTML است.

  1. ذخیره خروجی HTML به صورت محلی (اختیاری).
curl -X GET "https://api.aspose.cloud/v3.0/email/convert/result" \
        -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        -o sample.html

برای دریافت فهرست کامل پارامترها و مدیریت خطاها، به مستندات رسمی API مراجعه کنید.

پیش‌نیازها و راه‌اندازی برای Aspose.Cells Cloud SDK

قبل از نوشتن کد، اطمینان حاصل کنید که محیط شما الزامات زیر را برآورده می‌کند:

  • Node.js version 12 یا بالاتر.
  • یک حساب Aspose Cloud با شناسه مشتری و رمز عبور.
  • بسته SDK را نصب کنید:
npm install asposecellscloud
  • (اختیاری) Aspose.Email Cloud SDK for Node.js را نصب کنید اگر قصد استفاده از Email API را دارید:
npm install asposeemailcloud

ویژگی‌های کلیدی Aspose.Cells Cloud SDK برای تبدیل EML به HTML

  • یکپارچه‌سازی ذخیره‌سازی ابری - به‌صورت مستقیم از ذخیره‌سازی Aspose Cloud بخوانید و بنویسید و از هزینه‌های پردازش فایل‌های محلی جلوگیری کنید.
  • پشتیبانی از استریم - فایل‌های بزرگ EML به‌صورت استریم پردازش می‌شوند و مصرف حافظه کاهش می‌یابد.
  • تبدیل با عملکرد بالا - الگوریتم‌های بهینه‌سازی‌شده سمت سرور خروجی HTML سریع را حتی برای پیام‌های چندبخشی پیچیده فراهم می‌کنند.
  • کنترل‌های امنیتی - تمام داده‌ها از طریق HTTPS منتقل شده و در کانتینرهای جداگانه ذخیره می‌شوند، که با استانداردهای انطباق سازمانی مطابقت دارد.
  • سازگاری چندپلتفرمی - بر روی هر پلتفرمی که از Node.JS پشتیبانی می‌کند کار می‌کند و برای استقرارهای بدون سرور یا کانتینری مناسب است.

پیکربندی گزینه‌های تبدیل برای EML به HTML

نقطهٔ انتهایی تبدیل چندین پارامتر اختیاری را می‌پذیرد که به شما امکان تنظیم دقیق نتیجه را می‌دهد.

  • format - باید روی 'html' تنظیم شود. فرمت‌های دیگر (مثلاً 'pdf') نیز پشتیبانی می‌شوند.
  • storage - اگر از چندین مکان ذخیره‌سازی ابری استفاده می‌کنید، یک نام ذخیره‌سازی سفارشی را مشخص کنید.
  • outPath - مسیر هدف برای فایل HTML تولید شده در ابر را تعریف کنید.

مثال برای عبور گزینه‌ها در کد:

const convertResponse = await emailApi.convert({
    format: 'html',
    file: remoteEmlPath,
    storage: 'MyCustomStorage',
    outPath: 'output/sample.html'
});

برای دریافت فهرست کامل پارامترها به مرجع API مراجعه کنید.

نتیجه‌گیری

پیاده‌سازی یک اسکریپت تبدیل EML به HTML در Node.JS به‌راحتی با Aspose.Cells Cloud SDK for Node.js و API ایمیل مکمل امکان‌پذیر است. با بارگذاری فایل EML در ذخیره‌سازی ابری، فراخوانی نقطه انتهایی تبدیل و پردازش پاسخ، می‌توانید محتوای ایمیل را در هر رابط وبی نمایش دهید. قابلیت‌های استریمینگ SDK و زیرساخت ابری امن آن، این SDK را برای ابزارهای کوچک و خطوط لوله پردازش ایمیل در مقیاس بزرگ مناسب می‌سازد. برای استقرارهای تولیدی، می‌توانید یک لایسنس تجاری از طریق صفحه قیمت‌گذاری معمولی دریافت کنید؛ یک لایسنس موقت برای ارزیابی در صفحه لایسنس موقت در دسترس است. امروز شروع به ادغام کنید و ویژگی‌های ارتباطی برنامه خود را با کمترین تلاش گسترش دهید.

سوالات متداول

اسکریپت تبدیل EML به HTML در Node.JS چگونه پیام‌های چندبخشی را مدیریت می‌کند؟
API تمام بخش‌های MIME را تجزیه می‌کند، بدنه HTML را در صورت وجود استخراج می‌نماید و تصاویر جاسازی‌شده را به‌صورت داده‌های base64 درون‌خطی می‌کند، به‌طوری که HTML نهایی به‌درستی در مرورگرها رندر شود.

چه محدودیت‌های اندازه فایل برای اسکریپت تبدیل EML به HTML اعمال می‌شود؟
سرویس ابری فایل‌ها را تا 200 MB برای یک درخواست واحد می‌پذیرد. آرشیوهای بزرگ‌تر باید تقسیم یا به صورت تکه‑تکه پردازش شوند تا در محدوده باقی بمانند.

آیا امکان تبدیل چندین فایل EML در یک دستهٔ واحد وجود دارد؟
بله. لیست فایل‌های خود را پیمایش کنید، هر فایل EML را بارگذاری کنید، EmailApi.convert را فراخوانی کنید و نتایج را ذخیره کنید. متدهای ناهمزمان SDK به شما امکان می‌دهند چندین تبدیل را به‌صورت همزمان اجرا کنید تا عملکرد بهتری داشته باشید.

چگونه می‌توانم فرآیند تبدیل را هنگام استفاده از اسکریپت ایمن کنم؟
از HTTPS برای تمام تماس‌های API استفاده کنید، اعتبارهای مشتری خود را به‌صورت ایمن ذخیره کنید (مثلاً متغیرهای محیطی)، و فعال‌سازی محدودیت‌های IP را در حساب Aspose Cloud خود در نظر بگیرید. مجوز موقت دسترسی کامل به تمام ویژگی‌ها را در طول توسعه فراهم می‌کند بدون اینکه امنیت را به خطر اندازد.

Read More