บทช่วยสอน อีเมล servlet ส่ง Email ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ ส่งอีเมลง่าย,ส่งอีเมลแบบ HTML,ส่งเอกสารแนบในอีเมล,ส่วนการตรวจสอบผู้ใช้,
ส่ง E-mail โดยใช้ Servlet เป็นเรื่องง่ายมาก แต่แรกที่คุณจะต้องติดตั้งJavaMail API และการเปิดใช้งานจาวากรอบ)บนคอมพิวเตอร์ของคุณ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 ผู้รับ สตริง = "abcd@gmail.com"; // รหัส E-mail ของผู้ส่ง สตริงจาก = "web@gmail.com"; // สมมติว่าคุณส่งโฮสต์อีเมล 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 = "ประสบความสำเร็จส่งข้อความ th. "; สตริง 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 ไปนี้:
thth <Servlet> <Servlet ชื่อ> SendEmail </ servlet-name> <Servlet ชั้น> SendEmail </ servlet ระดับ> </ Servlet> <Servlet ทำแผนที่> <Servlet ชื่อ> SendEmail </ servlet-name> <url รูปแบบ> / SendEmail </ url รูปแบบ> </ Servlet ทำแผนที่> thth
ตอนนี้โดยไปที่ URL http: // localhost: 8080 / SendEmail จะเรียก Servlet นี้นี้จะส่งอีเมล์ไปยังอีเมล์ที่ได้รับabcd@gmail.com และจะปรากฏดังแสดงในการตอบสนองต่อไปนี้:
ส่ง Emailประสบความสำเร็จส่งข้อความ th. |
หากคุณต้องการที่จะส่ง e-mail ไปยังผู้รับหลายคนใช้วิธีการต่อไปนี้เพื่อระบุรหัสอีเมลหลาย:
addRecipients โมฆะ (ชนิด Message.RecipientType, ที่อยู่ [] ที่อยู่) พ่น MessagingException
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ A:
ตัวอย่างต่อไปนี้จะส่งรูปแบบ 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 ผู้รับ สตริง = "abcd@gmail.com"; // รหัส E-mail ของผู้ส่ง สตริงจาก = "web@gmail.com"; // สมมติว่าคุณส่งโฮสต์อีเมล 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 = "ประสบความสำเร็จส่งข้อความ th. "; สตริง 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 ผู้รับ สตริง = "abcd@gmail.com"; // รหัส E-mail ของผู้ส่ง สตริงจาก = "web@gmail.com"; // สมมติว่าคุณส่งโฮสต์อีเมล 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 th. "; สตริง 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");
ส่วนที่เหลือของกลไกการส่งอีเมลที่มีความสอดคล้องกับข้างต้นอธิบาย