Что такое весенний ботинок
Spring Boot - это структура, предназначенная для упрощения начальной конструктивной конфигурации и процесса разработки пружинных приложений. В этой структуре используются конкретные методы конфигурации, так что разработчикам не нужно определять конфигурации шаблона.
Преимущества весеннего ботинка
1. Простая конфигурация;
2. Простое кодирование;
3. Простое развертывание;
4. Простой мониторинг;
Обзор
Spring Boot интегрирует почтовый сервер, и с помощью Spring Boot может легко достичь отправки по электронной почте; Сортируйте недавнюю отправку электронной почты и меры предосторожности для весенней загрузки;
Maven пакетные зависимости
<Depective> <groupId> org.springframework.boot </GroupId> <artifactid> Spring-Boot-Starter-mail </artifactid> </dependency>
Конфигурация пружинной загрузки
spring.mail.host = smtp.servie.comspring.mail.username = username // Адрес электронной почты отправителя Spring.mail.password = пароль // Для QQ почтовый ящик пароль относится к коду разрешения отправителя. #Будь то, чтобы включить зашифрованную передачу используйте элемент проверки протокола Spring.mail.properties.mail.smtp.starttls.required = fasle #Будь то, чтобы включить зашифрованную передачу, используйте протокол Verifice Pitor Spring.mail.password - это код авторизации, который необходимо создать в настройках почтового панели, который не является реальным паролем.
Реализация весеннего кода
Пакет com.dbgo.webservedemo.email; import org.springframework.beans.factory.annotation.autowired; import org.springframework.core.io.filesystemresource; импорт org.springframework.mavamail.javamailsund; org.springframework.mail.javamail.mememessagehelper; import org.springframework.stereotyle.component; импорт javax.mail.messagingexception; импорт javax.mail.internet.mimemessage; импорт java.io.file; Javamailsender; public void sendsImplemail () {mimemessage message = null; try {message = javamailsender.creatememessage (); MimemessageHelper Helper = new MimemessageHelper (сообщение, True); helper.setfrom ("[email protected]"); helper.setto ("[email protected]"); helper.setsubject ("Название: отправить контент HTML"); StringBuffer sb = new StringBuffer (); sb.append ("<h1> Большой заголовок-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 FileSystemResource (New File ("D: /76678.pdf")) helper.addattachment ("Электронный счет", файловая инстанция); javamailsender.send (сообщение); } catch (messagingException e) {e.printstackTrace (); }}}Отправить электронные письма в разделе «Не-пресс»:
Maven пакетные зависимости
<depertiendions> <dependency> <groupid> com.sun.mail </groupid> <artifactid> javax.mail </artifactid> <sersive> 1.5.2 </version> </dependency> </depertive>
ДЕМО1 КОД ПРИМЕР
пакет com.justin.framework.core.utils.email; импорт java.io.file; импорт java.io.fileinputstream; импорт java.io.filenotfoundexception; import java.io.fileoutputstream; import java.io.ioexception; импорт java.inputstream; import.unceppcepece.unceppection; import.Inpextream; Import.On -outppectioned; java.util.date; import java.util.properties; импорт javax.activation.datahandler; импорт javax.activation.datasource; импорт javax.activation.fileDataSource; импорт javax.mail.messress; импорт javax.mail.authenticator; import javax.message; javax.mail.message.recipienttype; импорт javax.mail.message.recipienttype; import javax.mail.messagingexception; импорт javax.mail.passwordAuthentication; импорт javax.mail.session; импорт javax.mail.transport; javax.mail.internet. javax.mail.internet.mimebodypart; import javax.mail.internet.mimemessage; импорт javax.mail.internet.miMultipart; импорт javax.mail.internet.mimeUtility;/*** Использовать SMTP Protocol для отправки электронной почты*/public class sendemailcode {/email Отправить Protocol String Protecol для отправки Email*/public class sendemailcode {/email Отправить ProtOcol Strings Protecol Protecol Protecol. // SMTP Mail Server Private Final Static String Host = "mail.tdb.com"; // SMTP почтовой сервер по умолчанию порт частный окончательный статический строки port = "25"; // требует ли аутентификация частная окончательная статическая строка is_auth = "true"; // Будь то включить режим отладки (включить режим отладки для печати ответного сообщения вопроса и ответа, когда клиент и сервер взаимодействуют) Приватная конечная статическая строка is_enabled_debug_mod = "true"; // отправитель частной статической строки от = "[email protected]"; // получатель частной статической строки по = "[email protected]"; частная статическая строка sendusername = "[email protected]"; частная статическая строка sendUserpwd = "new*2016"; // Инициализировать информацию о сеансе, подключенную к почтовому серверу частные статические свойства ops = 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", порт); props.setproperty ("mail.smtp.auth", is_auth); // в зависимости от ситуации, props.setproperty ("mail.debug", is_enabled_debug_mod); } / *** Отправить простую текстовую почту* / public static boolean sendtextemail (string to, int code) throws exception {try {// Создание объекта сеанса сеанса сеанса сеанса1 = session.getDefaultInstance (ops); // Создать Mimemessage Encement Object Mymemessage Message = new Mimemessage (Session1); // Установить сообщение отправителя.setFrom (new InternetAddress (от)); // Установите сообщение о предмете электронной почты.setsubject («Код проверки регистрации двигателя внутреннего сгорания»); // Установить сообщение получателя. SetRecipient (receientType.to, new InternetAddress (to)); // Установить время отправки. // Установите простой текстовый содержимое в текстовое сообщение электронной почты. Settext («Ваш код проверки:«+code+»! Код проверки действителен в течение 10 минут. Пожалуйста, повторьте его после истечения срока его действия! // Сохранить и генерировать окончательное сообщение содержимого электронной почты .saveChanges (); // Получить транспортный экземпляр объекта транспорта = session1.getTransport (); // открыть соединение транспортировки.connect ("meijiajiang2016", ""); // Передайте объект сообщения в транспортный объект и отправить сообщение Transport.sendmessage (message, message.getallRecipents ()); // закрыть соединение транспортировка.close (); вернуть истину; } catch (Exception e) {e.printstackTrace (); вернуть ложь; }} public static void main (string [] args) бросает исключение {sendhtmlemail ("[email protected]", 8888); } / *** Отправить простое html электронное письмо* / public static boolean sendhtmlemail (string to, int code) throws exection {// Создание экземпляра сеанса сеанс сеанса1 = session.getInstance (реквизит, новый myAuthenticator ()); // Создать Mimemessage Encement Object Mymemessage Message = new Mimemessage (Session1); // Установить сообщение предмета электронной почты. // Установить сообщение отправителя.setFrom (New InternetAddress (из)); // Установить отправку времени сообщением.setsentDate (new Date ()); // Установить сообщение получателя. SetRecipients (ReceientType.to, InternetAddress.parse (to)); // Установите HTML-контент в корпус электронной почты, укажите тип MIME TO TEXT/HTML-тип и укажите кодирование символов как GBK Message.SetContent ("<div Style = 'Ширина: 600px; Margin: 0 Auto'> <H3 Style = 'Color:#003E64; Text-Align: Center;'> Внутренняя версия рецепта код Согласительной версии. Уважаемый пользователь: </p> <p style = 'text-indent: 2em'> Вы регистрируете учетную запись внутреннего сжигания. Общество </p> </div> "," text/html; charset = utf-8 "); // Установить настраивательную шнурную строку отправителя nick = ""; try {nick = javax.mail.internet.mimeUtility.encodetext ("Общество двигателей внутреннего сгорания Китая"); } catch (unsupportEncodingexception e) {e.printstacktrace (); } message.setFrom (новый интернет -аддресс (nick+"<"+from+">")); // Сохранить и генерировать окончательное сообщение содержимого электронной почты .saveChanges (); // Отправить электронную почту try {transport.send (message); вернуть истину; } catch (Exception e) {e.printstackTrace (); вернуть ложь; }} / *** Отправить html mail со встроенными изображениями* / public static void sendhtmlwithinnerimageemail () Throws MessagingException {// Создание экземпляра сеанса сеанса Session = session.getDefaultInstance (ops, new MyAuthenticator ()); // Создание контента электронной почты MimeMessage Message = new Mimemessage (Session); // отправляйте предмет и укажите сообщение о формате кодирования. // Сообщение отправителя.setFrom (New InternetAddress (от)); // Сообщение получателя.setRecipients (receientType.to, InternetAddress.parse (to)); // cc message.setRecipient (receenttype.cc, new InternetAddress ("[email protected]")); // секретная отправка (не отображается в списке получателей электронной почты) Message.setRecipient (receentType.bcc, New InternetAddress ("[email protected]")); // Отправить время сообщения. // Создать объект 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 в содержимое всего сообщения сообщения. SetContent (mp); // Установить встроенное изображение почтового тела DataSource ds = new FileDataSource (новый файл ("ресурс/firefoxlogo.png")); DataHandler DH = новый DataHandler (DS); ImagePart.SetDataHandler (DH); imagepart.setContentId ("firefoxlogo.png"); // Установить номер контента для использования для других ссылок на корпус почты // Создать объект MiMemultiPart с подтипом MIME «альтернатива» и служить содержанием электронной почты объекта HTMLPART, созданного ранее MiMemultipart htmlmultipart = new MiMemultipart («Alternative»); // Создать объект MimeBodyPart, представляющий HTML Body MimeBodyPart htmlbodypart = new MimeBodyPart (); // где cid = androidlogo.gif - это изображение внутри эталонного сообщения, то есть imagepart.setContentId ("androidlogo.gif"); Метод htmlbodypart.setContent ("<<span style = 'color: red;'> Это электронное письмо HTML со встроенными изображениями !!! htmlmultipart.addbodypart (htmlbodypart); htmlpart.setContent (htmlmultipart); // Сохранить и генерировать окончательное сообщение содержимого электронной почты .saveChanges (); // отправить почту transport.send (сообщение); } / *** Отправить полное HTML-сообщение со встроенными изображениями, вложениями, несколькими получателями (отображающим имя почтового ящика), приоритетом электронной почты и квитанцией по чтению* / public static void sendmultipleemail () выбросит исключение {string charset = "utf-8"; // указать китайский формат кодирования // Создать сеанс объекта сеанса сеанса сеанса = session.getInstance (ops, new MyAuthenticator ()); // Создать Mimemessage Encement Object Momemessage message = new Mimemessage (Session); // Установить тематическое сообщение.setsubject («Используйте Javamail для отправки смешанного комбинированного теста почты»); // Установить сообщение отправителя.setFrom (New InternetAddress (от "Sina Test Email", charset)); // Установить сообщение получателя. SetRecipients (ReceientType.to, новый адрес [] {// Параметр 1: Адрес электронной почты, параметр 2: Имя (только имя отображается в получении клиента, а не адрес электронной почты), параметр 3: Название китайского строкового кодирования. InternetAddress ("[email protected]", "li si_163", charset),}); // Установить cc message.setRecipient (receenttype.cc, new InternetAddress ("[email protected]", "wang wu_gmail", charset)); // Установить секретное сообщение.setRecipient (ReceientType.bcc, New InternetAddress ("[email protected]", "Zhao Liu_QQ", charset)); // Установить отправку времени сообщением.setsentDate (new Date ()); // Установите ответчик (получатель по умолчанию дается, когда получатель отвечает на это электронное письмо). SetReplyTo (InternetAddress.parse ("/" " + mimeUtility.encodetext (" tian Qi ") +"/"<[email protected]>")); // Установить приоритет (1: экстренная помощь 3: нормальный 5: low) message.setheader ("x-priority", "1"); // Запросить квитанцию о чтении (получатель побудит отправителя ответить при чтении электронного письма, указывая, что электронное письмо было получено и было прочитано). // Создать объект MiMemultIpart с подтипом MIME «смешанный», указывающий, что это смешанный комбинационный тип электронной почты MiMemultipart mailContent = new MiMemultipart («Mixed»); message.setContent (mailContent); // Приложение MimeBodyPart attach1 = new MimeBodyPart (); Mimebodypart attach2 = new mimebodypart (); // Контент mimebodypart mailbody = new MimeBodyPart (); // Добавить вложение и контент в mail MailContent.adddypart (ATTH1); MailContent.AddBodyPart (Attact2); MailContent.AddBodyPart (MailBody); // Приложение 1 (используйте структуру JAF для генерации корпуса почты) DataSource ds1 = new filedatasource ("resource/arte.bmp"); DataHandler DH1 = новый DataHandler (DS1); attach1.setFileName (mimeUtility.encodetext ("arte.bmp")); attach1.setdatahandler (DH1); // Приложение 2 DATASOURCE DS2 = NEW FILEDATASOURCE («Ресурс/Как изучить язык C Well.txt»); DataHandler DH2 = новый DataHandler (DS2); Attach2.setDataHandler (DH2); ATTH2.SetFileName (mimeUtility.encodeText («Как изучить c Language 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 Text Image ds3 = new FileDataSource ("resource/firefoxlogo.png"); DataHandler DH3 = новый DataHandler (DS3); imgpart.setdatahandler (DH3); imgpart.setContentId ("firefoxlogo.png"); // HTML -контент по электронной почте miMemultipart htmlmultipart = new MiMemultipart («Альтернатива»); htmlpart.setContent (htmlmultipart); Mimebodypart htmlcontent = new MimeBodyPart (); htmlcontent.setContent ("<span style = 'color: red'> Это электронное письмо, которое я отправил с Java mail!" + "<img src = 'cid: firefoxlogo.png'/> </span>", "text/html; charset = gbk"); htmlmultipart.addbodypart (htmlcontent); // Сохранить содержимое сообщения и изменить message.savechanges (); /*File emml = buildemlfile (сообщение); sendmailforeml (eml);*/ // Отправить mail transport.send (сообщение); }/*** Сгенерировать файл EML в содержимое электронной почты* @param Содержание сообщения электронной почты*/public static file buildemlfile (сообщение сообщения) Throws MessagingException, filenotFoundException, ioException {file file = new File ("///" + mimeUtility.decodeText (message.getSubject () + ". Eml"); message.writeto (new FileOutputStream (file)); вернуть файл; } / *** Отправить локально сгенерированный файл электронной почты* / public static void sendmailforeml (file emml) throws exection {// Получить сеанс сеанса электронной почты = session.getInstance (реквизит, новый myAuthenticator ()); // Получить контент электронной почты, то есть файл EML, сгенерированный до того, как он произойдет, inputStream IS = new FileInputStream (EML); Mimemessage Message = new Mimemessage (Session, IS); // Отправить электронную почту Transper.send (сообщение); } / *** Отправить информацию об аутентификации на почтовый сервер* / статический класс MyAuthenticator Extends Authenticator {private String username = ""; "; Private String Password = ""; public myauthenticator () {super (); this.password = senduserpwd; this.username = sendusername; } public myAuthenticator (String username, String пароль) {super (); this.username = имя пользователя; this.password = пароль; } @Override защищенная пароль, getPasswordAuthentication () {return New PasswordAuthentication (имя пользователя, пароль); }}}Пример кода Demo2:
пакет com.justin.framework.core.utils.email; импорт java.util.hashset; import java.util.properties; import java.util.set; импорт javax.activation.datahandler; импорт javax.activation.filedatasource; импорт javax.mail.madress; импорт; javax.mail.message; import javax.mail.multipart; импорт javax.mail.session; импорт javax.mail.transport; импорт javax.mail.internet.internetaddress; импорт javax.mail.internet.mimebodypart; импорт javax.mail.Internet.mimeSessage; javax.mail.internet.miMultipart; import javax.mail.Internet.mimeUtility; открытый класс MailManagerUtils {// Отправить электронное письмо с общедоступным статическим логическим sendmail (электронная почта по электронной почте) {string subject = email.getSubject (); String Content = email.getContent (); String [] recuits = 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 (ops, null); Сообщение msg = new Mimemessage (MailConnection); // Установить отправитель и адрес -получатель sender = new InternetAddress (props.getProperty ("mail.smtp.from")); // несколько получателей msg.setfrom (отправитель); SET <NETOLITEADDRESS> touserset = new Hashset <InternetAddress> (); // Проверка валидности почтового ящика для (int i = 0; i <eceleivers.length; i ++) {if (recievers [i] .trim (). Matches ("^// w+([-+.] // w+)*@// w+([-.] // w+)+$")) {touserset.adddress (recievers (i). }} 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+)+$")) {copytouserset.addd (newardeDdress (i]. }} // msg.setRecipients (message.recipienttype.cc, (address []) InternetAddress.parse (copyto)); msg.setRecipients (message.recipienttype.cc, copytouserset.toarray (новый интернет -address [0])); } // Установить предмет электронной почты msg.setsubject (mimeUtility.encodetext (субъект, "UTF-8", "b")); // Китайская искаженная проблема с кодом // Установить контент электронной почты BodyPart MessageBodyPart = new MimeBodyPart (); messagebodypart.setContent (Content "Text/html; charset = utf-8"); // китайский Multipart Multipart = new MiMemultIpart (); multipart.addbodypart (MessageBodyPart); msg.setContent (Multipart); / ***************************** • для (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); }; /*********************************** • System.out.println («Электронная почта отправляется ......»); Transport Transfer = 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.getallrecipents ()); System.out.println («Отправить почту успешно!»); // ЗАКРЫТЬ канал if (trans.isconnected ()) {trans.close (); } вернуть true; } catch (Exception e) {System.err.println ("Отправить электронную почту!" + e); вернуть ложь; } наконец {}} // отправитель, получатель и держатель ответов имеют искаженное китайское код в электронном письме, Res - это полученный адрес // Метод кодирования по умолчанию HTTP ISO8859_1 // для отправки адресов, содержащих китайский, используйте метод mimeUtility.decodex // для других, конвертируйте адрес iso8859_1 inditex inditex inditex // publice inditex inditex // public getChinesefrom (String res) {string from = res; попробуйте {if (from.startswith ("=? gb") || from.startswith ("=? gb") || from.startswith ("=? Utf")) {from = mimeUtility.decodetext (from); } else {from = new String (from.getbytes ("iso8859_1"), "gbk"); }} catch (Exception e) {e.printstackTrace (); } возврат из; } // конвертировать в GBK, кодируя публичную статическую строку Tochinese (String Strvalue) {try {if (strvalue == null) return null; else {strvalue = new String (strvalue.getbytes ("iso8859_1"), "gbk"); вернуть Strvalue; }} catch (Exception e) {return null; }} public static void main (string [] args) {email email = new Email (); email.setRecievers (новая строка [] {"[email protected]"}); email.setsubject ("тест -тест"); email.setContent ("тест -тест"); Sendmail (электронная почта); }}Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи имеет определенную справочную ценность для каждого обучения или работы. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения. Спасибо за поддержку Wulin.com.