
- استرداد البريد الإلكتروني عبر POP3
- استرداد البريد الإلكتروني عبر IMAP
- استرداد الرسائل من خادم MS Exchange
- Microsoft Graph لاستخراج الرسائل من خادم
- استخراج الرسائل من تخزين صناديق البريد غير المتصلة
عند تطوير تطبيق للتعامل مع البريد الإلكتروني، فإن إنشاء آلية فعالة لاستخراج الرسائل من صندوق الوارد أمر ضروري لضمان التسليم الموثوق والسريع وسهولة الوصول. يتم تقدير ذلك بشكل خاص من قبل المنظمات والشركات التي تتعامل مع الحجم المتزايد من الرسائل الواردة. في هذه المقالة، سنستكشف كيفية الاستفادة من قوة مكتبة جافا لاسترداد البريد الإلكتروني عبر POP3 وIMAP وEWS وGraph API ومن تخزين صناديق البريد غير المتصلة بأنواع مختلفة على سبيل المثال لملف PST. تقدم هذه الأساليب حلاً شاملاً لاسترداد البريد الإلكتروني، مما يعزز قدرات تطبيق جافا الخاص بك.
واجهة برمجة التطبيقات لجافا لاستخراج الرسائل
لاستخراج الرسائل من خادم أو تخزين صندوق بريد في جافا، سنستخدم Aspose.Email لجافا. Aspose.Email هي مكتبة قوية تمكّن مطوري جافا من العمل مع رسائل البريد الإلكتروني والمجلدات والخوادم البريدية بسهولة. وهي توفر دعمًا لمجموعة واسعة من تنسيقات البريد الإلكتروني، بما في ذلك MSG وEML وPST وOST، مما يجعلها خيارًا متعدد الاستخدامات للمهام المتعلقة بالبريد الإلكتروني. يمكنك بسهولة تنفيذ واجهة برمجة التطبيقات في مشروعك إذا قمت بتحميلها أو تثبيتها باستخدام تكوينات Maven التالية.
المستودع:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
الاعتماد:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-email</artifactId>
<version>23.11</version>
<classifier>jdk16</classifier>
</dependency>
استرداد البريد الإلكتروني عبر POP3
POP3 (بروتوكول مكتب البريد 3) هو بروتوكول استرداد البريد الإلكتروني المستخدم على نطاق واسع. يسمح لك بتحميل رسائل البريد الإلكتروني من خادم البريد إلى جهازك المحلي. مع Aspose.Email، يمكنك استرداد البريد الإلكتروني عبر POP3 بسهولة باستخدام مقتطف كود التالي مع الخطوات:
- استخدم فئة Pop3Client لإنشاء كائن مع تمرير الخصائص اللازمة لإنشاء الاتصال مع خادم POP3.
- قم بتمكين الاختيار التلقائي لبروتوكول الأمان المناسب عن طريق تعيين خيارات الأمان إلى SecurityOptions.Auto.
- استرد مجموعة من الرسائل في صندوق البريد عن طريق استدعاء طريقة listMessages على كائن Pop3Client.
- قم بالتكرار على مجموعة messageInfoCol.
- لكل كائن Pop3MessageInfo، استدعِ طريقة fetchMessage على كائن Pop3Client، مع تمرير رقم التسلسل المسترد من messageInfo.getSequenceNumber().
- داخل الحلقة، يمكنك بعد ذلك العمل مع الرسالة المستردة في المتغير eml، مثل قراءة محتواها أو حفظها في ملف.
Pop3Client client = new Pop3Client("pop3.server.com", "username", "password"); | |
client.setSecurityOptions(SecurityOptions.Auto); | |
try { | |
Pop3MessageInfoCollection messageInfoCol = pop3Client.listMessages(); | |
for (Pop3MessageInfo messageInfo : messageInfoCol) { | |
MailMessage eml = client.fetchMessage(messageInfo.getSequenceNumber()); | |
} | |
} catch (Exception ex) { | |
System.out.println(ex.getMessage()); | |
} finally { | |
client.dispose(); | |
} |
استرداد البريد الإلكتروني عبر IMAP
IMAP (بروتوكول الوصول إلى رسائل الإنترنت) هو بروتوكول استرداد البريد الإلكتروني القياسي الذي يسمح لعملاء البريد الإلكتروني بالوصول إلى الرسائل وإدارتها المخزنة على خادم بريد إلكتروني بعيد. على عكس POP3، الذي يقوم عادةً بتنزيل البريد الإلكتروني إلى جهاز محلي، يحتفظ IMAP بالرسائل على الخادم، مما يجعله مثاليًا لمزامنة الأجهزة المتعددة والوصول عن بُعد. يسمح Aspose.Email بالتكامل السلس للبروتوكول في تطبيقك. انظر عينة الكود التالية مع الخطوات لاسترداد الرسائل:
- قم بإنشاء كائن ImapClient، مع تمرير اسم المضيف واسم المستخدم وكلمة المرور لخادم IMAP.
- عيّن خيارات الأمان للعميل إلى SecurityOptions.Auto، مما يتيح الاختيار التلقائي لبروتوكول الأمان المناسب.
- استدعِ طريقة listMessages على كائن ImapClient لاسترداد مجموعة من كائنات ImapMessageInfo التي تمثل الرسائل في صندوق البريد.
- قم بالتكرار على مجموعة messageInfoCol.
- لكل كائن ImapMessageInfo، استدعِ طريقة fetchMessage على كائن ImapClient، مع تمرير المعرف الفريد المسترد من messageInfo.getUniqueId().
- داخل الحلقة، يمكنك بعد ذلك العمل مع الرسالة المستردة في المتغير eml، مثل قراءة محتواها أو حفظها في ملف.
ImapClient client = new ImapClient("localhost", "user", "password"); | |
client.setSecurityOptions(SecurityOptions.Auto); | |
try { | |
ImapMessageInfoCollection messageInfoCol = client.listMessages(); | |
for (ImapMessageInfo messageInfo : messageInfoCol) { | |
MailMessage eml = client.fetchMessage(messageInfo.getUniqueId()); | |
} | |
} catch (Exception ex) { | |
System.out.println(ex.getMessage()); | |
} finally { | |
client.dispose(); | |
} |
استرداد الرسائل من خادم MS Exchange
بروتوكول خدمات الويب Exchange (EWS) هو بروتوكول اتصال قوي ومتعدد الاستخدامات تم تطويره بواسطة Microsoft للوصول إلى البيانات وإدارتها داخل Microsoft Exchange Server وOffice 365. توفر Aspose.Email مجموعة من الميزات للعمل مع صناديق البريد ورسائلها، مما يمكّن المطورين من بناء تطبيقات وخدمات تدمج بسلاسة مع البيانات داخل Microsoft Exchange Server وOffice 365، مما يجعلها أدوات قيمة للتواصل والتعاون في الأعمال الحديثة. أدناه عرض لتكامل فعال لواجهة برمجة التطبيقات الخاصة بنا مع بروتوكول EWS في مقتطف كود بسيط مع الخطوات:
- قم بإنشاء كائن IEWSClient، مع استدعاء طريقة getEWSClient على فئة EWSClient وتمرير عنوان URL لنقطة نهاية EWS لخادم Exchange، بالإضافة إلى اسم المستخدم وكلمة المرور للمصادقة.
- استدعِ طريقة getMailboxInfo() وgetInboxUri() على كائن العميل للحصول على URI لمجلد صندوق الوارد.
- استدعِ طريقة listMessages() على كائن العميل، مع تمرير URI لصندوق الوارد، لاسترداد مجموعة من كائنات ExchangeMessageInfo التي تمثل الرسائل في صندوق الوارد.
- قم بالتكرار على مجموعة messageInfoCol.
- لكل كائن ExchangeMessageInfo، استدعِ طريقة getUniqueUri() للحصول على URI الفريد للرسالة.
- استدعِ طريقة fetchMessage على كائن العميل، مع تمرير strMessageURI، لاسترداد الرسالة المحددة.
- داخل الحلقة، يمكنك بعد ذلك العمل مع الرسالة المستردة في المتغير eml، مثل قراءة محتواها أو حفظها في ملف.
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "UserName", "Password"); | |
ExchangeMessageInfoCollection messageInfoCol = client.listMessages(client.getMailboxInfo().getInboxUri()); | |
for (ExchangeMessageInfo msgInfo : (Iterable<ExchangeMessageInfo>) messageInfoCol) { | |
String strMessageURI = msgInfo.getUniqueUri(); | |
MailMessage eml = client.fetchMessage(strMessageURI); | |
} |
Microsoft Graph لاستخراج الرسائل من خادم
تعد واجهة برمجة تطبيقات Microsoft Graph واجهة برمجة تطبيقات REST مقدمة من Microsoft للوصول إلى خدمات Microsoft المختلفة، بما في ذلك Outlook وOffice 365. تتولى Instantiation من فئة IGraphClient، المقدمة بواسطة Aspose.Email لجافا، بناء الطلبات وإرسالها إلى واجهة برمجة تطبيقات Microsoft Graph ومعالجة الاستجابات. يوفر هذا التكامل مجموعة من الوظائف للتعامل الفعال مع البريد الإلكتروني. توضح عينة الكود أدناه وظيفة استرداد الرسائل المدعومة بواسطة الخطوات التالية:
- قم بإنشاء كائن IGraphClient، مع استدعاء طريقة getClient على فئة GraphClient وتمرير كائن tokenProvider للمصادقة مع واجهة برمجة تطبيقات Microsoft Graph.
- استدعِ طريقة listMessages على كائن IGraphClient، مع تمرير GraphKnownFolders.Inbox لاسترداد مجموعة من كائنات GraphMessageInfo التي تمثل الرسائل في صندوق الوارد.
- قم بالتكرار على مجموعة messageInfoColl.
- لكل كائن GraphMessageInfo، استدعِ طريقة fetchMessage على كائن IGraphClient، مع تمرير طريقة getItemId كمعامل لاسترداد الرسالة المحددة.
- داخل الحلقة، يمكنك بعد ذلك العمل مع الرسالة المستردة في المتغير message، مثل قراءة محتواها أو حفظها في ملف باستخدام فئة MapiMessage.
IGraphClient client = GraphClient.getClient(tokenProvider); | |
GraphMessageInfoCollection messageInfoColl = client.listMessages(GraphKnownFolders.Inbox); | |
for (GraphMessageInfo messageInfo : messageInfoColl) { | |
MapiMessage message = client.fetchMessage(messageInfo.getItemId()); | |
} |
استخراج الرسائل من تخزين صناديق البريد غير المتصلة
يشير تخزين صناديق البريد غير المتصلة إلى تخزين رسائل البريد الإلكتروني والبيانات ذات الصلة على جهاز محلي أو كمبيوتر، مما يسمح للمستخدمين بالوصول إلى رسائلهم دون اتصال نشط بالإنترنت. تتيح مكتبتنا المتقدمة لك تطوير عملاء البريد الإلكتروني والتطبيقات التي تمنح المستخدمين القدرة على العمل مع رسائلهم حتى عند عدم الاتصال بخادم البريد الإلكتروني أو الإنترنت. ستظهر لك مقتطفات الكود التالية مع الخطوات كيفية الاستفادة من قوة المكتبة في فتح ملف تخزين شخصي Outlook (PST)، والوصول إلى مجلد “صندوق الوارد”، واستخراج كل رسالة منه.
- قم بإنشاء كائن PersonalStorage، مع استدعاء طريقة fromFile على فئة PersonalStorage وتمرير مسار ملف ملف PST (“storage.pst”).
- الوصول إلى المجلد الجذر لملف PST من خلال طريقة getRootFolder على كائن PersonalStorage.
- احصل على مجلد “صندوق الوارد” من المجلد الجذر باستخدام طريقة getSubFolder، مع تمرير “صندوق الوارد” كاسم المجلد.
- قم بالتكرار على الرسائل في مجلد صندوق الوارد.
- لكل كائن MessageInfo في مجموعة folder.enumerateMessages()، استدعِ طريقة extractMessage على كائن PersonalStorage، مع تمرير معامل messageInfo لاستخراج الرسالة المحددة.
- داخل الحلقة، يمكنك بعد ذلك العمل مع الرسالة المستخرجة في المتغير msg، مثل قراءة محتواها أو معالجة بياناتها الوصفية باستخدام فئة MapiMessage.
PersonalStorage pst = PersonalStorage.fromFile("storage.pst"); | |
FolderInfo folder = pst.getRootFolder().getSubFolder("Inbox"); | |
for (MessageInfo messageInfo : folder.enumerateMessages()) { | |
MapiMessage msg = pst.extractMessage(messageInfo); | |
} |
الخاتمة
في هذه المقالة، تعلمنا كيفية الاستفادة من قوة Aspose.Email لجافا لاسترداد البريد الإلكتروني. مع دعم POP3 وIMAP وEWS وGraph API وتخزين صناديق البريد غير المتصلة، تمكّن المكتبة من تخصيص وظائف تطبيقك لتلبية احتياجات محددة. سواء كنت تطور تطبيق عميل أو أداة تكامل أو حلاً مخصصًا، توفر لك واجهة برمجة التطبيقات الخاصة بنا لجافا الأدوات لإنشاء تجربة سلسة وفعالة في التعامل مع الرسائل. يمكنك استكشاف ميزات أخرى لـ Aspose.Email باستخدام التوثيق. كما يمكنك طرح استفساراتك في منتدانا.