استفاده از یک سند Microsoft Word به‌عنوان متن پیام و ارسال ایمیل

این مقاله نشان می‌دهد چگونه از یک سند Microsoft Word به‌عنوان محتوای ایمیل استفاده کنید و آن را به دریافت‌کنندگان ارسال کنید. سند نمونه یک فاکتور فروش از دیتابیس نمونه Northwind است که به فرمت Microsoft Word صادر شده است. Aspose.Email برای Java با پروتکل‌های شبکه و ویژگی‌های Microsoft Outlook کار می‌کند و نمی‌تواند اسناد Microsoft Word را پردازش کند. برای رفع این محدودیت، نمونه‌های این مقاله از Aspose.Words for Java برای بارگذاری سند Word و تبدیل آن به قالب MHTML. Aspose.Email برای Java از سند MHTML در متن ایمیل استفاده می‌کند.

استفاده از اسناد Microsoft Word به‌عنوان متن ایمیل

نمونه‌های برنامه‌نویسی زیر نشان می‌دهند چگونه یک سند Word را به‌عنوان متن ایمیل با استفاده از Aspose.Words برای Java و Aspose.Email برای Java ارسال کنید:

  1. بارگذاری یک سند Microsoft Word با استفاده از Aspose.Word برای Java’s Document کلاس.
  2. ذخیره آن در قالب MHTML.
  3. بارگذاری سند MHTML با استفاده از Aspose.Email برای Java’s MailMessage کلاس برای تنظیم متن ایمیل.
  4. تنظیم ویژگی‌های دیگر پیام با استفاده از MailMessage ویژگی‌ها و متدهای کلاس.
  5. ارسال ایمیل با استفاده از Aspose.Email برای Java’s SMTPClient کلاس.

سند منبع، یک فاکتور فروش که از نمونه Microsoft Northwind به Microsoft Word استخراج شده است، در زیر قابل مشاهده است.

todo:image_alt_text

هنگامی که پیام در Microsoft Outlook ارسال و دریافت شود، شبیه پیام زیر به نظر می‌رسد.

todo:image_alt_text

قالب‌بندی HTML و تصاویر همان‌طور که در سند اصلی هستند، در هنگام مشاهده در Outlook یا یک کلاینت ایمیل وب مانند Gmail یا Hotmail حفظ می‌شوند. در زیر یک اسکرین‌شات از پیام هنگام باز شدن با Gmail در مرورگر Chrome نشان داده شده است.

todo:image_alt_text

قطعه کد زیر نشان می‌دهد چگونه از یک سند Microsoft Word به‌عنوان متن پیام استفاده کنید و ایمیل را با استفاده از SmtpClient نمونهٔ کلاس.

// The path to the File directory
String dataDir = "data/";

// Load a Word document from disk and save it to stream as MHTML
Document wordDocument = new Document(dataDir + "Test.doc");
ByteArrayOutputStream mhtmlStream = new ByteArrayOutputStream();
wordDocument.save(mhtmlStream, SaveFormat.MHTML);

// Load the MHTML in a MailMessage object
MailMessage message = MailMessage.load(new ByteArrayInputStream(mhtmlStream.toByteArray()), new MhtmlLoadOptions());
message.setSubject("Sending Invoice in Email");
message.setFrom(new MailAddress("sender@gmail.com"));
message.setTo(MailAddressCollection.to_MailAddressCollection("recipient@gmail.com"));

// Save the message in MSG format to disk
message.save(dataDir + "WordDocAsEmailBody_out.msg", SaveOptions.getDefaultMsgUnicode());

    // Send the email message
try (SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "sender@gmail.com", "pwd")) {
    client.setSecurityOptions(SecurityOptions.SSLExplicit);
    client.send(message);
}