Latest web development tutorials

อีเมล servlet

ส่ง E-mail โดยใช้ Servlet เป็นเรื่องง่ายมาก แต่แรกที่คุณจะต้องติดตั้งJavaMail API และการเปิดใช้งานจาวากรอบ)บนคอมพิวเตอร์ของคุณJAF)

  • คุณสามารถดาวน์โหลดรุ่นล่าสุดของ Java JavaMail เปิดทางด้านขวาของหน้ามีการเชื่อมโยงดาวน์โหลดคลิกที่ภาพเพื่อดาวน์โหลด
  • คุณสามารถดาวน์โหลดรุ่นล่าสุดของ Java (เวอร์ชั่น 1.1.1) JAF

นอกจากนี้คุณยังสามารถใช้เว็บไซต์เพื่อให้ลิงค์ดาวน์โหลด:

ดาวน์โหลดและเปิดเครื่องรูดแฟ้มในไดเรกทอรีระดับบนสุดที่สร้างขึ้นใหม่คุณจะพบบางไฟล์ไหสองโปรแกรม คุณต้องเพิ่มmail.jar และไฟล์ activation.jarเพื่อ CLASSPATH ของคุณ

ส่งอีเมลง่าย

ตัวอย่างต่อไปนี้ส่ง E-mail มาที่เรียบง่ายจากคอมพิวเตอร์ของคุณนี้จะถือว่าพื้นที่ท้องถิ่นของคุณเชื่อมต่อการสนับสนุน Internet และ e-mailขณะที่มั่นใจว่าแพคเกจ Java อีเมล์ API และแพคเกจ JAF jar ไฟล์ทั้งหมดที่อยู่ใน CLASSPATH ที่มีอยู่

// ชื่อไฟล์ SendEmail.java
นำเข้า java.io. *;
นำเข้า java.util * .;
นำเข้า javax.servlet * .;
นำเข้า javax.servlet.http * .;
นำเข้า javax.mail * .;
นำเข้า javax.mail.internet * .;
นำเข้า javax.activation * .;
 
เรียนสาธารณะ SendEmail ขยาย HttpServlet {
    
  โมฆะสาธารณะ doGet (HttpServletRequest ร้องขอ
                    HttpServletResponse การตอบสนอง)
            พ่น ServletException, IOException
  {
      // รหัส E-mail ผู้รับ
      สตริง = "[email protected]";
 
      // รหัส E-mail ของผู้ส่ง
      สตริงจาก = "[email protected]";
 
      // สมมติว่าคุณส่งโฮสต์อีเมล String = "localhost" จากโฮสต์ท้องถิ่น;
 
      // รับคุณสมบัติของระบบทรัพย์สิน = System.getProperties ();
 
      // ตั้งค่าเซิร์ฟเวอร์อีเมล properties.setProperty ( "mail.smtp.host" เจ้าภาพ);
 
      // รับเซสชั่นเริ่มต้นเซสชันวัตถุสมัย = Session.getDefaultInstance (คุณสมบัติ);
      
      // ตั้งค่าชนิดเนื้อหาของการตอบสนอง response.setContentType ( "text / html; charset = UTF-8");
      PrintWriter ออก = response.getWriter ();

      try {
         // สร้างเริ่มต้น MimeMessage วัตถุ MimeMessage ข้อความใหม่ = MimeMessage (เซสชั่น);
         // การตั้งค่าจาก: ส่วนหัวข้อมูลของส่วนหัว
         message.setFrom (ใหม่ InternetAddress (จาก));
         // ตั้งเป็นส่วนหัวของข้อมูลของส่วนหัว
         message.addRecipient (Message.RecipientType.TO,
                                  ใหม่ InternetAddress (เพื่อ));
         // ตั้งเรื่อง: ฟิลด์ส่วนหัว
         message.setSubject ( "นี่คือบรรทัดเรื่อง!");
         // ตั้งค่าข้อความจริง message.setText ( "นี่คือข้อความที่เกิดขึ้นจริง");
         // ส่งข้อความ Transport.send (ข้อความ);
         ชื่อ String = "อีเมล";
         สตริง Res = "ประสบความสำเร็จส่งข้อความ ... ";
         สตริง DOCTYPE = "\ n <DOCTYPE HTML!>";
         out.println (DOCTYPE +
         "<html> \ n" +
         "<head> <title>" + ชื่อ + "</ title> </ head> \ n" +
         "<body bgcolor = \" # f0f0f0 \ "> \ n" +
         "<h1 align = \" ศูนย์ \ ">" + ชื่อ + "</ h1> \ n" +
         "<p align = \" ศูนย์ \ ">" + Res + "</ p> \ n" +
         "</ body> </ html>");
      } catch (MessagingException MEX) {
         mex.printStackTrace ();
      }
   }
} 

