Hoy en día, muchos sitios web proporcionan función de registro de usuarios. Por lo general, después de registrarnos con éxito, recibiremos un correo electrónico del sitio web registrado. El contenido del correo electrónico puede contener información como nuestro nombre de usuario y contraseña registrados, así como un hipervínculo para activar la cuenta. Hoy también implementaremos dicha función. Después de que el usuario se registre correctamente, la información de registro del usuario se enviará al correo electrónico de registro del usuario en forma de correo electrónico. Para realizar la función de envío de correo electrónico, se debe usar Javamail.
1. Construir un entorno de desarrollo
1.1. Crear un proyecto web
1.2. Página de registro de usuarios JSP
registrar.jsp
<%@ page lenguaje = "java" pageEncoding = "utf-"%> <! DocType html> <html> <fead> <title> Registre página </title> </head> <body> <form de action = "$ {pageContext.request.contextpath}/servlet/registro" método = "Post" name = "UserName"> <br/> Password: <input type = "Password" name = "Password"> <br/> Correo electrónico: <input type = "text" name = "email"> <br/> input type = "enviar" valor = "registro"> </form> </body> </html>1.3. Página de solicitud de mensaje
mensaje.jsp
<%@ page lenguaje = "java" pageEncoding = "utf-"%> <! DocType html> <html> <fead> <title> Página de solicitud de mensaje </title> </head> <body> $ {Message} </body> </html>2. Escriba un programa de procesamiento de registro de usuario
2.1. Desarrollar un dominio que encapsule la información de registro del usuario
User.java
paquete me.gacl.domain; usuario de clase pública {private String String UserName; private String Password; Private String Correo electrónico; public String getUsername () {return UserName;} public void setUsername (string username) {this.username = username;} public string getPassword () {returnswers;} public ovoid setPassword (String Password) {this.password = contraseña; correo electrónico;} public void setEmail (correo electrónico de cadena) {this.email = correo electrónico;}}2.2. Escriba la función de envío de correo electrónico
Enviar correos electrónicos es algo que requiere mucho tiempo, así que aquí hay una clase de hilo para enviar correos electrónicos
paquete 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.internet.mimemesge; import. @Classname: sendmail* @Description: la clase Sendmail hereda el hilo, por lo que Sendmail es una clase de subprocesos, que se usa para enviar correo electrónico al usuario especificado* @author: Garantor* @date: - tarde :: **/public class Sendmail extiende el hilo {// La dirección de correo electrónico usada para enviar correos electrónicos a los usuarios privados de los usuarios de "[email protected]"; // el nombre de usuario de la cadena de correo electrónico de la dirección de correo electrónico de la dirección de correo electrónico. "gacl";//The password of the email address private String password = "email password";//The server address of the sender private String host = "smtp.sohu.com";private User user;public Sendmail(User user){this.user = user;}/* Rewrite the implementation of the run method and send emails to the specified user in the run method* @see java.lang.thread#run ()*/@overridePublic void run () {try {propperties prop = new Properties (); prop.setProperty ("mail.host", host); prop.setProperty ("mail.transport.protocol", "smtp"); prop.setProperty ("mail.ssmtp.auth", "verdadero sesser = session Session.getInstance (prop); sssion.setDebug (true); transporte ts = session.getTransport (); ts.connect (host, username, contraseña); mensaje mensaje = createEmail (session, user); ts.sendMessage (mensaje, mensaje.getAllRecipients ()); ts.close (} Catch (excepción) RuntimeException (e);}}/ *** @method: createEmail* @Description: cree el correo electrónico que se enviará* @anthor: lonely canclang ** @param session* @param user* @return* @throws Exception*/ public Message createEmail (sesión de sesión, usuario) Lanza excepción {mensaje de mimemae = nuevo mimemage (sesión); Message.setFrom (nuevo Internetaddress (desde)); Message.SetRecipient (Message.RecipientType.to, New InternetAddress (user.getEmail ())); Message.setSubject ("Correo electrónico de registro del usuario"); String info = "Felicitaciones por su registro exitoso, su nombre de usuario:" + user.getUsername () + ", su contraseña:" + user.getPassword () + ", manténgalo correctamente. Si tiene alguna pregunta, comuníquese con el servicio al cliente del sitio web!"; Message.SetContent (info, "Text/Html; Charset = Utf-"); Message.SaveChanges (); Mensaje de retorno;}}2.3. Escribe un servlet que maneja el registro del usuario
paquete me.gacl.web.controller; import java.io.ioException; import javax.servlet.servletException; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletRequest; import javax.servlet.http.htpserveT me.gacl.domain.user; import me.gacl.service.userservice; public class RegisterServlet extiende httpservlet {public void doget (httpservletRequest request, httpServletReSponse respuesta) lanza ServletException, ioexception {try {string useName = request.getParameter ("UsssonPonse Response"); request.getParameter ("contraseña"); cadena de correo electrónico = request.getParameter ("correo electrónico"); usuario user = new User (); user.setEmail (correo electrónico); user.setPassword (contraseña); user.setUsername (username); system.out.println ("registrar la información del usuario en la base de datos"); // después de los registros de usuarios con éxito, envíe un correo electrónico a la dirección de correo electrónico a la dirección de correo electrónico al usuario. Los correos electrónicos son una tarea que requiere mucho tiempo, por lo que se abre otro hilo aquí para enviar específicamente los correos electrónicos sendmail send = new sendmail (usuario); // Inicie el subproceso, y después de que se inicia el subproceso, ejecutará el método Ejecutar para enviar correos electrónicos Send.Start (); // Registro de usuarios // New UserService (). Hemos enviado un correo electrónico con la información de registro. Por favor, revise. Si no lo recibe, puede deberse a Internet. ¡Lo recibirás en un tiempo! ! "); request.getRequestDisPatcher ("/message.jsp "). Award (request, respuesta);} catch (excepción e) {E.PrintStackTrace (); request.setTtribute (" Mensaje "," ¡Registre fallido! "); request.getRequestDISPatcher ("/Message.jsp "). ADELAR (Solicitar);}}}}}}}}}} void doPost (doPOST (hopost (hopatcher Respuesta httpservletResponse) lanza ServletException, ioexception {doget (solicitud, respuesta);}}El programa se ejecuta de la siguiente manera:
Muchos sitios web ahora tienen tales funciones. Después de completar el registro del usuario, el sitio web nos enviará un correo electrónico basado en la dirección de correo electrónico que completamos al registrarnos, y luego haga clic en el hipervínculo en el correo electrónico para activar a nuestros usuarios. Así es como se implementa esta función.
Al resumir el uso de Javamail para enviar correos electrónicos, se encuentra que al enviar correos electrónicos a los buzones de Sina o Sohu, es posible que no pueda recibir los correos electrónicos de inmediato. Siempre hay un retraso, a veces se retrasará durante mucho tiempo, e incluso se procesará como spam, o simplemente puede negarse a recibirlos. A veces, es indefenso esperar mucho tiempo para ver el exitoso efecto de envío de correo electrónico.
El anterior es el código de ejemplo de la función de correo electrónico de envío de correo Java que le presenta el editor. ¡Espero que sea útil para todos!