مقدمة للمفاهيم الأساسية للبريد الإلكتروني
يتم استخدام البريد الإلكتروني لنقل الثقة والتواصل عبر الإنترنت ، وهي واحدة من أهم خدمات الإنترنت. وفقًا للإحصاءات ، ترتبط 30 ٪ من خدمات الإنترنت بالبريد الإلكتروني. في الوقت نفسه ، لا يمكننا أن ننكر أنه يلعب دورًا مهمًا في حياتنا اليومية والعمل والمكتب. على سبيل المثال: العديد من مشاريع أتمتة المكاتب (OAS) لديها وظيفة إرسال رسائل البريد الإلكتروني. إذا كنت تستخدم أيضًا طرقًا يدوية مثل Outlook ، فهي ليست مناسبة. في هذه الحقبة عالية السرعة ، نحتاج إلى توفير كفاءة العمل بحيث يمكن تلقائي العمل. في الوقت نفسه ، تحتاج العديد من مواقع الويب أيضًا إلى إرسال رسائل بريد إلكتروني: أرسل رسالة بريد إلكتروني مرحب بها إلى المستخدمين المسجلين حديثًا بمعلومات التسجيل الخاصة بهم ، وإرسال أحدث معلومات النشاط على موقع الويب إلى جميع الأعضاء المسجلين من خلال البريد الإلكتروني ، إلخ.
قبل بدء تطوير البريد الإلكتروني: نحتاج إلى فهم العديد من المفاهيم: نظام البريد الإلكتروني وخادم البريد والبريد الإلكتروني وبرامج عميل البريد وبروتوكول نقل البريد وعملية نقل البريد الإلكتروني.
نظام البريد الإلكتروني
على غرار الخدمات البريدية التقليدية ، يتكون نظام البريد الإلكتروني من مكتب بريد إلكتروني ، ونظام إرسال بريد إلكتروني واستلامه. يرسل المرسلون والمستلمون وتلقي رسائل البريد الإلكتروني من خلال أنظمة إرسال واستقبال البريد الإلكتروني ، والتي هي في الواقع برامج عميل البريد تعمل على أجهزة الكمبيوتر. يلعب مكتب البريد الإلكتروني جسرًا ، وهو في الواقع برنامج خادم بريد يعمل على الخادم. تشبه عملية معالجة البريد الإلكتروني عملية الخدمات البريدية.
خادم البريد
خادم البريد هو جهاز يستخدم لإدارة رسائل البريد الإلكتروني. هناك عدد كبير من خوادم البريد الإلكتروني المتوفرة على الإنترنت ، مثل: 126 ، 163 ، Hotmail ...
الوظائف الرئيسية التي يوفرها خادم البريد الإلكتروني:
1. استلام رسائل البريد الإلكتروني التي أرسلها المستخدمون.
2. إعادة توجيه البريد الإلكتروني الذي قدمه المستخدم إلى خادم البريد المستهدف.
3. تلقي رسائل البريد الإلكتروني التي يتم إعادة توجيهها بواسطة خوادم البريد الإلكتروني الأخرى وتخزين رسائل البريد الإلكتروني في رسائل البريد الإلكتروني للمستخدم التي يديرها.
4. توفير المستخدمين الذين يأتون لقراءة رسائل البريد الإلكتروني لقراءة رسائل البريد الإلكتروني.
تشكل خوادم البريد جوهر نظام البريد الإلكتروني. يحتوي كل مستلم على صندوق بريد (صندوق البريد) الموجود على خادم بريد معين. يتم استخدام صندوق بريد بوب لإدارة وصيانة رسائل البريد الإلكتروني التي تم إرسالها إليه. تبدأ رحلة نموذجية لرسالة بريد إلكتروني مع وكيل مستخدم المرسل ، خادم البريد الإلكتروني للمرسل ، يتم نقله إلى خادم البريد الإلكتروني للمستلم ، ثم يتم تسليمه إلى عنوان البريد الإلكتروني للمستلم. عندما يرغب Bob في عرض رسائل البريد الإلكتروني في صندوق البريد الخاص به ، فإن خادم البريد الذي يخزن صندوق البريد سيصادقه مع اسم المستخدم وكلمة المرور التي قدمها. يتعين على خادم بريد أليس أيضًا التعامل مع فشل خادم بريد بوب. إذا لم يتمكن خادم البريد الخاص بـ Alice من تسليم رسائل البريد إلى خادم بريد بوب على الفور ، فإن خادم أليس يخزنها في قائمة انتظار الرسائل ثم يحاول تسليمها لاحقًا. عادةً ما يتم تنفيذ هذه المحاولة كل 30 دقيقة أو نحو ذلك: إذا فشلت المحاولة في النجاح بعد عدة أيام ، فإن الخادم يزيل الرسالة من قائمة انتظار الرسائل ويبلغ المرسل (أي أليس) برسالة بريد إلكتروني أخرى.
بريد إلكتروني
البريد الإلكتروني هي طريقة اتصال حديثة تنقل وتتلقى معلومات من بعضها البعض من خلال الشبكة. إنها طريقة اتصال توفر تبادل المعلومات بالوسائل الإلكترونية وهي الخدمة الأكثر استخدامًا على الإنترنت. من خلال نظام البريد الإلكتروني للشبكة ، يمكن للمستخدمين الاتصال بمستخدمي الإنترنت في أي ركن من أركان العالم بسعر منخفض للغاية وبطريقة سريعة للغاية. يمكن أن تكون رسائل البريد الإلكتروني هذه بطرق مختلفة مثل النص والصور والصوت ، إلخ. في نفس الوقت ، يمكن للمستخدمين الحصول على عدد كبير من الأخبار المجانية ورسائل البريد الإلكتروني الخاصة ، وتحقيق البحث السهل.
يتكون البريد الإلكتروني من جزأين: المغلف والمحتوى. تسمى الأظرف أيضًا رؤوس البريد ، ويقوم خادم البريد الإلكتروني بتسليم البريد بناءً على الثقة في الظرف. يسمى المحتوى هيكل البريد ، والذي يستخدم لتوفير المحتوى المحدد للبريد الإلكتروني.
عنوان البريد الإلكتروني على الإنترنت فريد من نوعه في جميع أنحاء العالم ، وتنسيقه هو "اسم مجال البريد الإلكتروني@Mail Server". المجال (مجال البريد) هو وحدة الإدارة الأساسية لخادم البريد الإلكتروني. تعتمد خدمة البريد الإلكتروني على المجال ، وكل صندوق بريد يتوافق مع مستخدم واحد. يجب أن يكون اسم مجال خادم البريد هو اسم مجال DNS مسجل ويجب أن يتطابق مع سجل MX (تبديل البريد). يتم استخدام DNS لحل أسماء النطاق وأسماء المضيف إلى عناوين IP. يشير سجل MX إلى سجل مضيف Mail Server لاسم المجال ، وهو مكرس لخدمات البريد.
البريد الإلكتروني برنامج العميل
يعد برنامج عميل البريد الإلكتروني مسؤولاً عن التواصل مع خادم البريد الإلكتروني ، والذي يتم استخدامه بشكل أساسي لمساعدة المستخدمين على إرسال رسائل بريد إلكتروني إلى خادم SMTP وخادم بريد POP3/IMAP لقراءة البريد الإلكتروني للمستخدم. عادةً ما يدمج برنامج عميل البريد الإلكتروني كتابة رسائل البريد الإلكتروني وإرسالها واستلامها.
بريد إلكتروني
يمكن بدء عناوين بريد إلكتروني متعددة أعلى كل خادم بريد إلكتروني ، والمعروف أيضًا باسم عناوين البريد الإلكتروني. يشبه العنوان البريدي للحياة الواقعية من خلاله يقبل المستخدمون رسائل البريد الإلكتروني وإرسالها من الآخرين.
يتطلب الحصول على بريد إلكتروني التقديم على خادم البريد الإلكتروني. لكي تكون دقيقًا ، فإن البريد الإلكتروني هو في الواقع حساب يطبقه المستخدم على خادم البريد الإلكتروني. يحتفظ خادم البريد بالبريد المستلم في مساحة صندوق البريد المخصصة لحساب ما ، ويقوم المستخدم بتسجيل الدخول إلى خادم البريد من خلال اسم المستخدم وكلمة المرور التي يطلبها لعرض رسائل البريد الإلكتروني التي تم استلامها بواسطة العنوان.
عملية نقل البريد الإلكتروني
نظام البريد الإلكتروني في وضع العميل/الخادم. يتطلب تسليم البريد الإلكتروني الوحدات النمطية الثلاثة التالية التالية:
UA (وكيل مستخدم البريد ، وكيل مستخدم البريد): يتعامل المستخدم مع خادم البريد الإلكتروني من خلاله. MUA هو في الواقع برنامج عميل البريد.
MTA (وكيل نقل البريد ، وكيل نقل البريد): إنه مسؤول بشكل أساسي عن معالجة جميع الرسائل التي يتم استلامها وإرسالها ، وتوفير خدمات توصيل البريد إلى MUA أو MTA ، وتلقي رسائل رسائل ترسلها MTAs الأخرى.
MDA (وكيل توصيل البريد ، وكيل توصيل البريد): إنه مسؤول عن التسليم المحلي للبريد. عندما تقرر MTA إرسال بريد إلكتروني معين إلى المستخدم المحلي ، تقوم MTA بتسليم البريد الإلكتروني إلى برنامج MDA للتوزيع ، أي أنه يتم تسليمه إلى المستخدم.
عملية الإرسال المحددة هي كما يلي:
1. يستخدم المرسل MUA لإرسال البريد الإلكتروني إلى MTA.
2. بعد تلقي البريد الإلكتروني ، تحدد MTA ما إذا كان المستلم هو حساب محلي. إذا كان حسابًا محليًا ، فسيتم تسليمه إلى MDA إلى عنوان البريد الإلكتروني للحساب ، وأكمل عملية الإرسال وتخطي الخطوة 5. إذا لم يكن الأمر كذلك ، قم بالتنفيذ الخطوة التالية.
3. تقرر MTA كيفية إعادة توجيه رسائل البريد الإلكتروني بناءً على إعدادات إعادة توجيه ترحيل البريد الإلكتروني الخاصة بها.
4. MTA من الغرض النهائي سوف تسلم MDA إلى معالجته ، وسيقوم MDA بتسليم البريد الإلكتروني إلى عنوان البريد الإلكتروني للمستلم.
5. يستخدم المستلم MUA للاتصال بالخادم حيث يوجد عنوان البريد الإلكتروني من خلال بروتوكول POP/IMAP ، ويطلب التحقق مما إذا كانت هناك رسائل بريد إلكتروني في صندوق الوارد الخاص به. إذا كان هناك بريد إلكتروني ، فسيتم نقل MUA للمستلم من خلاله.
ملاحظة: يُطلب من خدمة الوصول إلى البريد الإلكتروني أن تكون برنامج Pop أو IMAP Server ، وليس MTA التي تلقيت البريد الإلكتروني. يتم فصل أدوار الاثنين.
بروتوكول نقل البريد
يستخدم نقل خدمة البريد الإلكتروني بشكل أساسي بروتوكولات الشبكة الثلاثة التالية
SMTP (بروتوكول نقل البريد البسيط)
SMTP هو بروتوكول نقل البريد البسيط. منفذ TCP القياسي هو 25. يرسل MUA البريد الإلكتروني إلى MTA ، ويرسل MTA البريد الإلكتروني إلى MTA التالي ، وكلاهما يحتاج إلى استخدام SMTP. الهدف من SMTP هو تسليم البريد بشكل موثوق وكفاءة ، وهو مستقل عن النظام الفرعي للتسليم ويتطلب فقط قناة واحدة تضمن نقل ترتيب وحدات البيانات.
SMTP هو بروتوكول "اتجاه واحد" لا يمكن جمعه من قبل المستخدمين من خوادم البريد الأخرى. يعتمد نفسه وضع العميل/الخادم. عملية SMTP المسؤولة عن إرسال البريد هي عميل SMTP ، وعملية SMTP المسؤولة عن استلام البريد هي خادم SMTP. تتضمن عملية اتصال SMTP الكاملة بشكل أساسي ثلاث عمليات: إنشاء اتصال ، وتقديم البريد ، وإصدار اتصال.
إنشاء اتصال: أولاً ، يرسل المرسل البريد الإلكتروني إلى ذاكرة التخزين المؤقت للبريد الإلكتروني. يقوم عميل SMTP بمسح ذاكرة التخزين المؤقت للبريد الإلكتروني بانتظام. بمجرد وجود رسالة ، تقوم بإنشاء اتصال TCP مع خادم SMTP ، ثم يرسل أمر HRLLO لإرفاق اسم مضيف المرسل.
البريد الإلكتروني للتسليم: يستخدم عميل SMTP أمر البريد للبدء في إرسال البريد الإلكتروني ، والذي يوفر عنوان المرسل ؛ ثم ينفذ الأمر RCPT ويوفر عنوان المستلم ؛ أخيرًا ينفذ أمر البيانات لنقل محتوى البريد الإلكتروني.
حرر الاتصال: بعد تسليم البريد ، يرسل عميل SMTP أمر OUT لطلب إغلاق اتصال TCP.
البوب (اتفاقية مكتب البريد)
البوب هو بروتوكول مكتب البريد. منفذ TCP القياسي هو 110. يستخدم بشكل رئيسي لتلقي رسائل البريد الإلكتروني. يتصل MUA بجهاز البريد الوارد الخاص بـ MTA عبر بروتوكول POP لقراءة أو تنزيل بريد المستخدم في صندوق الوارد.
بروتوكول البوب الذي يستخدم حاليًا هو pop3. يستخدم POP3 TCP كبروتوكول الإرسال.
IMAP (بروتوكول الوصول إلى معلومات الإنترنت)
IMAP هو بروتوكول وصول رسائل الإنترنت. منفذ TCP القياسي هو 143 ، والذي يسمح أيضًا لـ MUA بجمع البريد من MTA. إصدار بروتوكول IMAP الكرة المستهدف هو IMAP4.
يمكن استخدام كل من POP و IMAP لجمع رسائل البريد الإلكتروني ، سواء في وضع العميل/الخادم. الفرق الرئيسي بين الاثنين هو أنهم يسترجعون رسائل البريد الإلكتروني بشكل مختلف. عند استخدام POP ، يوجد البريد الإلكتروني على الخادم. بمجرد تلقي البريد الإلكتروني ، يتم تنزيل البريد الإلكتروني من الخادم إلى كمبيوتر المستخدم. يمكن أن يفهم IMAP الموقف الذي يتم فيه تخزين البريد على الخادم ، ولا يزال البريد الذي تم تنزيله عالقًا في الخادم لتسهيل أرشفة البريد والمشاركة.
جافاميل
1. مقدمة إلى Javamail
يوفر Javamail ، كما يوحي الاسم ، واجهة برمجة للمطورين لمعالجة رسائل البريد الإلكتروني. إنها واجهة برمجة تطبيقات صدرها Sun للتعامل مع البريد الإلكتروني. يمكن أن يؤدي بشكل مريح بعض عمليات نقل البريد شائعة الاستخدام. Javamail API هي حزمة تطوير قياسية تقدمها Sun لتسهيل مطوري Java لتنفيذ وظائف إرسال البريد الإلكتروني واستلامها في التطبيقات. وهو يدعم بعض بروتوكولات البريد الإلكتروني الشائعة الاستخدام ، مثل SMTP و POP3 و IMAP. عندما يستخدم المطورون واجهة برمجة تطبيقات Javamail لكتابة برنامج معالجة البريد الإلكتروني ، لا يحتاجون إلى النظر في تفاصيل تنفيذ بروتوكول البريد الأساسي ، ما عليك سوى الاتصال بفئة API المقابلة في حزمة تطوير Javamail.
2. بيئة تنمية جافاميل
قبل تطوير Javamail ، يجب عليك استيراد حزمة JAR المقابلة. يمكن تنزيل حزمة JAR من الموقع الرسمي لـ Oracle: http://www.oracle.com/technetwork/java/javamail/index.html.
بعد اكتمال التنزيل ، يمكنك الحصول على الدليل التالي:
من بينها ، mail.jar: هي حزمة التطوير الأساسية التي يجب استخدامها لتطوير برامج Javamail.
LIB Subdirectory: يحتوي هذا الدليل على 5 حزم تطوير بريد إلكتروني مستقلة: SMTP.JAR ، POP3.JAR ، IMAP.JAR و MAILAPI.JAR. ملفات JAR الخمسة هذه عبارة عن عبوة مصنفة لملفات mail.jar. من بينها ، يقوم MailApi.jar بتغليف فئة API التي تنشئ محتوى البريد ويدعو إرسال البريد وإرسالها إلى المطورين العاديين ، في حين أن ملفات JAR الثلاثة الأخرى تغلف برنامج تنفيذ الخدمة بأسمائهم المقابلة للبروتوكول. . عند تجميع برامج البريد Java ، تحتاج فقط إلى ملف mailapi.jar ، ولكن في وقت التشغيل ، يجب أن يكون لديك برنامج تنفيذ الخدمة الأساسي لبروتوكول البريد المقابل. إذا كنت بحاجة فقط إلى استخدام وظيفة إرسال البريد في التطبيق ، فيمكنك فقط تثبيت الملفتين smtp.jar و mailapi.jar. إذا كنت بحاجة فقط إلى استخدام وظيفة استلام البريد ، فيمكنك فقط تثبيت ملف اثنين من jar pop3.jar و imap.jar و mailapi.jar دون تثبيت ملف mail.jar بالكامل.
دليل LIB كما يلي:
3. مقدمة إلى Javamail API
عادةً ما يتم تقسيم Javamail API إلى الفئات الثلاث التالية وفقًا لوظائفها:
1. إنشاء وحجلية API Content Content API. فئة الرسائل هي واجهة برمجة التطبيقات الأساسية لإنشاء وتحليل رسائل البريد الإلكتروني. يمثل كائن مثيله بريدًا إلكترونيًا.
2. API لإرسال رسائل البريد الإلكتروني. فئة النقل هي فئة API الأساسية لإرسال الرسائل. يمثل كائن المثيل الخاص به كائن إرسال البريد الذي ينفذ بروتوكول إرسال بريد معين ، مثل بروتوكول SMTP.
3. API لتلقي رسائل البريد الإلكتروني. فئة المتجر هي فئة API الأساسية لتلقي البريد. يمثل كائن المثيل الخاص به كائن تلقي البريد الإلكتروني الذي ينفذ بروتوكول بريد إلكتروني معين ، مثل بروتوكول POP3.
سير عمل Javamail كما يلي:
في سير العمل هذا ، ترتبط الكائنات الأربعة والرسالة والجلسة والنقل والمتجر ارتباطًا وثيقًا بإرسال واستقبال بريد إلكتروني. نحتاج فقط إلى فهم وظائف ووظائف واجهات برمجة التطبيقات الأساسية الأربعة هذه ، ومعرفة علاقات العمل الخاصة بهم وسير عمل البريد الإلكتروني ، ويمكننا بسهولة كتابة Javamail. بالنسبة لفصول Javamail المساعدة ، عندما نحتاج إليها ، يمكننا متابعة القرائن والتحقق من المستندات لحل المشكلة.
مقدمة في واجهة برمجة التطبيقات الأساسية:
رسالة
فئة الرسائل هي واجهة برمجة التطبيقات الأساسية لإنشاء وتحليل البريد ، ويمثل كائن مثيلها بريدًا إلكترونيًا. عندما يرسل العميل بريدًا إلكترونيًا ، استخدم أولاً واجهة برمجة تطبيقات البريد الإلكتروني ، وقم بتغليف بيانات البريد الإلكتروني التي تم إنشاؤها في كائن الرسالة ، ثم قم بتمرير هذا الكائن إلى البريد الإلكتروني لإرسال واجهة برمجة تطبيقات لإرساله. عندما يتلقى العميل البريد الإلكتروني ، يقوم البريد الإلكتروني الذي يتلقى API بتثبيت بيانات أسعار الزيت المستلمة في كائن مثيل الرسالة ، ويستخدم العميل واجهة برمجة تطبيقات البريد الإلكتروني لتحليل بيانات البريد الإلكتروني المستلمة من هذا الكائن.
حصة
يتم استخدام فئة الجلسة لتحديد معلومات البيئة التي يتطلبها التطبيق بأكمله ، وكذلك لجمع معلومات الجلسة للعميل لإنشاء اتصال شبكة مع خادم البريد ، مثل اسم المضيف ورقم المنفذ وبروتوكول إرسال البريد واستلامه المستخدم. يقوم كائن الجلسة بإنشاء كائنات المتجر والنقل لإرسال واستقبال الرسائل بناءً على معلومات الجلسة هذه ، ويوفر دعمًا للمعلومات للعميل لإنشاء كائنات الرسائل.
ينقل
فئة النقل هي فئة API الأساسية لإرسال الرسائل. يمثل كائن المثيل الخاص به كائن إرسال البريد الذي ينفذ بروتوكول إرسال بريد معين ، مثل بروتوكول SMTP. بعد أن يقوم برنامج العميل بإنشاء كائن رسالة ، يحتاج فقط إلى استخدام API إرسال البريد الإلكتروني للحصول على كائن النقل ، ثم تمرير كائن الرسالة إلى كائن النقل ، واستدعاء طريقة الإرسال الخاصة به لإرسال البريد الإلكتروني إلى خادم SMTP المحدد.
محل
فئة المتجر هي فئة API الأساسية لتلقي البريد. يمثل كائن المثيل الخاص به كائن تلقي البريد الذي ينفذ بروتوكول تلقي بريد معين ، مثل بروتوكولات POP3 و IMAP. عندما يستقبل برنامج العميل البريد ، يحتاج فقط إلى استخدام واجهة برمجة تطبيقات استلام البريد للحصول على كائن المتجر ، ثم اتصل بطريقة استلام كائن المتجر للحصول على بيانات البريد من خادم POP3 المحدد وتغليف بيانات البريد في كائن الرسالة الذي يمثل البريد.
رابعا. أمثلة
الفئة العامة javamail_01 {public static void main (string [] args) يلقي الاستثناء {properties props = new properties () ؛ props.setProperty ("mail.smtp.auth" ، "true") ؛ props.setProperty ("mail.transport.protocol" ، "smtp") ؛ جلسة الجلسة = session.getInstance (الدعائم) ؛ session.setDebug (true) ؛ رسالة msg = new mimemessage (جلسة) ؛ msg.setsubject ("هذا برنامج اختبار ...") ؛ msg.settext ("مرحبا! هذا هو أول برنامج لي جافاميل ---- تشن مينغ") ؛ msg.setfrom (New InternetAddress ("******@163.com")) ؛ النقل النقل = session.getTransport () ؛ Transport.connect ("SMTP.163.com" ، 25 ، "*********" ، "************") ؛ Transport.SendMessage (MSG ، عنوان جديد [] {new InternetAddress ("[email protected]")}) ؛ System.out.println ("البريد الإلكتروني المرسل بنجاح ...") ؛ transport.close () ؛ }}