ตอนนี้ขอรวบรวม Servlet ข้างต้นและสร้างรายการต่อไปนี้ในไฟล์ web.xml ไปนี้:

....
 <Servlet>
     <Servlet ชื่อ> SendEmail </ servlet-name>
     <Servlet ชั้น> SendEmail </ servlet ระดับ>
 </ Servlet>
 
 <Servlet ทำแผนที่>
     <Servlet ชื่อ> SendEmail </ servlet-name>
     <url รูปแบบ> / SendEmail </ url รูปแบบ>
 </ Servlet ทำแผนที่>
....

ตอนนี้โดยไปที่ URL http: // localhost: 8080 / SendEmail จะเรียก Servlet นี้นี้จะส่งอีเมล์ไปยังอีเมล์ที่ได้รับ[email protected] และจะปรากฏดังแสดงในการตอบสนองต่อไปนี้:

ส่ง Email

ประสบความสำเร็จส่งข้อความ ...

หากคุณต้องการที่จะส่ง e-mail ไปยังผู้รับหลายคนใช้วิธีการต่อไปนี้เพื่อระบุรหัสอีเมลหลาย:

addRecipients โมฆะ (ชนิด Message.RecipientType, 
                   ที่อยู่ [] ที่อยู่)
พ่น MessagingException

ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ A:

  • ประเภทนี้จะถูกตั้งค่าเป็นไปได้, CC หรือ BCCนี่ CC ในนามของ CC ตัวแทน BCC BCC ยกตัวอย่างเช่นMessage.RecipientType.TO
  • ที่อยู่: นี่คืออาร์เรย์ของ ID อีเมลเมื่อระบุ ID อีเมลคุณจำเป็นต้องใช้ InternetAddress () วิธีการ

ส่งอีเมลแบบ HTML

ตัวอย่างต่อไปนี้จะส่งรูปแบบ HTML E-mail ในคอมพิวเตอร์ของคุณนี้จะถือว่าพื้นที่ท้องถิ่นของคุณเชื่อมต่อการสนับสนุน Internet และ e-mailขณะที่มั่นใจว่าแพคเกจ Java อีเมล์ API และแพคเกจ JAF jar ไฟล์ทั้งหมดที่อยู่ใน CLASSPATH ที่มีอยู่

ตัวอย่างนี้จะคล้ายกับตัวอย่างก่อนหน้านี้ แต่ที่นี่เราใช้ setContent () วิธีการตั้งค่าพารามิเตอร์ที่สองคือ "text / html" เนื้อหาพารามิเตอร์นี้จะถูกใช้ในการระบุเนื้อหา HTML ที่มีอยู่ในข้อความ

โดยใช้กรณีนี้คุณสามารถส่งเนื้อหาจะไม่ จำกัด ขนาดของเนื้อหา HTML ที่

// ชื่อไฟล์ SendEmail.java
นำเข้า java.io. *;
นำเข้า java.util * .;
นำเข้า javax.servlet * .;
นำเข้า javax.servlet.http * .;
นำเข้า javax.mail * .;
นำเข้า javax.mail.internet * .;
นำเข้า javax.activation * .;
 
