ویژگی‌های ابزار - MailMessage

رمزنگاری و رمزگشایی پیام‌ها

Aspose.Email امکان رمزنگاری و رمزگشایی پیام‌های ایمیل را فراهم می‌کند. این موضوع نشان می‌دهد چگونه می‌توان یک پیام موجود یا جدید را بارگذاری و با استفاده از MailMessage. این encrypt() و decrypt() متدها شی MailMessage را برای تأثیرات اعمال شده برمی‌گردانند و در هنگام رمزنگاری/رمزگشایی پیام‌ها باید مورد توجه قرار گیرد. رمزنگاری و رمزگشایی پیام‌ها شامل مراحل زیر است:

  1. ایجاد پیام جدید یا بارگذاری پیام موجود
  2. رمزنگاری پیام با استفاده از فایل گواهینامه
  3. ارسال پیام یا ذخیره‌سازی آن
  4. رمزگشایی پیام برحسب نیاز

کد نمونه زیر نشان می‌دهد چگونه پیام‌ها را رمزنگاری و رمزگشایی کنید.

بررسی رمزنگاری پیام

Aspose.Email MailMessage کلاسی که امکان بررسی اینکه آیا پیام رمزنگاری شده است یا نه را می‌دهد. isEncrypted ویژگی MailMessage امکان بررسی این را همان‌طور که در نمونه کد زیر نشان داده شده است، می‌دهد.

رمزنگاری پیام با X509Certificate

Aspose.Email API برای کار با پیام‌های رمزنگاری‌شده با X509Certificate ارائه می‌دهد:

MailMessage کلاس متدهای زیر را برای کار با رمزنگاری پیام دارد:

پیکربندی گزینه‌های Locale برای Aspose.Email

می‌توانید استفاده کنید LocaleOptions کلاس در صورت عدم شناسایی locale پیش‌فرض، مناسب‌ترین locale را برای کتابخانه Aspose Email تنظیم می‌کند. این کلاس متدهای زیر را برای انجام این کار ارائه می‌دهد:

  • getLocale() - بازگرداندن Locale پیش‌فرض برای Aspose.Email.
  • setLocale(Locale locale) و setLocale(String localeName) - تنظیم منطقه پیش‌فرض مرتبط با Aspose.Email.
  • clear() - تنظیمات پیش‌فرض منطقه‌ای برای Aspose.Email را پاک می‌کند. به‌عنوان تنظیم پیش‌فرض برای جاوا استفاده خواهد شد.

نمونه کد زیر نشان می‌دهد چگونه یک پیام ایمیل را از یک فایل با استفاده از تنظیمات منطقه‌ای مشخص بارگذاری کنید:

final Locale locale = new Locale("en", "DE");
Locale.setDefault(locale);

// set Locale for Aspose Email lib
LocaleOptions.setLocale("en-US");
// or
//LocaleOptions.setLocale(new Locale("en", "US"));

MailMessage.load("document.msg");

این کد اطمینان می‌دهد که برنامه و کتابخانه Aspose.Email از تنظیمات منطقه‌ای مشخص‌شده برای مدیریت زبان، کشور و سنت‌های فرهنگی استفاده می‌کنند.

پیام‌های ایمیلی حاوی پیوست‌های TNEF

قالب بسته‌بندی بی‌طرف انتقال (TNEF) یک قالب پیوست ایمیل اختصاصی است که توسط Microsoft Outlook و Microsoft Exchange Server استفاده می‌شود. API Aspose.Email به شما امکان می‌دهد پیام‌های ایمیلی که پیوست‌های TNEF دارند را بخوانید و محتوای آن‌ها را تغییر دهید. سپس ایمیل می‌تواند به‌صورت یک ایمیل معمولی یا به همان قالب، با حفظ پیوست‌های TNEF ذخیره شود. این مقاله نمونه‌های کد مختلفی برای کار با پیام‌های حاوی پیوست‌های TNEF نشان می‌دهد.

خواندن پیام با حفظ پیوست‌های TNEF

کد نمونه زیر نشان می‌دهد چگونه یک پیام را با حفظ پیوست‌های TNEF بخوانید.

به‌روزرسانی منابع در پیوست TNEF و حفظ قالب TNEF

کد نمونه زیر نشان می‌دهد چگونه منابع در یک پیوست TNEF را به‌روزرسانی و قالب TNEF را حفظ کنید.

افزودن پیوست‌های جدید به پیام اصلی حاوی TNEF

ایجاد TNEF EML از MSG

