오늘날 많은 웹 사이트가 사용자 등록 기능을 제공합니다. 일반적으로 성공적으로 등록하면 등록 된 웹 사이트에서 이메일을 받게됩니다. 이메일의 내용에는 등록 된 사용자 이름 및 비밀번호와 같은 정보와 계정을 활성화하기위한 하이퍼 링크와 같은 정보가 포함될 수 있습니다. 오늘 우리는 또한 그러한 기능을 구현할 것입니다. 사용자가 성공적으로 등록하면 사용자의 등록 정보가 이메일 형식으로 사용자의 등록 이메일로 전송됩니다. 이메일 전송 기능을 실현하려면 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}/servlet/registerservlet"메소드 "> usern"> usern "" " 이름 = "username"> <br/> 비밀번호 : <입력 유형 = "암호"이름 = "비밀번호"> <br/> 이메일 : <입력 유형 = "텍스트"이름 = "이메일"> <br/> 입력 유형 = "value ="register "> </form> </body> </html>1.3. 메시지 프롬프트 페이지
Message.jsp
<%@ page language = "java"pageencoding = "utf-"%> <! doctype html> <html> <head> <title> 메시지 프롬프트 페이지 </title> </head> <body> $ {message} </body> </html>2. 사용자 등록 처리 프로그램을 작성하십시오
2.1. 사용자 등록 정보를 캡슐화하는 도메인을 개발하십시오
user.java
package me.gacl.domain; public class user {private string username; private String password; private string email; public string getUername () {return username;} public void setusername (string username) {this.username = username;} public string getpassword () {return password;} public setpassword (string setpassword) {return {) 이메일;} public void seteMail (문자열 이메일) {this.email = 이메일;}}2.2. 이메일 보내기 기능을 작성하십시오
이메일을 보내는 것은 매우 시간이 많이 걸리는 것이므로 이메일을 보내는 스레드 클래스가 있습니다.
packing me.gacl.web.controller; import java.util.properties; import javax.mail.message; import javax.mail.session; import javax.mail.transport; import javax.mail.internet.internetaddress; import javax.mail.mail.mimessage;/gorms.gacl.uster; @ClassName : SendMail* @Description : SendMail 클래스는 스레드를 상속받습니다. 따라서 SendMail은 지정된 사용자에게 이메일을 보내는 데 사용되는 스레드 클래스입니다.* @Author* @Date : - 오후 :: **/Public Class SendMail은 스레드를 확장합니다. "gacl"; // 이메일 주소의 비밀번호 비밀번호 개인 문자열 비밀번호 = "이메일 비밀번호"; // 발신자 개인 문자열 호스트의 서버 주소 = "smtp.sohu.com"; private 사용자; public sendmail (user user) {this.user = user;}/* 실행 메소드의 구현을 다시 작성하고 실행 방법에서 지정된 사용자에게 이메일을 보내십시오. java.lang.thread#run ()*/@atredgepublic void run () {try {properties proper = new Properties (); prop.setproperty ( "mail.host", host); prop.setproperty ( "mail.transport.protocol", "smtp"); prop.setproperty ( "mail.spectp" session.getInstance (prop); sssion.setdebug (true); transport ts = session.getTransport (); ts.Connect (호스트, 사용자 이름, 암호); 메시지 메시지 = CreateEmail (세션, 사용자); ts.SendMessage (메시지, 메시지, getallRecipients ()); ts.close ()} {rash e) runtimeexception (e);}}/ *** @method : createEmail* @description : 전송 할 이메일을 보내십시오* @anthor : lonely canglang ** @param session* @param user* @return* @throws exception*/ public message (session session, 사용자) 예외 {mimemessage message = new Mimemessage (세션); message.setfrom (new InternetAddress (from)); message.setRecipient (message.recipientType.to, new InternetAdDress (user.getEmail ()); Message.SetSubject ( "사용자 등록 이메일"); String Info = "성공적인 등록에 축하합니다. 사용자 이름 :" + user.getusername () + "," + user.getPassword () + ", 제대로 보관하십시오. 웹 사이트 고객 서비스에 문의하십시오."; message.setContent (info, "text/html; charset = utf-"); message.sevechanges (); return message;}}2.3. 사용자 등록을 처리하는 서블릿을 작성하십시오
package me.gacl.web.controller; import java.io.ioexception; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpervletrequest; import javax.servlet.http.httprspronge; me.gacl.domain.user; import me.gacl.service.userservice; public class registerservlet를 httpservlet을 확장합니다 (public void doget (httpservletrequest request, httpservletreponse 응답) servletexception, ioxception {string username = request.getername ") request.getParameter ( "password"); String email = request.getParameter ( "email"); user user = new user (); user.seteMail (email); user.setpassword (password); user.setusername (username); system.out.println ( "데이터베이스의 사용자 정보 등록") 매우 시간이 많이 걸리는 작업이므로 여기에 다른 스레드가 열리기 위해 이메일 보내기 SendMail Send = New SendMail (사용자); // 스레드를 시작하면 스레드가 시작되면 스레드가 시작되면 이메일을 보내기 위해 실행 메소드를 실행하여 송수신 (); RegisterSUSER (); RegisterSUR (); "메시지", "메시지"를 성공적으로 보냈습니다. 우리는 등록 정보와 함께 이메일을 보냈습니다. 확인하십시오. 받지 못하면 인터넷 때문일 수 있습니다. 당신은 한동안 그것을받을 것입니다! ! ". httpservletresponse 응답) servletexception, ioexception {doget (request, responsk);}}프로그램은 다음과 같이 실행됩니다.
많은 웹 사이트에는 이제 그러한 기능이 있습니다. 사용자 등록이 완료되면 웹 사이트는 등록 할 때 작성한 이메일 주소를 기반으로 이메일을 보내고 이메일의 하이퍼 링크를 클릭하여 사용자를 활성화합니다. 이것이이 기능이 구현되는 방식입니다.
이메일을 보내기 위해 Javamail의 사용을 요약하면 Sina 또는 Sohu의 사서함에 이메일을 보낼 때 즉시 이메일을받지 못할 수 있습니다. 항상 지연이 있고 때로는 오랫동안 지연되며 스팸으로 처리되거나 단순히 수신을 거부 할 수도 있습니다. 때로는 성공적인 이메일 전송 효과를보기 위해 오랜 시간을 기다리는 것이 무력합니다.
위는 편집자가 소개 한 Java 메일 전송 이메일 기능의 예제 코드입니다. 나는 그것이 모두에게 도움이되기를 바랍니다!