เรียนสาธารณะ SendEmail ขยาย HttpServlet {
    
  โมฆะสาธารณะ doGet (HttpServletRequest ร้องขอ
                    HttpServletResponse การตอบสนอง)
            พ่น ServletException, IOException
  {
      // รหัส E-mail ผู้รับ
      สตริง = "[email protected]";
 
      // รหัส E-mail ของผู้ส่ง
      สตริงจาก = "[email protected]";
 
      // สมมติว่าคุณส่งโฮสต์อีเมล String = "localhost" จากโฮสต์ท้องถิ่น;
 
      // รับคุณสมบัติของระบบทรัพย์สิน = System.getProperties ();
 
      // ตั้งค่าเซิร์ฟเวอร์อีเมล properties.setProperty ( "mail.smtp.host" เจ้าภาพ);
 
      // รับเซสชั่นเริ่มต้นเซสชันวัตถุสมัย = Session.getDefaultInstance (คุณสมบัติ);
      
	  // ตั้งค่าชนิดเนื้อหาของการตอบสนอง response.setContentType ( "text / html; charset = UTF-8");
      PrintWriter ออก = response.getWriter ();

      try {
         // สร้างเริ่มต้น MimeMessage วัตถุ MimeMessage ข้อความใหม่ = MimeMessage (เซสชั่น);
         // การตั้งค่าจาก: ส่วนหัวข้อมูลของส่วนหัว
         message.setFrom (ใหม่ InternetAddress (จาก));
         // ตั้งเป็นส่วนหัวของข้อมูลของส่วนหัว
         message.addRecipient (Message.RecipientType.TO,
                                  ใหม่ InternetAddress (เพื่อ));
         // ตั้งเรื่อง: ฟิลด์ส่วนหัว
         message.setSubject ( "นี่คือบรรทัดเรื่อง!");

         // การตั้งค่าที่เกิดขึ้นจริงข้อความ HTML ขนาดเนื้อหา จำกัด message.setContent ( "<h1> นี่คือข้อความจริง </ h1>"
                            "text / html");
         // ส่งข้อความ Transport.send (ข้อความ);
         ชื่อ String = "อีเมล";
         สตริง Res = "ประสบความสำเร็จส่งข้อความ ... ";
         สตริง DOCTYPE = "\ n <DOCTYPE HTML!>";
         out.println (DOCTYPE +
         "<html> \ n" +
         "<head> <title>" + ชื่อ + "</ title> </ head> \ n" +
         "<body bgcolor = \" # f0f0f0 \ "> \ n" +
         "<h1 align = \" ศูนย์ \ ">" + ชื่อ + "</ h1> \ n" +
         "<p align = \" ศูนย์ \ ">" + Res + "</ p> \ n" +
         "</ body> </ html>");
      } catch (MessagingException MEX) {
         mex.printStackTrace ();
      }
   }
} 

คอมไพล์และรัน Servlet ข้างต้นส่งข้อความ HTML ใน ID E-mail ที่กำหนด

ส่งเอกสารแนบในอีเมล

ตัวอย่างต่อไปนี้ส่ง e-mail ที่มีสิ่งที่แนบมาในคอมพิวเตอร์ของคุณจะนี้จะถือว่าพื้นที่ท้องถิ่นของคุณเชื่อมต่อการสนับสนุน Internet และ e-mailขณะที่มั่นใจว่าแพคเกจ Java อีเมล์ API และแพคเกจ JAF jar ไฟล์ทั้งหมดที่อยู่ใน CLASSPATH ที่มีอยู่

// ชื่อไฟล์ SendEmail.java
นำเข้า java.io. *;
นำเข้า java.util * .;
นำเข้า javax.servlet * .;
นำเข้า javax.servlet.http * .;
นำเข้า javax.mail * .;
นำเข้า javax.mail.internet * .;
นำเข้า javax.activation * .;
 
