ما هو الحذاء الربيعي
SPRING BOOT هو إطار عمل مصمم لتبسيط تكوين البناء الأولي وعملية تطوير تطبيقات الربيع. يستخدم هذا الإطار أساليب تكوين محددة ، بحيث لا يحتاج المطورون إلى تحديد تكوينات Boilerplate.
فوائد الحذاء الربيعي
1. التكوين البسيط ؛
2. تشفير بسيط.
3. النشر البسيط ؛
4. مراقبة بسيطة ؛
ملخص
يعمل Spring Boot على دمج خادم البريد ، ويمكن أن يحقق استخدام SPRING BOOT إرسال بريد إلكتروني بسهولة ؛ فرز البريد الإلكتروني الأخير والاحتياطات الخاصة بـ Spring Boot ؛
تبعيات حزمة Maven
<Rependency> <roupiD> org.springframework.boot </rougiD> <intifactid> spring-boot-starter-mail </intifactid> </perendency>
تكوين الحذاء الربيعي
spring.mail.host = smtp.servie.comspring.mail.username = اسم المستخدم // عنوان البريد الإلكتروني للمرسل spring.mail.password = password // for qq mailbox ، تشير كلمة المرور إلى رمز ترخيص المرسل spring.mail.properties.mail.smtp.auth = trurepring.mail.propisties #لتمكين ناقل الحركة المشفر استخدام عنصر التحقق من البروتوكول spring.mail.properties.mail.smtp.starttls.required = fasle #ما إذا كان لتمكين الإرسال المشفر استخدام عنصر التحقق من البروتوكول spring.mail.password.
تنفيذ رمز الربيع
package com.dbgo.webservedemo.email ؛ استيراد org.springframework.beans.factory.annotation. org.springframework.mail.javamail.mimemessageHelper ؛ استيراد org.springframework.stereotype.component ؛ استيراد javax.mail.messaging Javamailsender Javamailsender ؛ void public sendSimplemail () {mimemessage message = null ؛ حاول {message = javamailsender.createmimemessage () ؛ MimemessageHelper Helper = جديد mimemessageHelper (رسالة ، صواب) ؛ helper.setfrom ("[email protected]") ؛ helper.setto ("[email protected]") ؛ Helper.SetSubject ("العنوان: إرسال HTML Content") ؛ StringBuffer SB = New StringBuffer () ؛ sb.append ("<h1> title-H1 </h1>") .append ("<p style = 'color:#f00'> word red </p>") .Append ("<p style = 'text-align: right'> right </p>) ؛ helper.settext (sb.toString () ، true) ؛ FileSystemResource fileSystemResource = new FileSystemResource (ملف جديد ("D: /76678.pdf")) Helper.addattachment ("الفاتورة الإلكترونية" ، FilesystemResource) ؛ javamailsender.send (رسالة) ؛ } catch (messagingException e) {E.PrintStackTrace () ؛ }}}إرسال رسائل بريد إلكتروني تحت الحذاء غير الربيع:
تبعيات حزمة Maven
<ependencies> <Rependency> <roupiD> com.sun.mail </groupId> <intifactid> javax.mail </artifactId> <الإصدار> 1.5.2 </version> </respency> </reperence>
مثال رمز DEMO1
package com.justin.framework.core.utils.email ؛ استيراد java.io.file ؛ استيراد java.io.fileInputStream ؛ استيراد java.io.filenotfoundexception ؛ java.util.date ؛ import java.util.properties ؛ import javax.activation.datahandler ؛ import javax.activation.datasource ؛ import javax.activation.filedatasource javax.mail.message.recipienttype ؛ import javax.mail.message.recipienttype ؛ import javax.mail.messagingexception ؛ import javax.mail.passworderauthentication javax.mail.internet.mimebodypart ؛ import javax.mail.internet.mimemessage ؛ import javax.mail.internet.mimemultipart ؛ import javax.mail.internet.mimeutility ؛/*** استخدم protocol smtp لإرسال بريد إلكتروني*/public sendemailcode { // SMTP Mail Server Private Final Static string = "mail.tdb.com" ؛ // SMTP Mail Server Port Private Final Static String Port = "25" ؛ // ما إذا كنت تريد المصادقة السلسلة الثابتة النهائية الخاصة IS_AUTH = "TRUE" ؛ // ما إذا كان لتمكين وضع التصحيح (تمكين وضع التصحيح لطباعة رسالة الاستجابة للسؤال والإجابة عندما يتفاعل العميل والخادم) سلسلة ثابتة خاصة IS_ENABD_DEBUG_MOD = "TRUE" ؛ // Sender Private Static String from = "[email protected]" ؛ // المتلقي سلسلة ثابتة خاصة إلى = "[email protected]" ؛ سلسلة ثابتة خاصة sendusername = "[email protected]" ؛ سلسلة ثابتة خاصة SendUserPwd = "New*2016" ؛ . ثابت {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) ؛ } / *** أرسل بريدًا نصيًا بسيطًا* / SendTextEmail الثابت العام (سلسلة إلى ، رمز int) يلقي الاستثناء {try {// إنشاء جلسة كائن جلسة الجلسة 1 = session.getDefaultInstance (الدعائم) ؛ // إنشاء رسالة مثيل mimemessage mimemessage = mimemessage جديد (الجلسة 1) ؛ // قم بتعيين message.setfrom (New InternetAddress (من)) ؛ // قم بتعيين رسالة موضوع البريد الإلكتروني. setsubject ("رمز التحقق من محرك الاحتراق الداخلي") ؛ // قم بتعيين message.setRecipient المستلم (recientType.to ، new InternetAddress (to)) ؛ // قم بتعيين Message.SetSentDate (New Date ()) ؛ // قم بتعيين محتوى النص العادي على رسالة نصية البريد الإلكتروني. // حفظ وإنشاء رسالة بريد إلكتروني نهائية. savechanges () ؛ // احصل على نقل كائن النقل النقل = session1.getTransport () ؛ // افتح connection transport.connect ("meijiajiang2016" ، "") ؛ // تمرير كائن الرسالة إلى كائن النقل وأرسل الرسالة إلى Out Transport.SendMessage (message ، message.getAllRecipients ()) ؛ // أغلق اتصال connection.close () ؛ العودة صحيح. } catch (استثناء e) {E.PrintStackTrace () ؛ العودة كاذبة }} public static void main (string [] args) rems {sendhtmlemail ("[email protected]" ، 8888) ؛ } / *** أرسل بريدًا إلكترونيًا بسيطًا html* / SendHtmleMail الثابت العام (سلسلة إلى ، رمز int) يلقي استثناء {// إنشاء جلسة كائن مثيل الجلسة 1 = session.getInstance (الدعائم ، myauthenticator () جديدة) ؛ // إنشاء رسالة مثيل mimemessage mimemessage = mimemessage جديد (الجلسة 1) ؛ // قم بتعيين رسالة موضوع البريد الإلكتروني. SetSubject ("تسجيل محرك الاحتراق الداخلي") ؛ // set sender message.setfrom (new InternetAddress (from)) ؛ // SET SEND TIME MATEGENT.SETSENTDATE (NEW DATE ()) ؛ // تعيين message.setRecipients (recientType.to ، InternetAddress.parse (إلى)) ؛ . style = '' order ، </p> style = abourse ondent: 2em 'أنت تسجل حساب احتراق داخلي. المجتمع </p> </viv> "،" text/html ؛ charset = utf-8 ") ؛ // قم بتعيين سلسلة لقب المرسل المخصصة nick = "" ؛ حاول {nick = javax.mail.internet.mimeutility.encodetext ("جمعية محرك الاحتراق الداخلي الصين") ؛ } catch (UnsupportedEncodingException e) {E.PrintStackTrace () ؛ } message.setFrom (new InternetAdDress (nick+"<"+from+">")) ؛ // حفظ وإنشاء رسالة بريد إلكتروني نهائية. savechanges () ؛ // إرسال بريد إلكتروني ، حاول {transport.send (message) ؛ العودة صحيح. } catch (استثناء e) {E.PrintStackTrace () ؛ العودة كاذبة }} / *** إرسال بريد html مع صور مضمنة* / public static void sendhtmlwithInnerImageEmail () يلقي MessagingException {// إنشاء جلسة كائن مثيل الجلسة = Session.getDefaultinstance (الدعائم ، myauthenticator () جديدة) ؛ // إنشاء رسالة محتوى البريد الإلكتروني mimemessage = new mimemessage (الجلسة) ؛ // موضوع البريد ، وحدد رسالة تنسيق الترميز. // sender message.setfrom (New InternetAddress (from)) ؛ // message. // cc message.setRecipient (recientType.cc ، New InternetAddress ("[email protected]")) ؛ // Secret Send (لم يتم عرضه في قائمة مستلمي البريد الإلكتروني) message.setRecipient (recientType.BCC ، New InternetAddress ("[email protected]")) ؛ // إرسال message.setsentDate (تاريخ جديد ()) ؛ // إنشاء كائن mimemultipart مع نوع فرعي MIME "ذي الصلة" mimemultipart mp = new mimemultipart ("ذات الصلة") ؛ // إنشاء كائن mimebodypart يمثل الجسم وأضفه إلى كائن mimemultipart الذي تم إنشاؤه في وقت سابق mimebodypart htmlpart = new mimebodypart () ؛ mp.addbodypart (htmlpart) ؛ // إنشاء كائن mimebodypart يمثل موارد الصورة وأضفه إلى كائن mimemultipart الذي تم إنشاؤه في وقت سابق mimebodypart imagepart = new mimebodypart () ؛ mp.addbodypart (ImagePart) ؛ // قم بتعيين كائن mimemultipart على محتوى message.setContent (mp) ؛ // قم بتعيين مصدر بيانات جسم البريد المدمج DS = جديد FileDataSource (ملف جديد ("Resource/Firefoxlogo.png")) ؛ Datahandler DH = New Datahandler (DS) ؛ ImagePart.setDatahandler (DH) ؛ ImagePart.setContentId ("Firefoxlogo.png") ؛ // قم بتعيين رقم المحتوى لاستخدامه في مراجع جسم البريد الأخرى // إنشاء كائن mimemultipart مع نوع فرعي MIME "بديل" ويكون بمثابة محتوى البريد الإلكتروني لكائن HTMLPART الذي تم إنشاؤه في وقت سابق mimemultipart htmlmultipart = new mimemultipart ("البديل") ؛ // إنشاء كائن mimebodypart يمثل HTML Body 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) ؛ // حفظ وإنشاء رسالة بريد إلكتروني نهائية. savechanges () ؛ // إرسال mail transport.send (message) ؛ } / *** أرسل رسالة HTML كاملة مع صور مضمنة ، ومرفقات ، ومستلمين متعددين (عرض اسم صندوق البريد) ، وأولوية البريد الإلكتروني ، وقراءة إيصال* / public static void sendmultipleemail () يلقي استثناء {String charset = "utf-8" ؛ . // إنشاء رسالة مثيل mimemessage mimemessage = جديد mimemessage (الجلسة) ؛ // قم بتعيين رسالة الموضوع. // SET Sender Message.setFrom (New InternetAddress (من ، "Sina Test Email" ، Charset)) ؛ // تعيين message. InternetAddress ("[email protected]" ، "li si_163" ، charset) ،}) ؛ // set cc message.setRecipient (recientType.cc ، new InternetAddress ("[email protected]" ، "Wang wu_gmail" ، charset)) ؛ // set secret message.setRecipient (recientType.BCC ، New InternetAddress ("[email protected]" ، "Zhao liu_qq" ، charset)) ؛ // SET SEND TIME MATEGENT.SETSENTDATE (NEW DATE ()) ؛ // قم بتعيين المرجع (يتم إعطاء المستلم الافتراضي عندما يستجيب المستلم إلى هذا البريد الإلكتروني) message.setReplyto (InternetAddress.parse ("/" " + mimeutility.encodetext (" tian qi ") +"/"<[email protected]>")) ؛ . // اطلب إيصال القراءة (سيطالب المستلم المرسل بالرد عند قراءة البريد الإلكتروني ، مما يشير إلى أن البريد الإلكتروني قد تم استلامه وتم قراءته) message.Setheader ("التصرف إلى" ، من) ؛ // قم بإنشاء كائن mimemultipart مع نوع فرعي MIME "مختلط" ، مما يشير إلى أن هذا هو نوع البريد الإلكتروني المختلط mimemultipart mailcontent = new mimemultipart ("mixed") ؛ message.setContent (mailcontent) ؛ // المرفق mimeBodyPart include1 = new mimebodypart () ؛ mimebodypart include2 = new mimebodypart () ؛ // content mimebodypart mailbody = new MimebodyPart () ؛ // إضافة مرفق ومحتوى إلى mailcontent.addbodypart mailcontent.addbodypart (إرفاق 1) ؛ MailContent.AddbodyPart (excens2) ؛ MailContent.AddbodyPart (MailBody) ؛ // المرفق 1 (استخدم إطار عمل JAF لإنشاء جسم البريد) DataSource DS1 = FileDataSource جديد ("Resource/Earth.bmp") ؛ Datahandler DH1 = New Datahandler (DS1) ؛ include1.setFilename (mimeutility.encodetext ("Earth.bmp")) ؛ include1.setDatahandler (DH1) ؛ // المرفق 2 DataSource DS2 = FileDataSource جديد ("Resource/How to Learn C Language Well.txt") ؛ Datahandler DH2 = New Datahandler (DS2) ؛ ancles2setDatahandler (DH2) ؛ include2.setFilename (mimeutility.encodetext ("كيفية تعلم لغة c well.txt")) ؛ // جسم البريد الإلكتروني (صورة مضمنة + نص html) mimemultipart body = new mimemultipart ("ذات الصلة") ؛ // هيئة البريد الإلكتروني هي أيضًا مزيج ، ويجب تحديد علاقة الجمع mailbody.setContent (الجسم) ؛ // يتكون جسم البريد الإلكتروني من HTML والصور mimebodypart imgpart = new MimebodyPart () ؛ mimebodypart htmlpart = new mimebodypart () ؛ body.addbodypart (imgpart) ؛ body.addbodypart (htmlpart) ؛ // نص صورة بيانات DS3 = FileDataSource جديد ("Resource/Firefoxlogo.png") ؛ Datahandler DH3 = New Datahandler (DS3) ؛ imgpart.setdatahandler (DH3) ؛ imgpart.setContentId ("firefoxlogo.png") ؛ // html email content mimemultipart htmlmultipart = new mimemultipart ("alternative") ؛ htmlpart.setContent (htmlmultipart) ؛ mimebodypart htmlContent = new mimebodypart () ؛ htmlcontent.setContent ("<span style = 'color: red'> هذا هو البريد الإلكتروني الذي أرسلته مع java mail بنفسي! htmlmultipart.addbodypart (htmlcontent) ؛ // احفظ محتوى الرسالة وتعديل message.savechanges () ؛ /*file emml = buildEmlfile (message) ؛ SendMailforeml (EML) ؛*/ // Send Mail Transport.send (Message) ؛ }/*** قم بإنشاء ملف EML إلى محتوى البريد الإلكتروني* Param Message Content*/public static file buildemlfile (رسالة رسالة) يلقي MessagingException ، fileNotfoundException ، ioException {file file = new file ("c: //" + mimeutility.decodetext (message.getsubject ()) + ". eml") ؛ message.writeto (FileOutputStream (ملف جديد) ؛ ملف الإرجاع ؛ } / *** أرسل ملف بريد إلكتروني تم إنشاؤه محليًا* / public static void sendmailforeml (file emml) يلقي استثناء {// الحصول على جلسة جلسة بريد إلكتروني = session.getInstance (الدعائم ، myauthenticator () جديدة) ؛ // احصل على محتوى البريد الإلكتروني ، أي ملف EML الذي تم إنشاؤه قبل حدوثه هو inputStream = جديد fileInputStream (EML) ؛ mimemessage message = new mimemessage (الجلسة ، IS) ؛ // إرسال البريد الإلكتروني transport.send (message) ؛ } / *** إرسال معلومات المصادقة إلى خادم البريد* / الفئة الثابتة myauthenticator يمتد Authenticator {private username = "" ؛ Private String Password = "" ؛ public myauthenticator () {super () ؛ this.password = sendUserPwd ؛ this.username = sendusername ؛ } myauthenticator العامة (اسم المستخدم سلسلة ، كلمة مرور السلسلة) {super () ؛ this.username = اسم المستخدم ؛ this.password = كلمة المرور ؛ } OverRide محمي passwordauthentication getPasswordAuthentication () {إرجاع كلمة مرور جديدة (اسم المستخدم ، كلمة المرور) ؛ }}}DEMO2 رمز مثال:
package com.justin.framework.core.utils.email ؛ استيراد java.util.hashset ؛ استيراد java.util.properties ؛ استيراد java.util.set ؛ استيراد javax.activation.datahandler javax.mail.message ؛ import javax.mail.multipart ؛ import javax.mail.session ؛ import javax.mail.transport ؛ import javax.mail.internet.internetaddress ؛ import javax.mail.internet.internet.mimeBart ؛ javax.mail.internet.mimemultipart ؛ import javax.mail.internet.mimeutility ؛ public class mailmanagerUtils {// إرسال بريد إلكتروني إلى SendMail static boolean (البريد الإلكتروني) content string = email.getContent () ؛ String [] Recruits = email.getRecievers () ؛ String [] Copyright = email.getCopyto () ؛ attbody string = email.getattbody () ؛ String [] attbodys = email.getattbodys () ؛ if (recievers == null || collecters.length <= 0) {return false ؛ } جرب {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") ؛ // قم بإنشاء برنامج للتواصل مع Mail Server Session MailConnection = session.getInstance (الدعائم ، فارغة) ؛ رسالة msg = mimemessage جديدة (MailConnection) ؛ // SET Sender و Rective Address Sender = New InternetAddress (props.getProperty ("mail.smtp.from")) ؛ // متعددة متلقي msg.setfrom (المرسل) ؛ SET <NethereAddress> touserset = new hashset <NethERADDRESS> () ؛ // التحقق من صحة صندوق البريد لـ (int i = 0 ؛ i <استقبال. }} msg.setRecipients (message.recipienttype.to ، touserset.toarray (new InternetAddress [0])) ؛ // set cc if (copyto! = null) {set <NethereAddress> sopletouserset = new hashset <NethereadDress> () ؛ // صحة البريد الإلكتروني صالحة لـ (int i = 0 ؛ i <copyto.length ؛ i ++) {if (copyto [i] .trim (). matches ("^// w+([-+.] // w+)*@// w+([-.] // w+)+$")) }} // msg.setRecipients (message.recipienttype.cc ، (address []) InternetAddress.Parse (copyto)) ؛ msg.setRecipients (message.recipienttype.cc ، copletouserset.toarray (New InternetAddress [0])) ؛ } // قم بتعيين موضوع البريد الإلكتروني msg.setsubject (mimeutility.encodetext (الموضوع ، "UTF-8" ، "B")) ؛ // مشكلة رمز مشتعلة الصينية // قم بتعيين بريد إلكتروني محتوى podypart messageBodyPart = جديد mimebodypart () ؛ MessageBodyPart.setContent (المحتوى ، "Text/Html ؛ charset = utf-8") ؛ // multipart الصينية multipart = new mimemultipart () ؛ multipart.addbodypart (messageBodyPart) ؛ msg.setContent (multipart) ؛ / ***************************************/ if (attbody! = null) {string [] filePath = attbody.split ( لـ (String filepath: filepath) {// قم بتعيين مرفق الحرف (استخدم الملف على الجهاز المحلي كجهاز مرفق) mdp = new mimebodypart () ؛ FileDataSource FDS = FileDataSource جديد (FilePath) ؛ Datahandler DH = New 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) {// قم بتعيين مرفق الحرف (استخدم الملف على الجهاز المحلي باعتباره المرفق) mdp = new mimebodypart () ؛ FileDataSource FDS = FileDataSource جديد (FilePath) ؛ Datahandler DH = New Datahandler (FDS) ؛ MDP.SetFilename (mimeutility.encodetext (fds.getName ())) ؛ MDP.SetDatahandler (DH) ؛ multipart.addbodypart (MDP) ؛ } // وضع MTP كمحتوى لكائن الرسالة msg.setContent (multipart) ؛ } ؛ /******************************سك 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 () ؛ } إعادة صواب ؛ } catch (استثناء e) {system.err.println ("فشل إرسال البريد الإلكتروني!" + e) ؛ العودة كاذبة } أخيرًا {}} // المرسل ، المستلم ، وحامل الرد قام بتشويش الكود الصيني في البريد الإلكتروني ، و RES هو العنوان الذي تم الحصول عليه // طريقة الترميز الافتراضية لـ http هي ISO8859_1 // لإرسال عناوين تحتوي على صينية ، استخدم mimeutility.decodetex method for Opan getChineseFrom (String Res) {String from = res ؛ حاول {if (from.startswith ("=؟ gb") || from.startswith ("=؟ gb") || from.startswith ("=؟ utf")) {from = mimeutility.decodetext (من) ؛ } آخر {from = new string (from.getBytes ("ISO8859_1") ، "GBK") ؛ }} catch (استثناء e) {E.PrintStackTrace () ؛ } العودة من ؛ }. else {strvalue = new string (strvalue.getBytes ("iso8859_1") ، "gbk") ؛ إرجاع strvalue ؛ }} catch (استثناء e) {return null ؛ }} public static void main (string [] args) {email email = new email () ؛ Email.setRecievers (سلسلة جديدة [] {"[email protected]"}) ؛ البريد الإلكتروني. setsubject ("اختبار اختبار") ؛ البريد الإلكتروني. SendMail (البريد الإلكتروني) ؛ }}لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.