В настоящее время многие веб -сайты предоставляют функцию регистрации пользователей. Обычно, после того, как мы успешно зарегистрируемся, мы получим электронное письмо с зарегистрированного веб -сайта. Содержание электронной почты может содержать такую информацию, как наше зарегистрированное имя пользователя и пароль, а также гиперссылка для активации учетной записи. Сегодня мы также будем реализовать такую функцию. После успешного регистрации пользователя информация о регистрации пользователя будет отправлена в регистрационное электронное письмо пользователя в виде электронного письма. Чтобы реализовать функцию отправки электронной почты, Javamail должен использоваться.
1. Создайте среду разработки
1.1. Создать веб -проект
1.2. Страница jsp registration пользователя
Register.jsp
<%@ page language = "java" pageencoding = "utf-"%> <! Doctype html> <html> <head> <title> страница регистра </title> </head> <body> <form action = "$ {pagecontext.request.contextpath}/servlet/registererverv" method = "post"> username: <pont extempate} "intemply in ext ext ext ext extempate}/registererv" name = "username"> <br/> пароль: <input type = "password" name = "password"> <br/> email: <input type = "text" name = "email"> <br/> input type = "Отправить" value = "register"> </form> </body> </html>1.3. Страница подсказки сообщения
Сообщение.jsp
<%@ page language = "java" pageencoding = "utf-"%> <! Doctype html> <html> <head> <title> Страница запроса сообщения </title> </head> <body> $ {сообщение} </body> </html>2. Напишите программу обработки регистрации пользователя
2.1. Разработать домен, который инкапсулирует информацию о регистрации пользователей
User.java
пакет me.gacl.domain; public class user {private string username; private String password; Private String Email; public String getUsername () {return username;} public void setUsername (String username) {this.username = username;} public string getPassword () {return Password;} public void setpassword (string password) {this.password = aterail = etressail = etressail = aterail = atemail =) Email;} public void setemail (string email) {this.email = email;}}2.2. Напишите функцию отправки электронной почты
Отправка электронных писем-очень трудоемкая вещь, так что вот класс потоков для отправки электронных писем
Пакет me.gacl.web.controller; import java.util.properties; импорт javax.mail.message; импорт javax.mail.session; импорт javax.mail.transport; импорт javax.mail.internet.internetdress; импорт javax.mail.memessage; @ClassName: Sendmail* @Description: The Sendmail class inherits Thread, so Sendmail is a thread class, which is used to send email to the specified user* @author: Guarantor* @date: -- Afternoon::**/ public class Sendmail extends Thread {//The email address used to send emails to users private String from = "[email protected]";//The user name of the email address private String username = "gacl"; // пароль адреса электронной почты private string password = "remail password"; // Серверный адрес отправителя частной строки host = "smtp.sohu.com"; частный пользователь; public sendmail (пользователь пользователя) {this.user = user;}/* Переписать метод выполнения и отправить электронные письма указанному пользователю. java.lang.thread#run ()*/@overridepublic void run () {try {properties prop = new Properties (); prop.setproperty ("mail.host", host); prop.setproperty ("mail.transport.protocol", "smtp"); prop.setproperty ("mail.smtp.auth", "sesion"); Session.getinstance (prop); sssion.setdebug (true); transport ts = session.gettransport (); ts.connect (host, username, пароль); сообщение сообщения = createemail (session, user); ts.sendmessage (message.getallrecipents ()); ts.close (); Runtimeexception (e);}}/ *** @method: createemail* @description: создать электронное письмо, которое будет отправлено* @anthor: lonely canglang ** @param session* @param пользователь* @return* @throws excection*/ public message createemail (сеанс сеанса, пользователь пользователя) Throws Exception {mimemessage message = new miMemessage (сеанс); message.setfrom (new InternetAddress (от)); message.setRecipient (message.recipienttype.to, new InternetAddress (user.getemail ())); message.setsubject ("Электронная почта регистрации пользователя"); string info = "Поздравляем с вашей успешной регистрацией, ваше имя пользователя:" + user.getusername () + ", ваш пароль:" + user.getPassword () + ", пожалуйста, сохраните его правильно. Если у вас есть какие -либо вопросы, пожалуйста, свяжитесь с обслуживанием клиентов веб -сайта !!"; message.setContent (info, "text/html; charset = utf-");2.3. Напишите сервлет, который обрабатывает регистрацию пользователя
пакет me.gacl.web.controller; import java.io.ioexception; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservlectrequest; import javax.servlet.httpsessessevsevsevsevseerquest. me.gacl.domain.user; import me.gacl.service.userservice; открытый класс Registerservlet Extends httpservlet {public void doget (httpservletrequest, httpservletresponse) thriestexception, ioexception {try {string username = wered.getaraMeter (userse evletExcept request.getParameter ("password"); string email = request.getParameter ("email"); user user = new user (); user.setemail (email); user.setpassword (пароль); user.setusernam Электронные письма-это очень трудоемкая задача, поэтому здесь открывается другой поток, чтобы специально отправлять электронные письма sendmail send = new sendmail (пользователь); // запустить поток, и после начала потока он выполнит метод выполнения для отправки электронных писем Send.Start (); // user user // new userservice (). registerUser (user); recement.setatribuettibou Мы отправили электронное письмо с регистрационной информацией. Пожалуйста, проверьте это. Если вы не получите его, это может быть связано с Интернетом. Вы получите это через некоторое время! ! "); request.getRequestDispatcher ("/message.jsp "). Forward (repsect, response);} catch (excrivation e) {e.printstacktrace (); request.setattribute (" Сообщение "," Регистрация не удалось !! "); request.getRequestdispatcher ("/message.jsp "). Ответ httpservletresponse) бросает Servletexception, ioException {Doget (запрос, ответ);}}Программа работает следующим образом:
Многие веб -сайты теперь имеют такие функции. После того, как регистрация пользователя будет завершена, веб -сайт отправит нам электронное письмо на основе адреса электронной почты, который мы заполнили при регистрации, а затем нажмите на гиперссылку в электронном письме, чтобы активировать наших пользователей. Так реализована эта функция.
При суммировании использования Javamail для отправки электронных писем, обнаружено, что при отправке электронных писем в Sina или Sohu's Mailboxes вы можете немедленно получить электронные письма. Всегда существует задержка, иногда она будет задерживаться в течение длительного времени, и она даже будет обрабатываться как спам, или вы можете просто отказаться от их получения. Иногда беспомощно ждать долгое время, чтобы увидеть успешный эффект отправки электронной почты.
Выше приведено пример кода Java Mail, отправляющая функцию электронной почты, введенную вам редактором. Я надеюсь, что это будет полезно для всех!