English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

إرسال بريد إلكتروني في JSP

بالرغم من أن إضافة وظيفة إرسال البريد الإلكتروني باستخدام JSP بسيطة، إلا أن هناك حاجة إلى API JavaMail، بالإضافة إلى تثبيت JavaBean Activation Framework.

  • يمكنك تنزيل أحدث إصدار من Java من JavaMail، افتح صفحة اليمين لديها تنزيلات الرابط، انقر عليه للتنزيل.

  • يمكنك تنزيل أحدث إصدار من Java من JAF (الإصدار 1.1.1).

تنزيل وتفريغ هذه الملفات، في مجلد الجذر، ستجد سلسلة من مكتبات jar. أضف مكتبات mail.jar و activation.jar إلى متغير CLASSPATH.

إرسال بريد إلكتروني بسيط

هذا المثال يظهر كيفية إرسال بريد إلكتروني بسيط من جهازك. يفترض أن localhost متصل بالشبكة وأن لديه القدرة على إرسال بريد إلكتروني. في نفس الوقت، تأكد مرة أخرى من أن مكتبات 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 ١٠٢١ ٤٠٥ ٢١ ٠٢١٠٢١٠٢١٠
   // ١٠٢١ ٤٠٥٢١٠ ٢١٠٢١٠ ٤٠٥٢١٠
   String ١٠٢١ ٤٠٥ ٢١ ٠٢١٠٢١٠٢١٠ ٢١٠٢١٠ ٤٠٥٢١٠
   // ١٠٢١ ٤٠٥٢١٠ ٢١٠٢١٠ ٤٠٥٢١٠
   String ١٠٢١ ٤٠٥ ٢١ ٠٢١٠٢١٠٢١٠ ١٠٢١٠٢١٠
   // ١٠٢١ ٤٠٥٢١٠ ٢١٠٢١٠ ٤٠٥٢١٠
   String ١٠٢١ ٤٠٥ ٢١ ٠٢١٠٢١٠٢١٠ ٢١٠٢١٠٢١٠
   // ١٠٢١ ٤٠٥٢١٠ ٤٠٥٢١٠٢١٠
   Properties ١٠٢١ ٤٠٥ ٢١ ٤٠٥٢١٠ ١٠٢١٠
   // ١٠٢١ ٤٠٥٢١٠ ٤٠٥٢١٠
   properties.setProperty("mail.smtp.host", ٢١٠٢١٠);
   // ١٠٢١ ٤٠٥٢١٠ ١٠٢١ ٤٠٥٢١٠
   Session ١٠٢١ ٤٠٥ ٢١ ٤٠٥٢١٠ ١٠٢١ ٤٠٥ ٭٠٢١٠٢١٠
   try{
      // ١٠٢١ ٤٠٥٢١٠ ١٠٢١ ٢١١٠ ٤٠٥٢١٠
      MimeMessage ١٠٢١ ٤٠٥ ٢١ ٤٠٥٢١٠ ١٠٢١ ٤٠٥ ٭٠٢١٠٢١٠
      // 设٢١٠ ١٠٢١: ١٠٢١ ٤٠٥٢١٠ ٤٠٥٢١٠٢
      message.setFrom(new InternetAddress(from));
      // إعداد عنوان: حقل الرأس
      message.addRecipient(Message.RecipientType.TO,
                               new InternetAddress(to));
      // إعداد عنوان: حقل الرأس
      message.setSubject("هذا هو سطر العنوان!");
      // الآن الإرسال الفعلي للمسجلة
      message.setText("This is actual message");
      // إرسال الرسالة
      Transport.send(message);
      result = "تم إرسال الرسالة بنجاح....";
   }catch (MessagingException mex) {
      mex.printStackTrace();
      result = "خطأ: لا يمكن إرسال الرسالة....";
   }
%>
<html>
<head>
<title>إرسال بريد إلكتروني باستخدام JSP</title>
</head>
<body>
<center>

Send Email using JSP

</center> <p align="center"> <%     out.println("Result: " + result + "\n"); %> </p> </body> </html>

الآن اذهب إلى http://localhost:8080/SendEmail.jsp، سيتم إرسال بريد إلكتروني إلى [email protected] وسيتم عرض النتيجة التالية:

إرسال بريد إلكتروني باستخدام JSP
Result: Sent message successfully....

