ทุกวันนี้เว็บไซต์หลายแห่งมีฟังก์ชั่นการลงทะเบียนผู้ใช้ โดยปกติหลังจากที่เราลงทะเบียนสำเร็จเราจะได้รับอีเมลจากเว็บไซต์ที่ลงทะเบียน เนื้อหาของอีเมลอาจมีข้อมูลเช่นชื่อผู้ใช้และรหัสผ่านที่ลงทะเบียนของเรารวมถึงไฮเปอร์ลิงก์เพื่อเปิดใช้งานบัญชี วันนี้เราจะใช้ฟังก์ชั่นดังกล่าวด้วย หลังจากการลงทะเบียนผู้ใช้สำเร็จข้อมูลการลงทะเบียนของผู้ใช้จะถูกส่งไปยังอีเมลการลงทะเบียนของผู้ใช้ในรูปแบบของอีเมล ในการรับรู้ฟังก์ชั่นการส่งอีเมลต้องใช้ Javamail
1. สร้างสภาพแวดล้อมการพัฒนา
1.1. สร้างโครงการเว็บ
1.2. หน้าการลงทะเบียนผู้ใช้ JSP
register.jsp
<%@ page language = "java" pageencoding = "utf-"%> <! doctype html> <html> <head> <title> หน้าลงทะเบียน </title> </head> <body> <form action = "$ {pageContext.Request.ContextPath} name = "username"> <br/> รหัสผ่าน: <อินพุต type = "รหัสผ่าน" ชื่อ = "รหัสผ่าน"> <br/> อีเมล: <อินพุต type = "text" name = "อีเมล"> <br/> ประเภทอินพุต = "ส่ง" value = "ลงทะเบียน"> </form> </body>1.3. หน้าพรอมต์ข้อความ
message.jsp
<%@ page language = "java" pageencoding = "utf-"%> <! doctype html> <html> <head> <title> หน้าข้อความพรอมต์ข้อความ </title> </head> <body> $ {ข้อความ} </body> </html>2. เขียนโปรแกรมประมวลผลการลงทะเบียนผู้ใช้
2.1. พัฒนาโดเมนที่ห่อหุ้มข้อมูลการลงทะเบียนผู้ใช้
user.java
แพ็คเกจ me.gacl.domain; ผู้ใช้ระดับสาธารณะ {ส่วนตัวสตริงผู้ใช้ชื่อรหัสรหัสผ่านส่วนตัว; อีเมลสตริงส่วนตัว; สตริงสาธารณะ getUserName () {ส่งคืนชื่อผู้ใช้;} โมฆะสาธารณะ setUserName (ชื่อผู้ใช้สตริง) {this.userName = ผู้ใช้; email;} โมฆะสาธารณะ setEmail (อีเมลสตริง) {this.email = อีเมล;}}2.2. ฟังก์ชั่นการส่งอีเมลเขียน
การส่งอีเมลเป็นสิ่งที่ใช้เวลานานมากดังนั้นนี่คือคลาสเธรดที่จะส่งอีเมล
แพ็คเกจ me.gacl.web.controller; นำเข้า java.util.properties; นำเข้า Javax.mail.message; นำเข้า Javax.mail.session; นำเข้า Javax.mail.transport; นำเข้า Javax.mail.internet.internetAddress; @className: SendMail* @Description: คลาส SendMail สืบทอดเธรดดังนั้น SendMail จึงเป็นคลาสเธรดซึ่งใช้ส่งอีเมลไปยังผู้ใช้ที่ระบุ* @author: ผู้ค้ำประกัน* @date: - บ่าย :: **/คลาสสาธารณะ Sendmail ขยายเธรด {// ที่อยู่อีเมลที่ใช้อีเมล "GACL"; // รหัสผ่านของที่อยู่อีเมลรหัสผ่านสตริงส่วนตัว = "รหัสผ่านอีเมล"; // ที่อยู่เซิร์ฟเวอร์ของผู้ส่งสตริงส่วนตัวโฮสต์ = "smtp.sohu.com" ผู้ใช้ส่วนตัว java.lang.thread#run ()*/@overridepublic void run () {ลอง {properties prop = คุณสมบัติใหม่ (); prop.setProperty ("mail.host", host); prop.setProperty ("mail.transport.protocol", "smtp"); session.getInstance (prop); sssion.setDebug (จริง); Transport TS = session.getTransport (); ts.connect (โฮสต์, ชื่อผู้ใช้, รหัสผ่าน); ข้อความข้อความ = createMail (เซสชัน, ผู้ใช้); runtimeException (e);}}/ *** @method: createMail* @description: สร้างอีเมลที่จะส่ง* @anthor: Lonely Canglang ** @param เซสชัน* @param user* @return* @throws ยกเว้น*/ ข้อความสาธารณะ Message.setFrom (InternetAddress ใหม่ (จาก)); message.setRecipient (message.recipientType.to, InternetAddress ใหม่ (user.getEmail ())); message.setSubject ("อีเมลลงทะเบียนผู้ใช้"); String info = "ขอแสดงความยินดีกับการลงทะเบียนที่ประสบความสำเร็จชื่อผู้ใช้ของคุณ:" + user.getUserName () + "รหัสผ่านของคุณ:" + user.getPassword () + "โปรดเก็บไว้อย่างถูกต้องหากคุณมีคำถามใด ๆ โปรดติดต่อฝ่ายบริการลูกค้าเว็บไซต์ !!"; "; message.setContent (ข้อมูล, "ข้อความ/html; charset = utf-"); message.savechanges (); ส่งคืนข้อความ;}}2.3. เขียนเซิร์ฟเล็ตที่จัดการการลงทะเบียนผู้ใช้
แพ็คเกจ me.gacl.web.controller; นำเข้า java.io.ioexception; นำเข้า Javax.servlet.servletexception; นำเข้า javax.servlet.http.httpservlet นำเข้า javax.servlet.http.httpservletRequest; me.gacl.domain.user; นำเข้า me.gacl.service.userservice; การลงทะเบียนระดับสาธารณะขยาย Httpservlet {โมฆะสาธารณะ doget (httpservletrequest คำขอ, httpservletresponse) โยน servletexception, ioexception request.getParameter ("รหัสผ่าน"); string email = request.getParameter ("อีเมล"); ผู้ใช้ผู้ใช้ = ผู้ใช้ใหม่ (); user.setEmail (อีเมล); user.setPassword (รหัสผ่าน); user.setUserName (ชื่อผู้ใช้); อีเมลเป็นงานที่ใช้เวลานานมากดังนั้นเธรดอื่นจึงเปิดที่นี่เพื่อส่งอีเมล sendmail send = ใหม่ sendmail (ผู้ใช้); // เริ่มเธรดและหลังจากเธรดเริ่มต้นมันจะดำเนินการวิธีการเรียกใช้เพื่อส่งอีเมล send.start (); // ลงทะเบียนผู้ใช้ // ผู้ใช้ใหม่ เราได้ส่งอีเมลพร้อมข้อมูลการลงทะเบียน โปรดตรวจสอบ หากคุณไม่ได้รับมันอาจเป็นเพราะอินเทอร์เน็ต คุณจะได้รับมันสักพัก! - "); request.getRequestDispatcher ("/message.jsp "). forward (คำขอ, การตอบกลับ);} catch (ข้อยกเว้น e) {e.printstacktrace (); request.setAttribute (" ข้อความ "," ลงทะเบียนล้มเหลว !! ") การตอบสนอง httpservletResponse) พ่น servletexception, ioexception {doGet (คำขอ, การตอบสนอง);}}โปรแกรมดำเนินการดังนี้:
เว็บไซต์หลายแห่งมีฟังก์ชั่นดังกล่าว หลังจากการลงทะเบียนผู้ใช้เสร็จสิ้นเว็บไซต์จะส่งอีเมลถึงเราตามที่อยู่อีเมลที่เรากรอกเมื่อลงทะเบียนแล้วคลิกไฮเปอร์ลิงก์ในอีเมลเพื่อเปิดใช้งานผู้ใช้ของเรา นี่คือวิธีการใช้งานฟังก์ชั่นนี้
เมื่อสรุปการใช้ Javamail เพื่อส่งอีเมลพบว่าเมื่อส่งอีเมลไปยังกล่องจดหมายของ Sina หรือ Sohu คุณอาจไม่สามารถรับอีเมลได้ทันที มีความล่าช้าอยู่เสมอบางครั้งมันจะล่าช้าเป็นเวลานานและมันจะถูกประมวลผลเป็นสแปมหรือคุณอาจปฏิเสธที่จะรับพวกเขา บางครั้งมันก็หมดหนทางที่จะรอเป็นเวลานานเพื่อดูเอฟเฟกต์การส่งอีเมลที่ประสบความสำเร็จ
ด้านบนเป็นรหัสตัวอย่างของฟังก์ชั่นอีเมลส่งอีเมล Java ที่แนะนำโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน!