スプリングブートとは何ですか
Spring Bootは、Springアプリケーションの初期建設構成と開発プロセスを簡素化するために設計されたフレームワークです。このフレームワークは特定の構成方法を使用するため、開発者はボイラープレート構成を定義する必要はありません。
Spring Bootの利点
1。シンプルな構成。
2。単純なエンコーディング。
3。単純な展開。
4。簡単な監視。
概要
Spring Bootはメールサーバーを統合し、Spring Bootを使用すると電子メールの送信を簡単に実現できます。 Spring Bootの最近の電子メールの送信と予防措置を整理します。
Mavenパッケージの依存関係
<Dependency> groupId> org.springframework.boot </groupid> <artifactid> spring-boot-starter-mail </artifactid> </dependency>
スプリングブート構成
spring.mail.host = smtp.servie.comspring.mail.username = username // senderのメールアドレスspring.mail.mail.password // qqメールボックスの場合、パスワードはspring.mail.mail.properties.mail.smtp.auth = truespring.mail.mail.mail.mail.mail.mail.mail.mail.mail.mail.mail.mail.main.maw.main.ma #暗号化された伝送を有効にするためにプロトコル検証項目spring.mail.properties.mail.smtp.starttls.required = fasle#プロトコル検証項目を有効にするかどうかを有効にするかどうか。
スプリングコードの実装
パッケージcom.dbgo.webservicemo.email; Import org.springframework.beans.factory.annotation.autowired; import org.springframework.filesystemresource; import org.springframework.mail.javamailsender; Import; org.springframework.mail.javamail.mimemessagehelper; Import org.springframework.stereotype.component; import javax.mail.messagingexception; Import javax.mail.internet.mimemessage; Import Java.io.file; Javamailsender; public void sendsimplemail(){mimemessage message = null; try {message = javamailsender.createmimemessage(); mimemessagehelper helper = new mimemessagehelper(message、true); helper.setfrom( "[email protected]"); helper.setto( "[email protected]"); helper.setsubject( "title:send html content"); stringbuffer sb = new StringBuffer(); sb.append( "<h1> large title-h1 </h1>").append( "<p style = 'color:#f00'> red word </p>").append( "<p style = 'text-align:right'> right </p>"); helper.settext(sb.toString()、true); FilesystemResource FilesystemResource = new FilesSystemResource(new File( "d:/76678.pdf"))helper.addattachment( "Electronic Invoice"、FilesystemResource); javamailsender.send(メッセージ); } catch(messagingexception e){e.printstacktrace(); }}}非スプリングブーツの下でメールを送信します:
Mavenパッケージの依存関係
<Dependencies> <Dependency> <GroupId> com.sun.mail </groupid> <artifactid> javax.mail </artifactid> <バージョン> 1.5.2 </version> </dependency> </dependencies>
DEMO1コードの例
パッケージcom.justin.framework.core.utils.email; Import java.io.file; Import java.io.fileinputStream; Import java.io.fileenotfoundexception; Import java.io.fileoutputStream; Import java.io.io.ioexception; Import java.io.intStream; impot.inutStream java.util.date; Import java.util.properties; import javax.activation.datahandler; import javax.activation.datasource; Import javax.activation.filedatasource; Import javax.mail.Address; Import javax.mail.authinticator; Import Javax.mail.mail.mail.mail.mail.mail.mail.mail.mail. javax.mail.message.RecipientType;インポートjavax.mail.message.recipientType; Import javax.mail.messagingexception; Import javax.mail.passwordauthentication; Import javax.mail.session; Import javax.mail.transesse javax.mail.internet.mimebodypart; Import javax.mail.internet.mimemessage; import javax.mail.internet.mimemultipart; import javax.mail.internet.mimeutility; // SMTPメールサーバープライベート最終的な静的文字列host = "mail.tdb.com"; // SMTPメールサーバーデフォルトポートプライベート最終的な静的文字列ポート= "25"; //認証が必要かどうかプライベート最終静的文字列is_auth = "true"; //デバッグモードを有効にするかどうか(デバッグモードを有効にして、クライアントとサーバーが対話するときに質問と回答の応答メッセージを印刷する)プライベート最終的な静的文字列is_enabled_debug_mod = "true"; //送信者= "[email protected]"からのprivate static string "; //受信者のprivate static string to = "[email protected]"; private static string sendusername = "[email protected]"; private static string senduserpwd = "new*2016"; //メールサーバーに接続するセッション情報の初期化プライベート静的プロパティ= null; static {props = new Properties(); props.setProperty( "mail.enable"、 "true"); props.setProperty( "mail.transport.protocol"、プロトコル); props.setProperty( "mail.smtp.host"、host); props.setProperty( "mail.smtp.port"、port); props.setProperty( "mail.smtp.auth"、is_auth); //状況に応じて、props.setProperty( "mail.debug"、is_enabled_debug_mod); } / ***シンプルなテキストメールの送信* / public static boolean sendtextemail(string to、int code)throws {// session instance object session1 = session.getDefaultInstance(props); // mimemessageインスタンスオブジェクトを作成するmimemessage message = new mimemessage(session1); //送信者message.setfrom(new InternetAddress(from))を設定します。 // email Subject Message.setsubject( "内燃焼エンジン登録確認コード"); //受信者message.setRecipient(ReciintientType.to、new InternetAddress(to))を設定します。 //送信時間message.setsentdate(new date())を設定します。 //電子メールのテキストにテキストコンテンツをテキストに設定します。Settext( "検証コードは次のとおりです。"+code+"! //最終的な電子メールコンテンツMessage.saveChanges()を保存して生成します。 //トランスポートインスタンスオブジェクトトランスポート= session1.getTransport()を取得します。 //接続Transport.Connect( "Meijiajiang2016"、 "")を開きます。 //メッセージオブジェクトをトランスポートオブジェクトに渡し、メッセージをTransport.sendMessage(message、message.getallRecipients())に送信します。 //接続を閉じるTransport.Close(); trueを返します。 } catch(Exception e){e.printstacktrace(); falseを返します。 }} public static void main(string [] args)throws exception {sendhtmlemail( "[email protected]"、8888); } / ***シンプルなHTMLメールを送信* / public static boolean sendhtmlemail(string to、int code)スロー例外{//セッションインスタンスsession1 = session.getInstance(props、new myauthenticator()); // mimemessageインスタンスオブジェクトを作成するmimemessage message = new mimemessage(session1); //電子メールの件名message.setsubject( "内燃焼エンジン登録"); //送信者message.setfrom(new InternetAddress(from))を設定します。 // time message.setsentdate(new date())を送信します。 //受信者message.setRecipients(reciintientType.to、InternetAddress.Parse(to))を設定します。 // HTMLコンテンツを電子メール本文に設定し、MIMEタイプをテキスト/HTMLタイプに指定し、GBKメッセージとしてエンコードする文字を指定します。SetContent( "<div style = 'width:600px; margin:0 auto'> <h3 style = 'color:#003e64; Text-align:'> firtion Engine Regiration eginification Regision-Alignificationユーザー:<p> 'テキストインデント'今回は、「+コード+」を登録しています社会</p> </div> "、" text/html; charset = utf-8 "); //カスタム送信者のニックネーム文字列nick = ""; try {nick = javax.mail.internet.mimeutility.encodetext( "中国内燃焼エンジンソサエティ"); } catch(unsupportedencodingexception e){e.printstacktrace(); } message.setfrom(new InternetAddress(Nick+"<"+from+">")); //最終的な電子メールコンテンツMessage.saveChanges()を保存して生成します。 //メールを送信してみてください{Transport.send(message); trueを返します。 } catch(Exception e){e.printstacktrace(); falseを返します。 }} / ***埋め込み画像でHTMLメールを送信* / public static void sendhtmlwithinnerimageemail()throws messagingexception {//セッションインスタンスオブジェクトセッション= session.getDefaultInstance(props、new myauthenticator()); //電子メールコンテンツの作成mimemessage message = new Mimemessage(session); //件名をメールで郵送し、エンコード形式message.setsubject( "embedded Picturesを備えたHTMLメール"、 "utf-8")を指定します。 // sender message.setfrom(new InternetAddress(from)); //受信者message.setRecipients(reciintientType.to、InternetAddress.Parse(to)); // cc message.setRecipient(RecosionType.cc、new InternetAddress( "[email protected]")); // secret send(電子メール受信者のリストに表示されていません)message.setRecipient(RecosionType.bcc、new InternetAddress( "[email protected]")); // time message.setsentdate(new date()); // mimeサブタイプ「関連」「mimemultipart mp = new mimemultipart( "関連")を使用してmimemultipartオブジェクトを作成します。 //本体を表すMimeBodyPartオブジェクトを作成し、以前に作成されたMimemultiPartオブジェクトに追加します。 mp.addbodypart(htmlpart); //画像リソースを表すMimeBodyPartオブジェクトを作成し、以前に作成されたMimemultiPartオブジェクトに追加しますMimeBodyPart ImagePart = new MimeBodyPart(); mp.addbodypart(imagepart); // mimemultipartオブジェクトをメッセージmessage.setContent(MP)全体のコンテンツに設定します。 //組み込み画像メールボディデータソースds = new filedataSource(new file( "resource/firefoxlogo.png")); DataHandler DH = New DataHandler(DS); ImagePart.setDatahandler(DH); ImagePart.setContentID( "firefoxlogo.png"); //他のメールボディの参照に使用するコンテンツ番号を設定します// MIMEサブタイプ「代替」を使用してMimemultiPartオブジェクトを作成し、以前に作成されたHTMLPARTオブジェクトの電子メールコンテンツとして機能します。 // HTMLボディを表すMimeBodyPartオブジェクトを作成しますMimeBodyPart htmlbodypart = new MimeBodyPart(); // Cid = AndroidLogo.gifは、参照メッセージ内の画像、つまりImagePart.SetContentID( "androidlogo.gif");メソッドhtmlbodypart.setContent( "<span style = 'color:red;'>これは埋め込み画像を備えたHTML電子メールです!!! <img src =/" cid:firefoxlogo.png/"/> </span>"、 "text/html; charset = utf-8"); htmlmultipart.addbodypart(htmlbodypart); htmlpart.setcontent(htmlmultipart); //最終的な電子メールコンテンツMessage.saveChanges()を保存して生成します。 //メールTransport.send(メッセージ)を送信します。 } / ***埋め込まれた写真、添付ファイル、複数の受信者(メールボックス名の表示)、電子メールの優先順位、および領収書の読み取り* / public void sendmultipleEmail()throws Exception {string charset = "utf-8"; //中国のエンコーディングフォーマットを指定//セッションインスタンスオブジェクトセッション= session.getInstance(props、new myAuthenticator())を作成します。 // mimemessageインスタンスオブジェクトを作成するmimemessage message = new mimemessage(session); //トピックmessage.setsubjectを設定します( "Javamailを使用して混合メールテストを送信します"); //送信者message.setfrom(new InternetAddress(from、 "sina test email"、charset))を設定します); //受信者message.setRecipients(ReciontientType.to、new Address [] {//パラメーター1:電子メールアドレス、パラメーター2:名前(名前のみがメールアドレスではなく、クライアントに表示されます)、パラメーター3:新しいInternetAddress( "[email protected]")、「Zhang san_shu ""、char InternetAddress( "[email protected]"、 "li si_163"、charset)、}); // cc message.setRecipient(ReciontientType.cc、new InternetAddress( "[email protected]"、 "wang wu_gmail"、charset))を設定します。 // secret message.setRecipient(RecosionType.BCC、new InternetAddress( "[email protected]"、 "zhao liu_qq"、charset))を設定します。 // time message.setsentdate(new date())を送信します。 //返信者(デフォルトの受信者がこの電子メールに応答するときにデフォルトの受信者が与えられます)message.setReplyto( "/" " + mimeutility.encodetext(" Tian Qi ") +"/"<[email protected]>"); //優先度を設定する(1:緊急3:通常5:ロー)message.setheader( "x-priority"、 "1"); //読み取り領収書を要求します(受信者は、電子メールを読むときに送信者に返信するように促します。電子メールが受信されて読み取られたことを示します)message.setheader( "dision-notification-to"、from); // mimeサブタイプ「Mixed」を使用してmimemultipartオブジェクトを作成します。これは、これが混合組み合わせタイプであることを示しています。 message.setContent(MailContent); //添付ファイルmimebodypart attach1 = new MimeBodyPart(); mimeBodyPart attach2 = new MimeBodyPart(); //コンテンツmimebodypart mailbody = new MimeBodyPart(); //添付ファイルとコンテンツをメールMailContent.AddBodyPart(attach1)に追加します。 MailContent.AddDodyPart(attach2); MailContent.AdddodyPart(MailBody); //添付ファイル1(JAFフレームワークを使用してメール本体を生成します)DataSource DS1 = new FileDataSource( "resource/earth.bmp"); DataHandler DH1 =新しいDataHandler(DS1); attach1.setFileName(mimeutility.EncodeText( "Earth.bmp")); attach1.setDatahandler(DH1); //添付ファイル2 DataSource DS2 = new FileDataSource( "リソース/C Language Well.txtの学習方法"); DataHandler DH2 =新しいDataHandler(DS2); Attach2.setDatahandler(DH2); attach2.setFileName(mimeutility.encodetext( "c言語well.txt")); //電子メールボディ(組み込み画像 + HTMLテキスト)mimemultipart body = new mimemultipart( "関連"); //電子メール本体も組み合わせであり、組み合わせ関係を指定する必要があります。MailBody.setContent(body); //メール本文はHTMLと写真で構成されていますmimeBodyPart IMGPART = new MimeBodyPart(); mimebodypart htmlpart = new MimeBodyPart(); body.addbodypart(imgpart); body.addbodypart(htmlpart); //テキスト画像DataSource DS3 = new FileDataSource( "Resource/firefoxlogo.png"); DataHandler DH3 =新しいDataHandler(DS3); imgpart.setdatahandler(DH3); imgpart.setcontentid( "firefoxlogo.png"); // html電子メールコンテンツmimemultipart htmlmultipart = new mimemultipart( "alternative"); htmlpart.setcontent(htmlmultipart); mimebodypart htmlcontent = new MimeBodyPart(); htmlcontent.setContent( "<span style = 'color:red'>これは、Javaメールで送信したメールです!" + "<img src = 'cid:firefoxlogo.png'/> </span>"、 "text/html; charset = gbk"); htmlmultipart.addbodypart(htmlcontent); //メッセージコンテンツを保存し、message.savechanges()を変更します。 /*file emml = buildemlfile(message); sendmailforeml(eml);*/ //メールTransport.send(message); }/***電子メールコンテンツにEMLファイルを生成* @paramメッセージメールコンテンツ*/public static file buildemlfile(message message)throws messagingexception、filenotfoundexception {file file = new file( " + mimeutility.decodeText(message.getSubject() +"); message.writeto(new fileoutputStream(file));ファイルを返します。 } / ***ローカルに生成された電子メールファイルを送信* / public static void sendmailforeml(file emml)スロー例外{//メールセッションセッション= session.getInstance(props、new myauthenticator()); //電子メールのコンテンツを取得します。つまり、inputstream is = new fileinputStream(EML)を発生する前に生成されたEMLファイルを取得します。 mimemessage message = new Mimemessage(session、is); //電子メールTransport.send(メッセージ)を送信します。 } / ***認証情報をメールサーバーに送信* / static class myAuthenticator拡張Authenticator {private string username = "";プライベート文字列password = ""; public myAuthenticator(){super(); this.password = senduserpwd; this.username = sendusername; } public MyAuthenticator(string username、string password){super(); this.username = username; this.password = password; } @Override Protected PasswordAuthentication getPassWordAuthentication(){return new PasswordAuthentication(username、password); }}}
DEMO2コードの例:
パッケージcom.justin.framework.core.utils.email; Import java.util.hashset; Import java.util.properties; Import java.util.set; Import javax.activation.datahandler; Import javax.activation.activation.filedatasource; javax.mail.message; Import javax.mail.multipart; Import javax.mail.session; Import javax.mail.transport; Import javax.internet.internetadress; Import javax.mail.internet.mimebodypart; Import javax.mail.mimemessage; Import; javax.mail.internet.mimemultipart; import javax.mail.internet.mimeutility; public class mailmanagerutils {//電子メールを送信public static boolean sendmail(電子メール){string subject = email.getsubject();文字列content = email.getContent(); string [] Recruits = email.getRecievers(); string [] copyright = email.getCopyto(); string attbody = email.getattbody(); string [] attbodys = email.getattbodys(); if(recievers == null || collecters.length <= 0){return false; } try {Properties Props = new Properties(); props.setProperty( "mail.enable"、 "true"); props.setProperty( "mail.protocal"、 "smtp"); props.setProperty( "mail.smtp.auth"、 "true"); props.setProperty( "mail.user"、 "[email protected]"); props.setProperty( "mail.pass"、 "new ***"); props.setProperty( "mail.smtp.host"、 "mail.tdb.com"); props.setProperty( "mail.smtp.from"、 "[email protected]"); props.setProperty( "mail.smtp.fromname"、 "tdbvc"); //メールサーバーセッションMailConnection = session.getInstance(props、null)と通信するプログラムを作成します。メッセージmsg = new Mimemessage(MailConnection); //送信者と受信者アドレス送信者を設定= new InternetAddress(props.getProperty( "mail.smtp.from")); //複数の受信者msg.setfrom(sender); <internetAddress> touserSet = new Hashset <InternetAddress>(); //メールボックスの有効性の検証}} msg.setRecipients(message.recipientType.to、touserset.toarray(new InternetAddress [0])); // cc if(copyto!= null){set <internetAddress> copyTousERSet = new Hashset <InternetAddress>(); //(int i = 0; i <copyto.length; i ++){if(copyto [i] .trim()。matches( "^// w+([ - +。] // w+)*@// w+([。] // w+)+$"))for(copyto [i] .trim()。 }} // msg.setRecipients(message.recipientType.cc、(address [])internetAddress.parse(copyto)); msg.setRecipients(message.recipientType.cc、copytouserset.toarray(new InternetAddress [0])); } //電子メールの件名を設定しますmsg.setsubject(mimeutility.encodetext(subject、 "utf-8"、 "b")); //中国語の文字盤のコード問題//電子メールコンテンツの設定ボディパートmessagebodybodypart = new MimeBodyPart(); messageBodyPart.setContent(content、 "text/html; charset = utf-8"); //中国のマルチパートMultiPart = new Mimemultipart(); MultiPart.AddBodyPart(MessageBodyPart); msg.setContent(MultiPart); / *************************************/ if(attbody!= null){string [] filepath = attbody.split( ";"); for(string filepath:filepath){//文字の添付ファイルを設定します(ローカルマシンのファイルを添付ファイルとして使用します)bodypart mdp = new mimebodypart(); filedatasource fds = new filedatasource(filepath); DataHandler DH =新しいDataHandler(FDS); mdp.setfileName(mimeutility.encodetext(fds.getName())); MDP.SetDatahandler(DH); MultiPart.AddBodyPart(MDP); } // mtpをメッセージオブジェクトのコンテンツとして配置しますmsg.setContent(MultiPart); }; if(attbodys!= null){for(string filepath:attbodys){//文字の添付ファイルを設定します(ローカルマシンのファイルを添付ファイルとして使用)bodypart mdp = new mimebodypart(); filedatasource fds = new filedatasource(filepath); DataHandler DH =新しいDataHandler(FDS); mdp.setfileName(mimeutility.encodetext(fds.getName())); MDP.SetDatahandler(DH); MultiPart.AddBodyPart(MDP); } // mtpをメッセージオブジェクトのコンテンツとして配置しますmsg.setContent(MultiPart); }; /*********************************************////電子メールをストレージfirst msg.savechanges(); system.out.println( "メールを送信...");輸送転送= MailConnection.getTransport(Props.getProperty( "Mail.Protocal")); //メールサーバー名、ユーザー名、パスワードtrans.connect(props.getProperty( "mail.smtp.host")、props.getProperty( "mail.user")、props.getProperty( "mail.pass")); trans.sendmessage(msg、msg.getallrecipients()); System.out.println( "メールを正常に送信!"); //チャネルを閉じるif(trans.isconnected()){trans.close(); } trueを返します。 } catch(Exception e){System.err.println( "email Send Failed!" + e); falseを返します。 }最後に{}} //送信者、受信者、および返信所有者には、電子メールに中国語のコードが入っています、RESは取得されたアドレスです// httpのデフォルトエンコードメソッドは中国語を含むアドレスを送信するためのISO8859_1 //です。 GetChineseFrom(String Res){string from = res; try {if(from.startswith( "=?gb")|| from.startswith( "=?gb")|| from.startswith( "=?utf")){from = mimeutility.decodetext(from); } else {from = new String(from.getBytes( "iso8859_1")、 "gbk"); }} catch(例外e){e.printstacktrace(); }から戻ります。 } // public static string tochinese(string strvalue)をエンコードするgbkに変換{try {if(strvalue == null)return null; else {strvalue = new String(strvalue.getBytes( "iso8859_1")、 "gbk"); strvalueを返します。 }} catch(例外e){return null; }} public static void main(string [] args){電子メールemail = new Email(); email.setRecievers(new String [] {"[email protected]"}); email.setsubject( "テストテスト"); email.setContent( "テストテスト"); sendmail(email); }}要約します
上記は、この記事のコンテンツ全体です。この記事の内容には、すべての人の研究や仕事に特定の参照値があることを願っています。ご質問がある場合は、メッセージを残してコミュニケーションをとることができます。 wulin.comへのご支援ありがとうございます。