เรียนสาธารณะ SendEmail ขยาย HttpServlet {
    
  โมฆะสาธารณะ doGet (HttpServletRequest ร้องขอ
                    HttpServletResponse การตอบสนอง)
            พ่น ServletException, IOException
  {
      // รหัส E-mail ผู้รับ
      สตริง = "[email protected]";
 
      // รหัส E-mail ของผู้ส่ง
      สตริงจาก = "[email protected]";
 
      // สมมติว่าคุณส่งโฮสต์อีเมล String = "localhost" จากโฮสต์ท้องถิ่น;
 
      // รับคุณสมบัติของระบบทรัพย์สิน = System.getProperties ();
 
      // ตั้งค่าเซิร์ฟเวอร์อีเมล properties.setProperty ( "mail.smtp.host" เจ้าภาพ);
 
      // รับเซสชั่นเริ่มต้นเซสชันวัตถุสมัย = Session.getDefaultInstance (คุณสมบัติ);
      
	  // ตั้งค่าชนิดเนื้อหาของการตอบสนอง response.setContentType ( "text / html; charset = UTF-8");
      PrintWriter ออก = response.getWriter ();

       try {
         // สร้างเริ่มต้น MimeMessage วัตถุ MimeMessage ข้อความใหม่ = MimeMessage (เซสชั่น);
 
         // การตั้งค่าจาก: ส่วนหัวข้อมูลของส่วนหัว
         message.setFrom (ใหม่ InternetAddress (จาก));
 
         // ตั้งเป็นส่วนหัวของข้อมูลของส่วนหัว
         message.addRecipient (Message.RecipientType.TO,
                                  ใหม่ InternetAddress (เพื่อ));
 
         // ตั้งเรื่อง: ฟิลด์ส่วนหัว
         message.setSubject ( "นี่คือบรรทัดเรื่อง!");
 
         // สร้างส่วนข้อความ bodypart messageBodyPart = ใหม่ MimeBodyPart ();
 
         // กรอกข้อความ messageBodyPart.setText ( "นี่คือเนื้อหาของข้อความ");
         
         // สร้างหลายส่วนข้อความ Multipart multipart = ใหม่ MimeMultipart ();
 
         // ชุดชิ้นส่วนข้อความ multipart.addBodyPart (messageBodyPart);
 
         // ส่วนที่สองเป็นอุปกรณ์ messageBodyPart = ใหม่ MimeBodyPart ();
         ชื่อไฟล์ String = "file.txt";
         แหล่งที่มาของแหล่งข้อมูลใหม่ = FileDataSource (ชื่อไฟล์);
         messageBodyPart.setDataHandler (ใหม่ DataHandler (ที่มา));
         messageBodyPart.setFileName (ชื่อไฟล์);
         multipart.addBodyPart (messageBodyPart);
 
         // ส่งสมบูรณ์ message.setContent ข้อความส่วนหนึ่ง (multipart);
 
         // ส่งข้อความ Transport.send (ข้อความ);
         ชื่อ String = "อีเมล";
         สตริง Res = "ประสบความสำเร็จส่ง e-mail ... ";
         สตริง DOCTYPE = "\ n <DOCTYPE HTML!>";
         out.println (DOCTYPE +
         "<html> \ n" +
         "<head> <title>" + ชื่อ + "</ title> </ head> \ n" +
         "<body bgcolor = \" # f0f0f0 \ "> \ n" +
         "<h1 align = \" ศูนย์ \ ">" + ชื่อ + "</ h1> \ n" +
         "<p align = \" ศูนย์ \ ">" + Res + "</ p> \ n" +
         "</ body> </ html>");
      } catch (MessagingException MEX) {
         mex.printStackTrace ();
      }
   }
} 

คอมไพล์และรัน Servlet ข้างต้นส่งข้อความที่มีไฟล์ที่แนบมาใน ID E-mail ที่กำหนด

ส่วนการตรวจสอบผู้ใช้

หากคุณต้องการที่จะให้การตรวจสอบอีเมลเซิร์ฟเวอร์ ID ผู้ใช้และรหัสผ่านที่คุณสามารถตั้งค่าคุณสมบัติต่อไปนี้:

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

ส่วนที่เหลือของกลไกการส่งอีเมลที่มีความสอดคล้องกับข้างต้นอธิบาย