إذا كنت ترغب في إرسال البريد الإلكتروني إلى عدة أشخاص، يمكنك استخدام الطريقة المدرجة أدناه لتعيين عدة عناوين بريد إلكتروني:

void addRecipients(Message.RecipientType type, 
                   Address[] addresses)
throws MessagingException

وصف المعلمات كما يلي:

  • type: هذا القيمة ستتم تعيينها إلى TO (المستلم)، CC أو BCC. CC تعني نسخة من (النسخة إلى)، BCC تعني نسخة من دون علم (النسخة السرية إلى). يتم استخدام TO في برنامج المثال.

  • addresses: هذا هو مصفوفة من عناوين البريد الإلكتروني، ويجب استخدام طريقة InternetAddress() عند تحديد عنوان بريد إلكتروني.

إرسال بريد إلكتروني بملف HTML

هذا المثال يرسل بريدًا إلكترونيًا بسيطًا من ملف HTML. يفترض أن localhost متصل بالشبكة وأن لديه القدرة على إرسال البريد الإلكتروني. في نفس الوقت، تأكد مرة أخرى من أن مكتبات 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 ١٠٢١ ٤٠٥ ٢١ ٠٢١٠٢١٠٢١٠
   // ١٠٢١ ٤٠٥٢١٠ ٢١٠٢١٠ ٤٠٥٢١٠
   String ١٠٢١ ٤٠٥ ٢١ ٠٢١٠٢١٠٢١٠ ٢١٠٢١٠ ٤٠٥٢١٠
   // ١٠٢١ ٤٠٥٢١٠ ٢١٠٢١٠ ٤٠٥٢١٠
   String ١٠٢١ ٤٠٥ ٢١ ٠٢١٠٢١٠٢١٠ ١٠٢١٠٢١٠
   // ١٠٢١ ٤٠٥٢١٠ ٢١٠٢١٠ ٤٠٥٢١٠
   String ١٠٢١ ٤٠٥ ٢١ ٠٢١٠٢١٠٢١٠ ٢١٠٢١٠٢١٠
   // ١٠٢١ ٤٠٥٢١٠ ٤٠٥٢١٠٢١٠
   Properties ١٠٢١ ٤٠٥ ٢١ ٤٠٥٢١٠ ١٠٢١٠
   // ١٠٢١ ٤٠٥٢١٠ ٤٠٥٢١٠
   properties.setProperty("mail.smtp.host", ٢١٠٢١٠);
   // ١٠٢١ ٤٠٥٢١٠ ١٠٢١ ٤٠٥٢١٠
   Session ١٠٢١ ٤٠٥ ٢١ ٤٠٥٢١٠ ١٠٢١ ٤٠٥ ٭٠٢١٠٢١٠
   try{
      // ١٠٢١ ٤٠٥٢١٠ ١٠٢١ ٢١١٠ ٤٠٥٢١٠
      MimeMessage ١٠٢١ ٤٠٥ ٢١ ٤٠٥٢١٠ ١٠٢١ ٤٠٥ ٭٠٢١٠٢١٠
      // 设٢١٠ ١٠٢١: ١٠٢١ ٤٠٥٢١٠ ٤٠٥٢١٠٢
      message.setFrom(new InternetAddress(from));
      // إعداد عنوان: حقل الرأس
      message.addRecipient(Message.RecipientType.TO,
                               new InternetAddress(to));
      // إعداد عنوان: حقل الرأس
      message.setSubject("هذا هو سطر العنوان!");
     
      // 设置 HTML消息
      message.setContent("

This is actual message

",                             "text/html" );       // إرسال الرسالة       Transport.send(message);       result = "تم إرسال الرسالة بنجاح....";    }catch (MessagingException mex) {       mex.printStackTrace();       result = "خطأ: لا يمكن إرسال الرسالة....";    } %> <html> <head> Send HTML Email using JSP </head> <body> <center>

Send Email using JSP

</center> <p align="center"> <%     out.println("Result: " + result + "\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 ١٠٢١ ٤٠٥ ٢١ ٠٢١٠٢١٠٢١٠
   // ١٠٢١ ٤٠٥٢١٠ ٢١٠٢١٠ ٤٠٥٢١٠
   String ١٠٢١ ٤٠٥ ٢١ ٠٢١٠٢١٠٢١٠ ٢١٠٢١٠ ٤٠٥٢١٠
   // ١٠٢١ ٤٠٥٢١٠ ٢١٠٢١٠ ٤٠٥٢١٠
   String ١٠٢١ ٤٠٥ ٢١ ٠٢١٠٢١٠٢١٠ ١٠٢١٠٢١٠
   // ١٠٢١ ٤٠٥٢١٠ ٢١٠٢١٠ ٤٠٥٢١٠
   String ١٠٢١ ٤٠٥ ٢١ ٠٢١٠٢١٠٢١٠ ٢١٠٢١٠٢١٠
   // ١٠٢١ ٤٠٥٢١٠ ٤٠٥٢١٠٢١٠
   Properties ١٠٢١ ٤٠٥ ٢١ ٤٠٥٢١٠ ١٠٢١٠
   // ١٠٢١ ٤٠٥٢١٠ ٤٠٥٢١٠
   properties.setProperty("mail.smtp.host", ٢١٠٢١٠);
   // ١٠٢١ ٤٠٥٢١٠ ١٠٢١ ٤٠٥٢١٠
   Session ١٠٢١ ٤٠٥ ٢١ ٤٠٥٢١٠ ١٠٢١ ٤٠٥ ٭٠٢١٠٢١٠
   try{
      // ١٠٢١ ٤٠٥٢١٠ ١٠٢١ ٢١١٠ ٤٠٥٢١٠
      MimeMessage ١٠٢١ ٤٠٥ ٢١ ٤٠٥٢١٠ ١٠٢١ ٤٠٥ ٭٠٢١٠٢١٠
      // 设٢١٠ ١٠٢١: ١٠٢١ ٤٠٥٢١٠ ٤٠٥٢١٠٢
      message.setFrom(new InternetAddress(from));
      // إعداد عنوان: حقل الرأس
      message.addRecipient(Message.RecipientType.TO,
                               new InternetAddress(to));
      // إعداد عنوان: حقل الرأس
      message.setSubject("هذا هو سطر العنوان!");
      // إنشاء جزء الرسالة
      BodyPart messageBodyPart = new MimeBodyPart();
      // ملء الرسالة
      messageBodyPart.setText("هذا نص الرسالة");
      
      // إنشاء رسالة متعددة الوسائط
      Multipart multipart = new MimeMultipart();
      // إعداد جزء النص
      multipart.addBodyPart(messageBodyPart);
      // جزء المرفق
      messageBodyPart = new MimeBodyPart();
      String filename = "file.txt";
      DataSource source = new FileDataSource(filename);
      messageBodyPart.setDataHandler(new DataHandler(source));
      messageBodyPart.setFileName(filename);
      multipart.addBodyPart(messageBodyPart);
      // إرسال رسالة كاملة
      message.setContent(multipart );
      // إرسال الرسالة
      Transport.send(message);
      String title = "إرسال بريد إلكتروني";
      result = "تم إرسال الرسالة بنجاح....";
   }catch (MessagingException mex) {
      mex.printStackTrace();
      result = "خطأ: لا يمكن إرسال الرسالة....";
   }
%>
<html>
<head>
<title>إرسال مرفق بريد إلكتروني باستخدام JSP</title>
</head>
<body>
<center>
<h1>إرسال بريد إلكتروني يحتوي على مرفق باستخدام JSP</h1>
</center>
<p align="center">
<% 
   out.println("Result: " + result + "\n");
%>
</p>
</body>
</html>

جزء التحقق من المستخدم

إذا كان الخادم البريدي يحتاج إلى اسم المستخدم وكلمة المرور للتحقق من هوية المستخدم، يمكنك إعدادها كما يلي:

 properties.setProperty("mail.user", "myuser");
 properties.setProperty("mail.password", "mypwd");

إرسال بريد إلكتروني باستخدام نموذج

استقبال بريد إلكتروني باستخدام نموذج HTML، ثم الحصول على جميع معلومات البريد الإلكتروني عبر عميل الطلب (request).

String to = request.getParameter("to");
String from = request.getParameter("from");
String subject = request.getParameter("subject");
String messageText = request.getParameter("body");

بعد الحصول على هذه المعلومات، يمكنك استخدام الأمثلة المذكورة سابقًا لإرسال البريد الإلكتروني.