この記事では、SSMフレームワーク(Spring 4.0 + SpringMVC + MyBatis)に基づいてJavamailアプリケーションを紹介します。電子メールがTencentのQQメールボックスに基づいている場合、実際にはFoxmailメールボックスでもあります。
まず、SMTPプロトコルとSSL暗号化を理解する必要があります
SMTP:Simple Mail Transfer Protocalと呼ばれる目標は、ユーザーに効率的で信頼性の高いメール送信を提供することです。 SMTPは、リクエスト応答のプロトコルです。つまり、クライアントはリモートサーバーにリクエストを送信します。サーバーは応答してポート25に耳を傾けるため、作業モードは2つです。SMTPの送信とSMTPの受信です。
SSL暗号化:ブラウザとWebサイトサーバーのセキュリティを確保するために使用されます。原則は翻訳で説明されています。
ブラウザがサーバーから安全なWebページを要求したとき(通常はhttps://)
サーバーは証明書と公開キーを送り返します
ブラウザは、証明書が信頼できる機関によって発行されているかどうかを確認し、証明書が有効であること、およびこの証明書がこのウェブサイト用であることを確認します。
ランダムな対称キーは、暗号化されたURLを含む公開キーを使用して暗号化されます。
サーバーは、送信したキーを独自の秘密鍵で復号化します。次に、この対称暗号化キーを使用して、要求したURLを復号化します。
サーバーは、送信した対称キーを使用して、要求したWebページを暗号化します。あなたが送ったウェブページを同じキーで復号化することができます
次に、Javamailの送信メールを実装する方法を紹介します。まず、Javamailの瓶をダウンロードする必要があります:http://xiazai.vevb.com/201612/yuanma/mail_jb51.jar
サーバーとして機能するQQメールボックスでSMTPサービスを有効にするには:
電子メールを送信するためにビジネスクラスを書く:
パッケージcom.appms.email; import java.util.date; import java.util.properties; import javax.mail.address; import javax.mail.mail.session; Import javax.mail.transport; Import javax.mail.mimsdress.masdress.mawax.mawax.masdress。 com.sun.mail.util.mailsslsocketfactory; public class javaemailsender {public static void sendemail(string toemailaddress、string emailtitle、string emailcontent)スロー例外{プロパティprops = new Properties(); //デバッグデバッグProps.setProperty( "Mail.Debug"、 "True")を有効にします; //送信サーバーには、認証props.setProperty( "mail.smtp.auth"、 "true"); //メールサーバーのホスト名props.setProperty( "mail.host"、 "smtp.qq.com"); //送信メールプロトコル名props.setProperty( "mail.transport.protocol"、 "smtp"); / ** SSL認証、Tencent MailboxはSSL暗号化に基づいていることに注意してください。 sf.settrustallhosts(true); props.put( "mail.smtp.ssl.enable"、 "true"); props.put( "mail.smtp.ssl.socketfactory"、sf); //セッションセッション= session.getInstance(props)を作成します。 //オブザーバーモードメッセージに基づいて設計されたメッセージを送信しますmsg = new Mimemessage(session); msg.setsubject(emailTitle); // StringBuilderを使用します。StringBuilderは文字列よりも速くロードされ、非常にスレッドセーフでもあります。 stringbuilder builder = new StringBuilder(); Builder.Append( "/n"+emailContent); Builder.Append( "/n time" + new date()); msg.settext(builder.tostring()); msg.setfrom(new InternetAddress( "Your QQ Mailbox"));輸送輸送= session.getTransport(); Transport.Connect( "smtp.qq.com"、 "Your QQ Mailbox"、 "SMTPサービスを有効にするための独立したパスワード")); //メッセージTransport.sendmessage(msg、new Address [] {new InternetAddress(toemailaddress)})を送信します。 Transport.Close(); }}次に、SpringMVCフレームワークのコントローラークラスを作成します。
/** *電子メールページを送信するためにジャンプ * @return * @Throws例外 */@RequestMapping( "/gosendemail")public modelandview gosendemail(httpservletrequestリクエスト)スロー例外{modelandview mv = this.getModelandView();文字列email = request.getParameter( "email"); if(email!= null &&! ""。equals(email)){email = email.trim(); mv.setViewName( "member/send_email"); mv.addobject( "email"、email); } mvを返します。 }/** *電子メールを送信 * @return * @Throws例外 */@RequestMapping(value = "/sendemail"、生産= "application/json; charset = utf-8")@responsebodyパブリックオブジェクトsendemail(httpservletrequestリクエスト)スロー例外文字列msg = "ok"; //ステータス文字列toemail = request.getParameter( "email")を送信します。 //その他のメールボックス文字列タイトル= request.getParameter( "title"); //タイトル文字列content = request.getParameter( "content"); //コンテンツjavaemailsender.sendemail(toemail、title、content); map.put( "result"、msg);マップを返します。 }ここでは、検証プロンプトにjQueryチッププラグインを使用するため、対応するjQueryファイルを導入する必要があります。
<script type = "text/javascript" src = "source/js/jquery-1.7.2.js"> </script> <! - tip box-> <script = "text/javascript" src = "source/js/jquery.tips.js"> </scrip>
jQueryフォームの検証とAjaxの非同期リクエスト:
<! - 電子メールを送信 - > <スクリプトタイプ= "text/javascript"> // sendfunction endem(){if($( "#type")。val()== "1"){$( "#content")。val(getContenttxt()); } else {$( "#content")。val(getContent()); } if($( "#email")。val()== ""){$( "#email")。tips({side:3、msg: 'exter epent'、bg: '#ae81ff'、time:2}); $( "#email")。focus(); falseを返します。 } if($( "#title")。val()== ""){$( "#title")。tips({side:3、msg: 'title'、bg: '#ae81ff'、time:2}); $( "#title")。focus(); falseを返します。 } if($( "#content")。val()== ""){$( "#nr")。tips({side:1、msg: 'content'、bg: '#ae81ff'、time:3}); falseを返します。 } var email = $( "#email")。val(); var type = $( "#type")。val(); var title = $( "#title")。val(); var content = $( "#content")。val(); $( "#zhongxin")。hide(); $( "#zhongxin2")。show(); $ .ajax({type: "post"、url: 'retroaction/sendemail.do?tm ='+new date()、gettime()、data:{email、title:title、content}、 'json'、// beforesend:bealatedata、cache、fals:ut(dates) $(#msg ")。 }});} </script>JSPページへの呼び出し:
< <div style = "float:right;"> <a class = 'btn-mini btn-info' onclick = "dialog_open();">編集メールアドレス</i> </a> </div> </td> </tr> <tr> <td> <input type = "text" name "" id = "pelacehower"/"placehowholder =" place "plicehowhown </td> </tr> <td id = "nr"> <script id = "editor" type = "text/plain"> </script> </td> </tr> <td style = "text-align:center;"> <a onclick = "sendem();"> send </a> <a onclose.close </tr> </table> </div> <div id = "zhongxin2" style = "display:none"> <br/> <img src = "assets/images/jzx.gif" id = 'msg'/> <br/> <h4 id = 'msg'> send ... </h4> </div>
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。