على الرغم من أنه من السهل جدًا استخدام JSP لإرسال رسائل البريد الإلكتروني، إلا أنه يتطلب تثبيت JavaMail API وJavaBean Activation Framework.
قم بتنزيل أحدث إصدار من JavaMail هنا.
قم بتنزيل أحدث إصدار من JavaBeans Activation Framework (JAF) هنا.
قم بتنزيل هذه الملفات وفك ضغطها في الدليل الجذر، وسترى سلسلة من حزم الجرة. قم بإضافة حزمة mail.jar وحزمةactivation.jar إلى متغير CLASSPATH.
يوضح هذا المثال كيفية إرسال بريد إلكتروني بسيط من جهازك. يفترض أن المضيف المحلي متصل بالشبكة ولديه القدرة على إرسال بريد إلكتروني. وفي الوقت نفسه، يرجى التأكد مرة أخرى من إضافة حزمة mail.jar وحزمةactivation.jar إلى متغير CLASSPATH.
<%@page import="java.io.*,java.util.*,javax.mail.*"%><%@page import="javax.mail.internet.*,javax.activation.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %><% String result; // سلسلة البريد الإلكتروني للمستلم إلى = "[email protected]"; // إرسال سلسلة البريد الإلكتروني للمرسل من = "[email protected]"; // افترض أنك ترسل بريدًا إلكترونيًا من مضيف محلي String host = "localhost"; // احصل على كائن خصائص النظام Properties Properties = System.getProperties(); ("mail.smtp.host"، host)؛ // احصل على كائن الجلسة الافتراضي. جلسة mailSession = Session.getDefaultInstance(properties); حاول { // إنشاء كائن MimeMessage الافتراضي. MimeMessage message = new MimeMessage(mailSession); // تعيين حقل الرأس للرأس من: message.setFrom(new InternetAddress(from)); // تعيين حقل الرأس للرأس إلى: message.addRecipient(Message.RecipientType. TO، عنوان الإنترنت الجديد (إلى))؛ // تعيين الموضوع: حقل الرأس message.setSubject("هذا هو سطر الموضوع!"); الآن قم بتعيين الرسالة الفعلية message.setText("هذه رسالة فعلية"); // أرسل رسالة Transport.send(message); (); result = "خطأ: غير قادر على إرسال الرسالة..."; } %><html><head><title>إرسال البريد الإلكتروني باستخدام JSP</title></head><body><center><h1>إرسال بريد إلكتروني باستخدام JSP</h1></center><p align="center"><% out.println("النتيجة: " + النتيجة + "n"); %></p></body></html>
الآن قم بزيارة http://localhost:8080/SendEmail.jsp، وسوف يتم إرسال بريد إلكتروني إلى [email protected] ويعرض النتائج التالية:
إرسال البريد الإلكتروني باستخدام JSPResult: تم إرسال الرسالة بنجاح....إذا كنت تريد إرسال بريد إلكتروني إلى عدة أشخاص، فيمكن استخدام الطرق المذكورة أدناه لتحديد عناوين بريد إلكتروني متعددة:
إضافة باطلة (نوع Message.RecipientType، عناوين العنوان []) تطرح MessagingExceptionيتم وصف المعلمات على النحو التالي:
النوع: سيتم تعيين هذه القيمة على TO أو CC أو BCC. CC تعني نسخة، BCC تعني نسخة سوداء، ويتم استخدام TO في البرنامج النموذجي.
العناوين: هذه مجموعة من عناوين البريد الإلكتروني عند تحديد عنوان بريد إلكتروني، يجب عليك استخدام طريقة InternetAddress().
يرسل هذا المثال بريدًا إلكترونيًا بسيطًا بتنسيق HTML. يفترض أن المضيف المحلي الخاص بك متصل بالشبكة ولديه القدرة على إرسال البريد. وفي الوقت نفسه، يرجى التأكد مرة أخرى من إضافة حزمة mail.jar وحزمةactivation.jar إلى متغير CLASSPATH.
هذا المثال مشابه جدًا للمثال السابق، ولكن في هذا المثال نستخدم طريقة setContent() ونمرر "text/html" كمعلمة ثانية للإشارة إلى أن الرسالة تحتوي على محتوى HTML.
<%@page import="java.io.*,java.util.*,javax.mail.*"%><%@page import="javax.mail.internet.*,javax.activation.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %><% String result; // سلسلة البريد الإلكتروني للمستلم إلى = "[email protected]"; // إرسال سلسلة البريد الإلكتروني للمرسل من = "[email protected]"; // افترض أنك ترسل بريدًا إلكترونيًا من مضيف محلي String host = "localhost"; // احصل على كائن خصائص النظام Properties Properties = System.getProperties(); ("mail.smtp.host"، host)؛ // احصل على كائن الجلسة الافتراضي. جلسة mailSession = Session.getDefaultInstance(properties); حاول { // إنشاء كائن MimeMessage الافتراضي. MimeMessage message = new MimeMessage(mailSession); // تعيين حقل الرأس للرأس من: message.setFrom(new InternetAddress(from)); // تعيين حقل الرأس للرأس إلى: message.addRecipient(Message.RecipientType. TO، عنوان الإنترنت الجديد (إلى))؛ // تعيين الموضوع: حقل الرأس message.setSubject("هذا هو سطر الموضوع!"); تعيين رسالة HTML message.setContent("<h1>هذه رسالة فعلية</h1>"،text/html" ); // إرسال رسالة Transport.send(message); }catch (MessagingException mex) { mex.printStackTrace(); النتيجة = "خطأ: غير قادر على إرسال رسالة..."; }%><html><head><title>أرسل بريدًا إلكترونيًا بتنسيق HTML JSP</title></head><body><center><h1>إرسال بريد إلكتروني باستخدام JSP</h1></center><p align="center"><% out.println("النتيجة: " + النتيجة + "n"); %></p></body></html>
يمكنك الآن محاولة استخدام ملف JSP أعلاه لإرسال رسالة HTML إلى البريد الإلكتروني.
يوضح لنا هذا المثال كيفية إرسال بريد إلكتروني يحتوي على مرفق.
<%@page import="java.io.*,java.util.*,javax.mail.*"%><%@page import="javax.mail.internet.*,javax.activation.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %><% String result; // سلسلة البريد الإلكتروني للمستلم إلى = "[email protected]"; // إرسال سلسلة البريد الإلكتروني للمرسل من = "[email protected]"; // افترض أنك ترسل بريدًا إلكترونيًا من مضيف محلي String host = "localhost"; // احصل على كائن خصائص النظام Properties Properties = System.getProperties(); ("mail.smtp.host"، host)؛ // احصل على كائن الجلسة الافتراضي. جلسة mailSession = Session.getDefaultInstance(properties); حاول { // إنشاء كائن MimeMessage الافتراضي. MimeMessage message = new MimeMessage(mailSession); // تعيين حقل الرأس للرأس من: message.setFrom(new InternetAddress(from)); // تعيين حقل الرأس للرأس إلى: message.addRecipient(Message.RecipientType. TO، new InternetAddress(to)); // تعيين الموضوع: حقل الرأس message.setSubject("هذا هو سطر الموضوع!"); // إنشاء جزء الرسالة BodyPart messageBodyPart = new MimeBodyPart(); // املأ الرسالة messageBodyPart.setText("هذا نص الرسالة"); // إنشاء رسالة وسائط متعددة Multipart = new MimeMultipart(); messageBodyPart); // الجزء المرفق messageBodyPart = new MimeBodyPart(); new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); // إرسال الرسالة كاملة message.setContent(multipart ); .send (message); String title = "إرسال بريد إلكتروني"; النتيجة = "تم إرسال الرسالة بنجاح..."; (MessagingException mex) { mex.printStackTrace(); result = "خطأ: غير قادر على إرسال رسالة..."; %><html><head><title>إرسال مرفق بالبريد الإلكتروني باستخدام JSP</title></head ><body><center><h1>إرسال مرفق بالبريد الإلكتروني باستخدام JSP</h1></center><p align="center"><% out.println("النتيجة: " + result + "n"); %></p></body></html>
إذا كان خادم البريد يتطلب اسم مستخدم وكلمة مرور لمصادقة المستخدم، فيمكن تعيينهما على النحو التالي:
props.setProperty("mail.user", "myuser");استخدم نموذج HTML لتلقي بريد إلكتروني والحصول على جميع معلومات البريد الإلكتروني من خلال كائن الطلب:
String to = request.getParameter("to");String from = request.getParameter("from");String subject = request.getParameter("subject");String messageText = request.getParameter("body");بمجرد حصولك على المعلومات المذكورة أعلاه، يمكنك إرسال البريد الإلكتروني باستخدام المثال المذكور سابقًا.