پیام‌های Outlook MSG گاهی شامل اطلاعاتی مانند جدول‌ها و سبک‌های متنی هستند که در صورت تبدیل به EML ممکن است دچار اختلال شوند. ایجاد پیام‌های TNEF از چنین فایل‌های MSG به ما اجازه می‌دهد قالب‌بندی را حفظ کنیم و حتی این پیام‌ها را از طریق کلاینت‌های ایمیل با همان قالب ارسال کنیم. 

برای ایجاد TNEF، می‌توانید از کد نمونه زیر استفاده کنید.

تشخیص اینکه آیا پیام TNEF است

پردازش پیام‌های برگشتی

امکان دارد پیامی که به گیرنده ارسال می‌شود به دلایلی مانند آدرس نامعتبر گیرنده بازگردد. API Aspose.Email قابلیت پردازش چنین پیامی را برای بررسی اینکه آیا ایمیل برگشتی است یا پیام ایمیل عادی دارد. The بررسی ایمیل برگشتی متد از MailMessage کلاس اگر پیام ایمیل یک ایمیل بازگشتی باشد، نتیجه معتبر برمی‌گرداند.

این مقاله استفاده از BounceResult کلاسی که امکان بررسی اینکه آیا پیام یک ایمیل بازگشتی است را فراهم می‌کند. همچنین اطلاعات دقیق درباره دریافت‌کنندگان، اقدام انجام‌شده و دلیل اعلان را ارائه می‌دهد.

نادیده‌گیری استثناها

کتابخانه یک ExceptionManager کلاسی برای پیاده‌سازی قابلیت نادیده گرفتن استثناها در عملکرد برنامه شما. قطعه کد زیر نشان می‌دهد چگونه یک کال‌بک برای مدیریت استثناها تنظیم شود:

 ExceptionManager.setIgnoreExceptionsHandler( new IgnoreExceptionsCallback() {

   //exception path: {Module}\{Method}\{Action}\{GUID}

   //example: MailMessage\Load\DecodeTnefAttachment\64149867-679e-4645-9af0-d46566cae598

   public boolean invoke(AsposeException ex, String path) {

       //Ignore all exceptions on MailMessage.Load

       return path.equals("MailMessage\\Load");

   }

});

یا از یک جایگزین استفاده کنید:

 ExceptionManager.setIgnoreAll(true);

همچنین می‌توانید یک کال‌بک برای گزارش استثناهای نادیده‌گرفته‌شده تنظیم کنید:

ExceptionManager.setIgnoreExceptionsLogHandler( new IgnoreExceptionsLogCallback() {

   public void invoke(String message) {

        System.out.println("=== EXCEPTION IGNORED === " + message);

   }

});

به کاربر اطلاع داده می‌شود که می‌توان استثنا را با یک پیام خطا نادیده گرفت. برای مثال:

استثنا در پیام:

AsposeArgumentException: properties should not be empty.

اگر می‌خواهید استثنا را نادیده بگیرید و به ادامه کار بپردازید، می‌توانید از زیر استفاده کنید:

ExceptionManager.getIgnoreList().add("MailMessage\\Load\\DecodeTnefAttachment\\64149867-679e-4645-9af0-d46566cae598")

Invalid TNEF Attachment will be interpreted as regular attachment.

تجزیه‌گر هرزنامه بیزی

Aspose.Email امکان فیلتر ایمیل را با استفاده از تجزیه‌گر هرزنامه بیز فراهم می‌کند. این امکان را ارائه می‌دهد the SpamAnalyzer کلاسی برای این هدف. این مقاله نشان می‌دهد چگونه فیلتر را برای تشخیص بین ایمیل‌های هرزنامه و ایمیل‌های عادی بر پایه پایگاه داده کلمات آموزش داد.

دریافت پیش‌متن و اپیلوگ از پیام‌های EML

در قالب MIME، پیش‌متن متنی است که پس از سرآیندها و پیش از اولین حد مرزی چندبخشی ظاهر می‌شود. اپیلوگ متنی است که پس از آخرین حد مرزی و پیش از پایان پیام ظاهر می‌شود. این متن معمولاً برای کاربران در برنامه‌خوان‌های ایمیل قابل مشاهده نیست، اما برخی پیاده‌سازی‌های MIME ممکن است از آن برای درج یادداشت‌ها برای گیرندگانی که پیام را با برنامه‌های غیرقابل سازگاری MIME می‌خوانند، استفاده کنند.

قطعه کد زیر نشان می‌دهد چگونه پیش‌متن و اپیلوگ را از یک پیام EML دریافت کنید که می‌توانید با استفاده از متدهای مربوطه انجام دهید MailMessage کلاس:

// Gets or sets a preamble text.
public String getPreamble, setPreamble

// Gets or sets an epilogue text.
public String getEpilogue, setEpilogue