- إرسال البريد الإلكتروني باستخدام JavaMail API
- خطوات إرسال البريد الإلكتروني باستخدام JavaMail API
- احصل على كائن الجلسة
- قم بتأليف الرسالة
- أرسل الرسالة
- مثال بسيط لإرسال البريد الإلكتروني باستخدام JavaMail API
- مثال على إرسال البريد الإلكتروني باستخدام JavaMail API من خلال خادم SMTP الذي يوفره الموفر المضيف
هناك طرق مختلفة لإرسال البريد الإلكتروني باستخدام JavaMail API. ولهذا الغرض، يجب أن يكون لديك خادم SMTP مسؤول عن إرسال الرسائل.
يمكنك استخدام أحد الأساليب التالية للحصول على خادم SMTP:
- تثبيت واستخدام أي خادم SMTP مثل خادم Postcast، وخادم Apache James، وخادم cmail وما إلى ذلك (أو)
- استخدم خادم SMTP الذي يوفره موفر المضيف، على سبيل المثال. خادم SMTP الخاص بي هو mail.javatpoint.com (أو)
- استخدم خادم SMTP الذي توفره شركات أخرى، على سبيل المثال. جوجل الخ
سنتعلم هنا ثلاثة طرق لإرسال البريد الإلكتروني باستخدام javamail API. ولكن يجب أن نتعلم الخطوات الأساسية لإرسال البريد الإلكتروني من تطبيق جافا.
خطوات إرسال البريد الإلكتروني باستخدام JavaMail API
هناك ثلاث خطوات التالية لإرسال البريد الإلكتروني باستخدام JavaMail. وهم على النحو التالي:
احصل على كائن الجلسة | يقوم بتخزين جميع معلومات المضيف مثل اسم المضيف واسم المستخدم وكلمة المرور وما إلى ذلك.
قم بتأليف الرسالة |
أرسل الرسالة |
1) الحصول على كائن الجلسة
ال javax.mail.فئة الجلسة يوفر طريقتين للحصول على كائن الجلسة، طريقة Session.getDefaultInstance() وطريقة Session.getInstance(). يمكنك استخدام أي طريقة للحصول على كائن الجلسة.
طريقة فئة الجلسة
لا. | طريقة | وصف |
1 | getDefaultInstance الجلسة الثابتة العامة (دعائم الخصائص) | إرجاع الجلسة الافتراضية. |
2 | getDefaultInstance الجلسة الثابتة العامة (خصائص الدعائم، مصادقة المصادقة) | إرجاع الجلسة الافتراضية. |
3 | getInstance للجلسة الثابتة العامة (دعائم الخصائص) | إرجاع الجلسة الجديدة. |
4 | getInstance للجلسة الثابتة العامة (دعائم الخصائص، مصادقة المصادقة) | إرجاع الجلسة الجديدة. |
مثال على طريقة getDefaultInstance()
Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null);
مثال على طريقة getInstance()
Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null);
2) قم بتأليف الرسالة
توفر فئة javax.mail.Message طرقًا لإنشاء الرسالة. لكنها فئة مجردة، لذا يتم استخدام فئتها الفرعية javax.mail.internet.MimeMessage في الغالب. |
لإنشاء الرسالة، تحتاج إلى تمرير كائن الجلسة في مُنشئ فئة MimeMessage. على سبيل المثال: |
MimeMessage message=new MimeMessage(session);
الآن تم إنشاء كائن الرسالة ولكن لتخزين المعلومات في هذا الكائن، توفر فئة MimeMessage العديد من الطرق. دعونا نرى الطرق التي توفرها فئة MimeMessage: |
الطرق الشائعة الاستخدام لفئة MimeMessage
لا. | طريقة | وصف |
1 | مجموعة الفراغ العام من (عنوان العنوان) | يستخدم لتعيين الحقل من الرأس. |
2 | addRecipient العام (نوع الرسالة.RecipientType، عنوان العنوان) | يستخدم لإضافة العنوان المحدد إلى نوع المستلم. |
3 | addRecipients باطلة عامة (نوع الرسالة. نوع المستلم، عناوين العنوان []) | يستخدم لإضافة العناوين المحددة إلى نوع المستلم. |
4 | مجموعة الفراغ العام (موضوع السلسلة) | يستخدم لتعيين حقل رأس الموضوع. |
5 | مجموعة النص الفارغة العامة (رسالة نصية سلسلة) | يُستخدم لتعيين النص كمحتوى الرسالة باستخدام نوع MIME نص/عادي. |
6 | مجموعة الفراغات العامة (رسالة الكائن، نوع محتوى السلسلة) | يستخدم لتعيين المحتوى كمحتوى الرسالة باستخدام نوع MIME معين. |
مثال لتكوين الرسالة:
MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress('[email protected]')); message.addRecipient(Message.RecipientType.To, new InternetAddress('[email protected]')); message.setHeader('Hi, everyone'); message.setText('Hi, This mail is to inform you...');
3) أرسل الرسالة
توفر فئة javax.mail.Transport طريقة لإرسال الرسالة. |
الطرق الشائعة الاستخدام لفئة النقل
لا. | طريقة | وصف |
1 | إرسال الفراغ العام الثابت (رسالة رسالة) | يستخدم إرسال الرسالة. |
2 | إرسال الفراغ العام الثابت (رسالة رسالة، العنوان [] العنوان) | يستخدم لإرسال الرسالة إلى العناوين المحددة. |
مثال لإرسال الرسالة:
Transport.send(message);
مثال بسيط لإرسال البريد الإلكتروني في جافا
في هذا المثال، سنتعلم كيفية إرسال البريد الإلكتروني عبر خادم SMTP المثبت على الجهاز، على سبيل المثال. خادم Postcast، خادم Apache James، خادم Cmail وما إلى ذلك. إذا كنت تريد إرسال بريد إلكتروني باستخدام خادم SMTP الذي يوفره موفر المضيف، فراجع المثال التالي. |
لإرسال البريد الإلكتروني باستخدام JavaMail API، تحتاج إلى تحميل ملفي jar:قم بتنزيل ملفات jar هذه أو انتقل إلى موقع Oracle لتنزيل أحدث إصدار. |
import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail { public static void main(String [] args){ String to = '[email protected]';//change accordingly String from = '[email protected]';change accordingly String host = 'localhost';//or IP address //Get the session object Properties properties = System.getProperties(); properties.setProperty('mail.smtp.host', host); Session session = Session.getDefaultInstance(properties); //compose the message try{ MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('Ping'); message.setText('Hello, this is example of sending email '); // Send message Transport.send(message); System.out.println('message sent successfully....'); }catch (MessagingException mex) {mex.printStackTrace();} } }
قم بتنزيل هذا المثال لإرسال البريد الإلكترونيفي هذا المثال، سنتعلم كيفية إرسال البريد الإلكتروني عبر خادم SMTP المثبت على الجهاز، على سبيل المثال. خادم Postcast، خادم Apache James، خادم Cmail وما إلى ذلك. إذا كنت تريد إرسال بريد إلكتروني باستخدام خادم SMTP الذي يوفره موفر المضيف، فراجع المثال التالي.
لتشغيل هذا المثال، تحتاج إلى تحميل ملفين jar. هناك 4 طرق لتحميل ملف الجرة. إحدى الطرق هي تعيين مسار الفصل. دعونا نرى كيفية تشغيل هذا المثال:
قم بتحميل ملف الجرة | ج:> set classpath=mail.jar;activation.jar;.; |
تجميع الملف المصدر | ج:> جافا SendEmail.java |
التي تديرها | ج:> جافا إرسال البريد الإلكتروني |
مثال على إرسال بريد إلكتروني بلغة Java من خلال خادم SMTP المقدم من الموفر المضيف
إذا كنت تستخدم خادم SMTP الذي يوفره موفر المضيف، على سبيل المثال. mail.javatpoint.com، فأنت بحاجة إلى مصادقة اسم المستخدم وكلمة المرور. يتم استخدام فئة javax.mail.PasswordAuthentication لمصادقة كلمة المرور. |
إذا كنت ترسل البريد الإلكتروني باستخدام JavaMail API، فقم بتحميل ملفي jar:قم بتنزيل ملفات jar هذه أو انتقل إلى موقع Oracle لتنزيل أحدث إصدار. |
import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class SendMailBySite { public static void main(String[] args) { String host='mail.javatpoint.com'; final String user='[email protected]';//change accordingly final String password='xxxxx';//change accordingly String to='[email protected]';//change accordingly //Get the session object Properties props = new Properties(); props.put('mail.smtp.host',host); props.put('mail.smtp.auth', 'true'); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user,password); } }); //Compose the message try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(user)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('javatpoint'); message.setText('This is simple program of sending email using JavaMail API'); //send the message Transport.send(message); System.out.println('message sent successfully...'); } catch (MessagingException e) {e.printStackTrace();} } }
قم بتنزيل هذا المثال لإرسال البريد الإلكترونيكما ترون في المثال أعلاه، يجب مصادقة معرف المستخدم وكلمة المرور. وكما يوضح هذا البرنامج، يمكنك إرسال البريد الإلكتروني بسهولة. قم بتغيير اسم المستخدم وكلمة المرور وفقًا لذلك. دعونا نرى كيفية تشغيله مرة أخرى بتقنية بسيطة:
قم بتحميل ملف الجرة | ج:> set classpath=mail.jar;activation.jar;.; |
تجميع الملف المصدر | ج:> javac SendMailBySite.java |
التي تديرها | ج:> جافا SendMailBySite |