Latest web development tutorials

JSP إرسال بريد

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

  • يمكنك تحميل أحدث إصدار من جافا وJavaMail ، فتح الجانب الأيمن من الصفحة هناك رابط التحميل، اضغط عليها لتحميل.
  • يمكنك تحميل أحدث إصدار من جافا (الإصدار 1.1.1) الجاف .

يمكنك أيضا استخدام الموقع لتقديم رابط التحميل:

تحميل وبفك الملفات في الدليل الجذر، وسوف ترى سلسلة من حزمة جرة. وأضاف حزم 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;
   // 收件人的电子邮件
   String to = "[email protected]";

   // 发件人的电子邮件
   String from = "[email protected]";

   // 假设你是从本地主机发送电子邮件
   String host = "localhost";

   // 获取系统属性对象
   Properties properties = System.getProperties();

   // 设置邮件服务器
   properties.setProperty("mail.smtp.host", host);

   // 获取默认的Session对象。
   Session mailSession = Session.getDefaultInstance(properties);

   try{
      // 创建一个默认的MimeMessage对象。
      MimeMessage message = new MimeMessage(mailSession);
      // 设置 From: 头部的header字段
      message.setFrom(new InternetAddress(from));
      // 设置 To: 头部的header字段
      message.addRecipient(Message.RecipientType.TO,
                               new InternetAddress(to));
      // 设置 Subject: header字段
      message.setSubject("This is the Subject Line!");
      // 现在设置的实际消息
      message.setText("This is actual message");
      // 发送消息
      Transport.send(message);
      result = "Sent message successfully....";
   }catch (MessagingException mex) {
      mex.printStackTrace();
      result = "Error: unable to send message....";
   }
%>
<html>
<head>
<title>Send Email using JSP</title>
</head>
<body>
<center>
<h1>Send Email using JSP</h1>
</center>
<p align="center">
<% 
   out.println("Result: " + result + "\n");
%>
</p>
</body>
</html>

الآن زيارة الموقع: // المضيف المحلي: 8080 / SendEmail.jsp، فإنه سيتم إرسال رسالة إلى [email protected] ويعرض النتائج التالية:

Send Email using JSP
Result: Sent message successfully....

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

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

وصف المعلمات على النحو التالي:

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

إرسال رسالة عبر البريد الإلكتروني HTML

يرسل هذا المثال الرسائل HTML بسيطة. ويفترض أن يكون متصلا بالفعل إلى شبكة المضيف المحلي والقدرة على إرسال الرسائل. في غضون ذلك، مرة أخرى تأكيد حزم mail.jar وتمت إضافة حزمة activation.jar لمتغير CLASSPATH.

هذا المثال هي مشابهة جدا للمثال السابق، ولكن في هذه الحالة نستخدم setContent () الأسلوب، "نص / أتش تي أم أل" كمعلمة الثاني تمريرها إليه للإشارة إلى أن الرسالة تحتوي على محتوى 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;
   // 收件人的电子邮件
   String to = "[email protected]";

   // 发件人的电子邮件
   String from = "[email protected]";

   // 假设你是从本地主机发送电子邮件
   String host = "localhost";

   // 获取系统属性对象
   Properties properties = System.getProperties();

   // 设置邮件服务器
   properties.setProperty("mail.smtp.host", host);

   // 获取默认的Session对象。
   Session mailSession = Session.getDefaultInstance(properties);

   try{
      // 创建一个默认的MimeMessage对象。
      MimeMessage message = new MimeMessage(mailSession);
      // 设置 From: 头部的header字段
      message.setFrom(new InternetAddress(from));
      // 设置 To: 头部的header字段
      message.addRecipient(Message.RecipientType.TO,
                               new InternetAddress(to));
      // 设置 Subject: header字段
      message.setSubject("This is the Subject Line!");
     
      // 设置 HTML消息
      message.setContent("<h1>This is actual message</h1>",
                            "text/html" );
      // 发送消息
      Transport.send(message);
      result = "Sent message successfully....";
   }catch (MessagingException mex) {
      mex.printStackTrace();
      result = "Error: unable to send message....";
   }
%>
<html>
<head>
<title>Send HTML Email using JSP</title>
</head>
<body>
<center>
<h1>Send Email using JSP</h1>
</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 result;
   // 收件人的电子邮件
   String to = "[email protected]";

   // 发件人的电子邮件
   String from = "[email protected]";

   // 假设你是从本地主机发送电子邮件
   String host = "localhost";

   // 获取系统属性对象
   Properties properties = System.getProperties();

   // 设置邮件服务器
   properties.setProperty("mail.smtp.host", host);

   // 获取默认的Session对象。
   Session mailSession = Session.getDefaultInstance(properties);

   try{
      // 创建一个默认的MimeMessage对象。
      MimeMessage message = new MimeMessage(mailSession);

      // 设置 From: 头部的header字段
      message.setFrom(new InternetAddress(from));

      // 设置 To: 头部的header字段
      message.addRecipient(Message.RecipientType.TO,
                               new InternetAddress(to));

      // 设置 Subject: header字段
      message.setSubject("This is the Subject Line!");

      // 创建消息部分
      BodyPart messageBodyPart = new MimeBodyPart();

      // 填充消息
      messageBodyPart.setText("This is message body");
      
      // 创建多媒体消息
      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 = "Send Email";
      result = "Sent message successfully....";
   }catch (MessagingException mex) {
      mex.printStackTrace();
      result = "Error: unable to send message....";
   }
%>
<html>
<head>
<title>Send Attachement Email using JSP</title>
</head>
<body>
<center>
<h1>Send Attachement Email using JSP</h1>
</center>
<p align="center">
<% 
   out.println("Result: " + result + "\n");
%>
</p>
</body>
</html>

قسم مصادقة المستخدم

إذا كان خادم البريد يتطلب اسم المستخدم وكلمة المرور لمصادقة المستخدم، يمكنك تعيين مثل ما يلي:

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

استخدام النموذج لإرسال رسالة

باستخدام نموذج HTML في الحصول على البريد الإلكتروني والحصول على جميع المعلومات التي طلب البريد الإلكتروني إلى:

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

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