現在、多くのWebサイトがユーザー登録機能を提供しています。通常、登録に正常に登録した後、登録されたWebサイトから電子メールを受信します。電子メールの内容には、登録されたユーザー名とパスワードなどの情報、およびアカウントをアクティブにするハイパーリンクが含まれる場合があります。今日もこのような関数を実装します。ユーザーが正常に登録された後、ユーザーの登録情報はユーザーの登録電子メールに電子メールの形式で送信されます。電子メールの送信機能を実現するには、Javamailを使用する必要があります。
1.開発環境を構築します
1.1。 Webプロジェクトを作成します
1.2。ユーザー登録JSPページ
Register.jsp
<%@ page Language = "Java" PageEncoding = "utf-"%> <!Doctype HTML> <HTML> <HEAD> <TITLER>レジスタ>登録ページ</title> </head> <body> <form Action = "$ {pagecontext.request.contextpath}/registerervlet" Method = ""> serername name = "username"> <br/> password:<入力タイプ= "パスワード" name = "password"> <br/> email:<入力タイプ= "text" name = "email"> <br/>入力タイプ= "submit" value = "register"> </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
packy me.gacl.domain; public class user {private string username; private string password; private string email; public void setusername(this.username = username;} public string getPassword(){public void setpass {return email;} public void setemail(string email){this.email = email;}}}2.2。電子メール送信機能を書きます
メールを送信することは非常に時間のかかるものなので、ここにメールを送信するスレッドクラスがあります
packed me.gacl.web.controller; import java.util.properties; Import javax.mail.message; Import javax.mail.session; import javax.mail.transport; import javax.mail.internet.internetadress; Import javax.mail.mail.mimessage; @classname:sendmail* @description:sendmailクラスはスレッドを継承するため、sendmailは指定されたユーザーに電子メールを送信するために使用されるスレッドクラスです* @author:保証人* @date: - 午後::*/public class sendmail extendsスレッド{//ユーザーにメールアドレスをユーザーに送信するために使用される電子メールアドレスをprivate insring from = "gacl @shu. =" gacl @shuc. "gacl"; //電子メールアドレスのパスワードプライベート文字列パスワード= "メールパスワード"; //送信者のサーバーアドレス= "smtp.sohu.com"; private user user; public sendmail(this.user = user;}/* runメソッドの実装を書き直し、実行されたユーザーにメールを送信します* @seeを送信java.lang.thread#run()*/@overridepublic void run(){try {properties prope = new properties(); prop.setproperty( "mail.host"、host); prop.setproperty( "mail.transport.protocol"、 "smtp"); prop.setproperty "" mail.smtp。 session.getInstance(prop); sssion.setDebug(true); Transport ts = session.getTransport(); ts.Connect(host、username、password); message message = createemail(session、user); ts.sendmessage(message、message.getallrecipents()); ts.close(); runtimeexception(e);}}/ *** @method:createemail* @description:送信するメールを作成* @anthor:lonely canglang ** @param session* @param user* @return* @return*/ public message createemail(セッション、ユーザーユーザー)例外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.savechanges(); return message;}}}2.3。ユーザー登録を処理するサーブレットを書きます
packed me.gacl.web.controller; Import java.io.ioexception; Import javax.servlet.servletexception; Import javax.servlet.http.httpservlet; import.servlet.servlet.http.httpservletrequest; me.gacl.domain.user; import me.gacl.service.userservice; public class registerservlet extends httpservlet {public void doget(httpservletrequest request、httpservletresponse応答) request.getParameter( "password"); string email = request.getParameter( "email"); user user = new user(); user.setemail(); user.setPassWord(password); user.setUsername(username); out.println( "ユーザー情報をデータベースに登録ユーザー情報");レジスタ。//send電子メールは非常に時間のかかるタスクであるため、ここで別のスレッドがここに開かれ、emails sendmail sendmail = new sendmail(user); //スレッドを起動し、スレッドが起動した後、run methodを実行すると、emails send.start(); //登録ユーザー// new userser(emsisuser(); registation( 成功。登録情報を含むメールを送信しました。確認してください。あなたがそれを受け取らないなら、それはインターネットによるものかもしれません。しばらくしてそれを受け取ります! ! "); request.getRequestDispatcher("/message.jsp ")。リクエスト、httpservletResponse応答)ServleTexception、ioException {doget(request、response);}}}をスロープログラムは次のように実行されます。
現在、多くのWebサイトにそのような機能があります。ユーザー登録が完了した後、Webサイトは登録時に記入されたメールアドレスに基づいてメールを送信し、メールのハイパーリンクをクリックしてユーザーをアクティブにします。これがこの機能の実装方法です。
Javamailの使用を要約してメールを送信すると、SinaまたはSohuのメールボックスにメールを送信すると、すぐにメールを受信できない場合があります。常に遅延がありますが、時には長い間遅延し、スパムとして処理されるか、単にそれらを受け取ることを拒否することもあります。時には、電子メールの送信効果が成功するのを見るのに長い間待つことは無力です。
上記は、編集者が紹介したJavaメールの送信電子メール機能の例です。私はそれが誰にでも役立つことを願っています!