Saat ini, banyak situs web menyediakan fungsi pendaftaran pengguna. Biasanya, setelah kami berhasil mendaftar, kami akan menerima email dari situs web terdaftar. Isi email mungkin berisi informasi seperti nama pengguna dan kata sandi terdaftar kami, serta hyperlink untuk mengaktifkan akun. Hari ini kami juga akan menerapkan fungsi seperti itu. Setelah pengguna mendaftar dengan sukses, informasi pendaftaran pengguna akan dikirim ke email pendaftaran pengguna dalam bentuk email. Untuk mewujudkan fungsi pengiriman email, Javamail harus digunakan.
1. Bangun lingkungan pengembangan
1.1. Buat proyek web
1.2. Halaman JSP Pendaftaran Pengguna
register.jsp
<%@ page language = "java" pageEncoding = "utf-"%> <! Doctype html> <html> <head> <title> halaman register </iteme> </head> <body> <bentuk action = "$ {pageContext.request.contextPath/servlet/servleting" PageContext.request. name = "UserName"> <br/> Kata sandi: <input type = "password" name = "password"> <br/> Email: <input type = "text" name = "email"> <br/> input type = "kirim" value = "register"> </form> </body> </html>1.3. Halaman prompt pesan
pesan.jsp
<%@ page language = "java" pageEncoding = "utf-"%> <! Doctype html> <html> <head> <title> Page Prompt Page </iteme> </head> <body> $ {pesan} </body> </html>2. Tulis program pemrosesan pendaftaran pengguna
2.1. Kembangkan domain yang merangkum informasi pendaftaran pengguna
User.java
Paket Me.Gacl.Domain; Pengguna Kelas Publik {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 kacungan;} public void setpass; {return email;} public void seteMail (string email) {this.email = email;}}2.2. Tulis Fungsi Pengiriman Email
Mengirim email adalah hal yang sangat memakan waktu, jadi di sini adalah kelas utas untuk mengirim email
Paket Me.Gacl.Web.Controller; impor java.util.properties; impor javax.mail.message; impor javax.mail.Session; Import Javax.mail.transport; impor JAVAX.Mail.internet.internetAddress; impor javax.mail.internaTer.Internet. @ClassName: sendmail* @description: Kelas sendmail mewarisi utas, jadi sendmail adalah kelas utas, yang digunakan untuk mengirim email ke pengguna yang ditentukan* @Author: penjamin* @date: - sore :: **/Kelas publik sendmail extends thread {// alamat email yang digunakan untuk mengirim email ke pengguna string pribadi dari = "gacl. "GACL"; // Kata sandi dari alamat email pribadi string kata sandi = "email kata sandi"; // alamat server dari pengirim private string host = "smtp.sohu.com"; Pengguna Private; Public Sendmail (Pengguna Pengguna) {this.user = User;}/* Tulis ulang penerapan metode run dan kirim email ke pengguna yang ditentukan* java.lang.thread#run ()*/@overridepublic void run () {coba {properties prop = properti baru (); prop.setProperty ("mail.host", host); prop.setproperty ("mail.transport.protocol", "smtp"); prop.setproperty ("mail. Session.getInstance (prop); sssion.setDebug (true); transport ts = session.gettransport (); ts.connect (host, nama pengguna, kata sandi); pesan pesan = createMail (sesi, pengguna); ts.sendMessage (pesan, pesan.getallrecipients ()); ts. RuntimeException(e);}}/*** @Method: createEmail* @Description: Create the email to be sent* @Anthor: Lonely Canglang** @param session* @param user* @return* @throws Exception*/ public Message createEmail(Session session,User user) throws Exception{MimeMessage message = new MimeMessage(session); message.setFrom (InternetAddress baru (dari)); message.setrecipient (message.recipienttype.to, new internetAddress (user.getemail ())); message.setsubject ("Email Pendaftaran Pengguna"); Info String = "Selamat atas pendaftaran Anda yang sukses, nama pengguna Anda:" + user.getUserName () + ", kata sandi Anda:" + User.getPassword () + ", simpan dengan benar. Jika Anda memiliki pertanyaan, silakan hubungi Layanan Pelanggan Situs Web Situs web !!"; "; message.setContent (info, "Teks/html; charset = utf-"); message.savechanges (); kembalikan pesan;}}2.3. Tulis servlet yang menangani pendaftaran pengguna
Paket me.gacl.web.controller; import java.io.ioException; import javax.servlet.servletException; import javax.servlet.http.httpservlet; import javax.servlet.htp.httpservletequest; impor javax.servlet me.gacl.domain.User;import me.gacl.service.UserService;public class RegisterServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {try{String username = request.getParameter("username");String password = request.getParameter ("kata sandi"); string email = request.getParameter ("email"); pengguna pengguna = pengguna baru (); user.setemail (email); user.setpassword (kata sandi); user.setusername (nama pengguna); System.out.println ("Daftarkan informasi pengguna dalam database"); // setelah perselisihan pengguna. Registers.//send Email adalah tugas yang sangat memakan waktu, jadi utas lain dibuka di sini untuk secara khusus mengirim email sendmail kirim = sendmail baru (pengguna); // Mulai utas, dan setelah utas dimulai, itu akan menjalankan metode yang dijalankan untuk mengirim email. sukses. Kami telah mengirim email dengan informasi pendaftaran. Silakan periksa. Jika Anda tidak menerimanya, itu mungkin karena internet. Anda akan menerimanya sebentar lagi! Lai "); request.getRequestDispatcher ("/message.jsp "). Forward (request, response);} catch (Exception e) {e.printstacktrace (); request.setAttribute (" pesan "," register gagal !! "); request.getRequestdatcher ("/pesan HttpservletResponse response) melempar servletException, ioException {doGet (request, response);}}Program ini berjalan sebagai berikut:
Banyak situs web sekarang memiliki fungsi seperti itu. Setelah pendaftaran pengguna selesai, situs web akan mengirimi kami email berdasarkan alamat email yang kami isi saat mendaftar, dan kemudian klik hyperlink dalam email untuk mengaktifkan pengguna kami. Beginilah fungsi ini diimplementasikan.
Saat merangkum penggunaan Javamail untuk mengirim email, ditemukan bahwa ketika mengirim email ke kotak surat Sina atau Sohu, Anda mungkin tidak dapat menerima email dengan segera. Selalu ada penundaan, kadang -kadang akan ditunda untuk waktu yang lama, dan bahkan akan diproses sebagai spam, atau Anda mungkin menolak untuk menerimanya. Terkadang, tidak berdaya menunggu lama untuk melihat efek pengiriman email yang berhasil.
Di atas adalah contoh kode fungsi email Java Mail Sage yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu semua orang!