Was ist Spring Stiefel
Spring Boot ist ein Framework, mit dem die anfängliche Konfiguration und den Entwicklungsprozess von Federanwendungen zu vereinfachen. In diesem Framework werden bestimmte Konfigurationsmethoden verwendet, damit Entwickler keine Kesselplattenkonfigurationen definieren müssen.
Die Vorteile des Spring Stiefel
1. Einfache Konfiguration;
2. Einfache Codierung;
3. Einfacher Einsatz;
4. Einfache Überwachung;
Überblick
Spring Boot integriert einen Mailserver und die Verwendung von Spring Boot kann problemlos E -Mail -Senden erzielen. Sortieren Sie die jüngsten E -Mail -Senden und Vorsichtsmaßnahmen für Spring Start.
Maven -Paketabhängigkeiten
<Depopenty> <gruppe> org.springframework.boot </Groupid> <artifactId> Spring-Boot-Starter-E-Mail </artifactid> </abhängig>
Feder -Boot -Konfiguration
Spring.mail.host = SMTP.Servie.comspring.mail.username = Benutzername // Sender -E -Mail -Adresse Spring.mail.password = Passwort // Für QQ Mailbox bezieht sich das Passwort auf den Autorisierungscode des Absenders. #Wenn die verschlüsselte Übertragung die Protokollüberprüfung der Überprüfung der Verifizierung für Spring.
Implementierung des Frühlingscode
Paket com.dbgo.webservicedemo.email; import org.springframework.bean.factory.annotation org.springframework.mail.javamail.mimemessageHelper; import org.springframework.stereotype.comPonent; Javamailsender Javamailsender; public void sendSimplemail () {Mimemessage message = null; try {message = javamailSender.CreateMimememessage (); MimemessageHelper Helper = neuer MimemessageHelper (Nachricht, wahr); helper.setfrom ("[email protected]"); Helper.setto ("[email protected]"); Helper.Setsubject ("Titel: HTML -Inhalt senden"); StringBuffer sb = new StringBuffer (); sb.append ("<h1> großer Titel-H1 </h1>") .Append ("<p style = 'color:#f00'> Rotes Wort </p>") .Append ("<p style = 'text-align: rechts'> rechts </p>"); helper.setText (sb.toString (), true); DateiSystemResource FileSystemResource = new FileSystemResource (neue Datei ("d: /76678.pdf") helper.addattachment ("elektronische Rechnung", Dateisystemresource); JavamailSender.Send (Nachricht); } catch (MessagingException e) {e.printstacktrace (); }}}Senden Sie E-Mails unter Nicht-Spring-Start:
Maven -Paketabhängigkeiten
<Depelencies> <Depopentcy> <gruppe> com.sun.mail </Groupid> <artifactId> javax.mail </artifactId> <version> 1.5.2 </Version> </abhängig> </abhängigen>
Beispiel für Demo1 -Code
Paket com.justin.framework.core.utils.Email; Import Java.io.file; Import Java.io.fileinputStream; Import Java.io.filenotFoundException; importieren java.io.iio.fileOutputStream; java.util.date; import Java.util.properties; import Javax.Activation.datahandler; Import Javax.Aktivation.DataSource; Import Javax.Aktivation.filedatasource; import. javax.mail.message.RecipientType; import Javax.mail.message.RecipientType; Import Javax.Mail.MessagingException; import Javax.mail javax.mail.internet.mimebodypart; import javax.mail.internet.mimemessage; import javax.mail.internet.mimemultipart; "SMTP"; // SMTP Mail Server Private Final Static String host = "mail.tdb.com"; // SMTP Mail Server Standard Port Private Final Static String Port = "25"; // Ob eine Authentifizierung private endgültige statische String benötigt wird is_auth = "true"; // Ob aktiviert Debug -Modus (Debug -Modus aktivieren, um die Antwortnachricht einer Frage zu drucken und zu beantworten, wenn der Client und der Server interagieren) private endgültige statische String ist_enabled_debug_mod = "true"; // Absender privater statischer String von = "[email protected]"; // Empfänger privater statischer String to = "[email protected]"; private statische String sendusername = "[email protected]"; private statische String sendUserpwd = "new*2016"; // Initialisieren Sie die Sitzungsinformationen, die mit dem Mail Server private statische Eigenschaften herstellen, props = null; static {props = neue Eigenschaften (); props.setProperty ("mail.enable", "true"); props.setProperty ("mail.transport.protocol", Protocol); props.setProperty ("mail.smtp.host", Host); props.setProperty ("mail.smtp.port", port); props.setProperty ("mail.smtp.auth", is_auth); // Abhängig von der Situation, props.setProperty ("mail.debug", is_enabled_debug_mod); } / *** Einfacher SMS -Mail senden* / public static boolean sendTextemail (String an, int Code) löst Ausnahme aus {try {// Session -Instance -Objekt Session1 = Session.getDefaultInstance (Props); // Mimemessage -Instanzobjekt Mimemessage Message = new mimemessage (Sitzung1); // Setzen Sie die Absendermeldung. // Setzen Sie die E -Mail -Betreffnachricht. // Setzen Sie die Empfängermeldung.setRecipient (recicentType.to, New InternetAtaddress (to)); // die sendende Zeitmeldung festlegen. SetSentDate (neues Datum ()); // Setzen Sie den Klartextinhalt auf die E-Mail-Textnachricht. // Speichern und generieren Sie die endgültige E -Mail -Inhaltsnachricht. // Erhalten Sie den Transportinstanzobjekt Transport = Session1.GetTransport (); // Öffnen Sie den Connection Transport.connect ("Meijiajiang2016", "); // Übergeben Sie das Nachrichtenobjekt an das Transportobjekt und senden Sie die Nachricht aus Transport.sendMessage (Message, Message.getallRecipients ()); // den Verbindungstransport schließen.CLOSE (); zurückkehren; } catch (Ausnahme e) {e.printstacktrace (); false zurückgeben; }} public static void main (String [] args) löst eine Ausnahme aus {sendhtmlemail ("[email protected]", 8888); } / *** Senden Sie eine einfache HTML -E -Mail* / public static boolean sendhtmlemail (String an, int Code) löst eine Ausnahme aus {// Session -Instance -Objekt Session Session1 = Session.getInstance (Props, New MyAuthenticator ()); // Mimemessage -Instanzobjekt Mimemessage Message = new mimemessage (Sitzung1); // Setzen Sie die E -Mail -Betreffnachricht. // setze sender message // Senden Sie die Zeit meldung ein. // Empfängermeldung festlegen // HTML-Inhalt auf den E-Mail-Körper festlegen, den MIME-Typ auf Text/HTML-Typ angeben und die Zeichenkodierung als GBK-Nachricht angeben. Benutzer: </p> <p style Gesellschaft </p> </div> "," text/html; charset = utf-8 "); // Setzen Sie den benutzerdefinierten Absender -Spitznamen String Nick = ""; try {nick = javax.mail.internet.meutility.encodetext ("China Internal Combustion Engine Society"); } catch (unportedenCodingException e) {e.printstacktrace (); } message.setfrom (neue InternetAddress (Nick+"<"+von+">")); // Speichern und generieren Sie die endgültige E -Mail -Inhaltsnachricht. // E -Mail -Versuche {transport.Send (Nachricht); zurückkehren; } catch (Ausnahme e) {e.printstacktrace (); false zurückgeben; }} / *** HTML -Mail mit eingebetteten Bildern senden* / public static void sendhtmlWitHINNImageEmail () löscht MessagingException {// Session -Instance -Objekt Session Session // E -Mail -Inhalt Mimemessage Message = new Mimemessage (Sitzung); // Mail-Betreff und Geben Sie die Codierungsformatmeldung an. // sendern message.setFrom (neue InternetAtaddress (von)); // Empfänger message.setRecipients (Empfängertype.to, InternetAddress.Parse (to)); // cc message.setRecipient (recicentType.cc, New InternetAddress ("[email protected]")); // Secret Senden (nicht in der Liste der E -Mail -Empfänger angezeigt) Message.setRecipient (recicolatetype.bcc, New InternetAddress ("[email protected]")); // Zeit meldung senden. // Erstellen Sie ein mimemultiPart -Objekt mit MIME -Subtyp "verwandt" mimemultipart mp = new mimemultipart ("verwandt"); // Erstellen Sie ein Mimebodypart -Objekt, das den Körper darstellt, und fügen Sie es dem mimemultiPart -Objekt hinzu, das früher erstellt wurde. mp.addbodypart (htmlPart); // Erstellen Sie ein Mimebodypart -Objekt, das Bildressourcen darstellt, und fügen Sie es dem mimemultiPart -Objekt hinzu, das früher erstellt wurde. mp.addbodypart (ImagePart); // Setzen Sie das mimemultiPart -Objekt auf den Inhalt der gesamten Nachrichtennachricht.setContent (MP); // Setzen Sie das eingebettete Bild -Mail -Körper -DataSource ds = new farredataSource (neue Datei ("Ressourcen/FirefoxLogo.png"); Datahandler DH = New Datahandler (DS); ImagePart.SetDatahandler (DH); ImagePart.SetContentID ("FirefoxLogo.png"); // Setzen Sie die Inhaltsnummer für andere E -Mail -Körper -Referenzen ein // Erstellen Sie ein mimemultiPart -Objekt mit MIME -Subtyp "Alternative" und dienen als E -Mail -Inhalt des HTMLPart -Objekts, das früher erstellt wurde, MimemultiPart htmlmultiPart = new mimemultiPart ("Alternative"); // Erstellen Sie ein Mimebodypart -Objekt, das das HTML -Körper -Mimebodypart htmlbodypart = new Mimebodypart () darstellt; // wobei cid = androidlogo.gif das Bild in der Referenzmeldung ist, dh ImagePart.setContentid ("androidlogo.gif"); Methode htmlbodypart.setContent ("<span style = 'color: rot;'> Dies ist eine HTML-E-Mail mit eingebetteten Bildern !!! htmlmultipart.addbodypart (htmlbodypart); htmlPart.setContent (htmlmultipart); // Speichern und generieren Sie die endgültige E -Mail -Inhaltsnachricht. // Mail transports senden.send (meldung); } / *** Senden Sie eine vollständige HTML-Nachricht mit eingebetteten Bildern, Anhängen, mehreren Empfängern (Anzeigen des Mailbox-Namens), der E-Mail-Priorität und dem Lesen von Quittung* / public static void sendMultipleemail () löst eine Ausnahme aus {String charset = "utf-8"; // Geben Sie das chinesische Codierungsformat an // Session Instance Object Session Session = Session.getInstance (Props, New MyAuthenticator ()); // Mimemessage -Instanzobjekt MIMEMESSAGE Message = new mimemessage (Sitzung) erstellen; // Setzen Sie die Themenmeldung. // Setze Sender Message // Empfängermeldung festlegen InternetAddress ("[email protected]", "Li Si_163", Charset),}); // CC Message.setRecipient (recurtesiienttype.cc, New InternetAddress ("[email protected]", "Wang Wu_Gmail", Charset)) festlegen; // Secret message.setRecipient (recicaltType.bcc, New InternetAddress ("[email protected]", "Zhao liu_qq", charset)); // Senden Sie die Zeit meldung ein. // Setzen Sie den Antragser (der Standardempfänger wird angegeben, wenn der Empfänger auf diese E -Mail antwortet) meldung.setreplyto (InternetAddress.Parse ("/" " + mimeutility.encodetext (" Tian Qi ") +"/"<[email protected]>")); // Priorität festlegen (1: Notfall 3: Normal 5: niedrig) Nachricht. // fordern Sie eine Reading-Quittung an (der Empfänger fordert den Absender auf, beim Lesen der E-Mail zu antworten, und gibt an, dass die E-Mail empfangen und gelesen wurde). // Erstellen Sie ein Mimemultipart -Objekt mit MIME -Subtyp "gemischt", was darauf hinweist, dass dies ein gemischter Kombinationstyp E -Mail Mimemultipart MailContent = new mimemultipart ("gemischt") ist; Message.SetContent (MailContent); // Anhang mimebodypart Attach1 = neuer Mimebodypart (); Mimebodypart attat2 = neuer Mimebodypart (); // Inhalt mimebodypart mailbody = new Mimebodypart (); // Anhang und Inhalte zum MailContent.addbodypart (Attach1) hinzufügen; MailContent.Addbodypart (Attach2); MailContent.Addbodypart (Mailbody); // Anhang 1 (Verwenden Sie das JAF -Framework, um E -Mail -Body zu generieren) DataSource ds1 = new fileDataSource ("Ressource/Erde.bmp"); Datahandler dh1 = neuer datahandler (ds1); attach1.setFileName (mimeutility.encodetext ("earth.bmp")); Attach1.SetDatahandler (DH1); // Anhang 2 DataSource DS2 = NEUE FAGEDATEURCE ("Ressource/Wie lernt C -Sprache gut.txt"); Datahandler dh2 = neuer datahandler (ds2); Attach2.SetDatahandler (DH2); attach2.setFileName (mimeutility.encodetext ("Wie man C -Sprache gut lernt.txt"); // E -Mail -Körper (eingebettetes Bild + HTML -Text) Mimemultipart Body = new Mimemultipart ("verwandt"); // E -Mail -Körper ist ebenfalls eine Kombination, und die Kombinationsbeziehung muss mailbody.setContent (Körper) angegeben werden. // E -Mail -Körper besteht aus HTML und Bildern Mimebodypart imgPart = new mimebodypart (); Mimebodypart htmlPart = new Mimebodypart (); body.addbodypart (imgPart); body.addbodypart (htmlPart); // Text Bilddatenource ds3 = new farredataSource ("Ressourcen/FirefoxLogo.png"); Datahandler dh3 = neuer datahandler (ds3); ImgPart.SetDatahandler (DH3); imgPart.setContentID ("FirefoxLogo.png"); // HTML -E -Mail -Inhalt mimemultiPart htmlmultiPart = new mimemultiPart ("Alternative"); htmlPart.setContent (htmlmultipart); Mimebodypart htmlContent = new Mimebodypart (); htmlContent.setContent ("<span style = 'color: rot'> Dies ist die E -Mail, die ich mit Java Mail selbst gesendet habe!" + "<img src = 'cid: FirefoxLogo.png'/> </span>", "text/html; charset = gbk"); htmlmultipart.addbodypart (htmlContent); // Speichern Sie den Nachrichteninhalt und ändern Sie Message.savechanges (); /*Datei emml = BuildemlFile (Nachricht); sendmailForeml (EML);*/ // Mail transport.send (meldung); }/*** Generieren Sie eine EML -Datei für den E -Mail -Inhalt* @param meldung per E -Mail -Inhalt*/öffentliche statische Datei BuildemlFile (Nachrichtennachricht) löscht MessagingException, FileNotFoundException, IOException {Dateidatei = new File ("c: //" + mimutility. message.writeto (neuer FileOutputStream (Datei)); Rückgabedatei; } / *** Senden Sie lokal generierte E -Mail -Datei* / public static void sendmailForeml (Datei emml) löst eine Ausnahme aus {// E -Mail -Sitzung Sitzung Session.getInstance (Props, New MyAuthenticator ()); // E -Mail -Inhalte abrufen, dh die EML -Datei, die er generiert hat, bevor sie eingeht, ist = new FileInputStream (EML); Mimemessage message = new Mimemessage (Sitzung, IS); // E -Mail -Transport.Send (Nachricht) senden; } / *** Authentifizierungsinformationen an den Mailserver senden* / statische Klasse MyAuthenticator erweitert Authenticator {private String username = ""; private String password = ""; public myAuthenticator () {Super (); this.Password = sendUerpwd; this.username = sendusername; } public myAuthenticator (String -Benutzername, String -Passwort) {Super (); this.username = userername; this.Password = Passwort; } @Override Protected PasswordAuthentication getPasswordAuthentication () {Neue PasswordAuthentication (Benutzername, Passwort); }}}
Beispiel für Demo2 -Code:
paket com.justin.framework.core.utils.email; import Java.util.hashset; import Java.util.Properties; import Java.util.set; import Javax.Activation.Datahandler; javax.mail.message; import javax.mail.multipart; import Javax.mail javax.mail.internet.mimemultiPart; import javax.mail.internet.Mimeutility; öffentliche Klasse mailmanagerUtils {// E -Mail -E -Mail öffentliche statische Boolesche Sendmail (E -Mail -E -Mail) {String -Betreff = E -Mail.getSubject (); String content = E -Mail.getContent (); String [] recruits = mail.getRecievers (); String [] Copyright = E -Mail.getCopyTo (); String attbody = mail.getattbody (); String [] Attbodys = E -Mail.getattbodys (); if (recievers == null || collecters.length <= 0) {return false; } try {Properties props = neue Eigenschaften (); 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"); // Erstellen Sie ein Programm, um mit der Mail Server Session MailConnection = Session.getInstance (Props, NULL) zu kommunizieren. Nachricht msg = new mimemessage (MailConnection); // Setze Absender und Empfängeradresse SENTER = NEW InternetAddress (props.getSproperty ("mail.smtp.from")); // Mehrere Empfänger msg.setfrom (Absender); Set <CTETADDRESS> touserset = new Hashset <CTANTADDRESS> (); // Mailbox-Validitätsvalidierung für (int i = 0; i <receivers.length; i ++) {if (recievers [i] .trim (). Übereinstimmung ("^// w+([-+.] // w+)*@// W+([-.] // W+)+$")) {touserset.add.add (New Internetaddress (New Internetaddress (New Internetaddress)). }} msg.setRecipients (Message.RecipientType.to, Touserset.toArray (neue InternetAddress [0])); // CC if (copyTo! = Null) {set <CTANTADDRESS> COPYTOUSERSET = NEW Hashset <CTEMTADDRESS> (); // E-Mail-Gültigkeit gültig für (int i = 0; i <copyto.length; i ++) {if (copyto [i] .trim (). Übereinstimmt ("^// w+([-+.] // w+)*@// w+([-.] // w+)+$") {) {))))))); }} // msg.setRecipients (Message.RecipientType.cc, (Adresse []) InternetAddress.Parse (CopyTo)); msg.setRecipients (Message.RecipientType.cc, CopyTouserset.toArray (neue Internetaddress [0])); } // Setzen Sie das E-Mail-Betreff msg.setsubject (mimeutility.encodetext (Subjekt, "UTF-8", "B"); // Chinesische Problem mit chinesischem verstümmelten Code // Setzen Sie den E -Mail -Inhalt Bodypart messageBodypart = new mimebodypart (); messageBodypart.setContent (Inhalt, "text/html; charSet = utf-8"); // Chinese Multipart Multipart = new MimemultiPart (); MultiPart.Addbodypart (MessageBodypart); msg.setContent (Mehrpartikel); /********* für (String filepath: filepath) {// den Anhang des Buchstabens festlegen (verwenden Sie die Datei auf der lokalen Maschine als Anhang) bodypart mdp = new mimebodypart (); FieledataSource fds = neuer fileedataSource (filepath); Datahandler DH = New Datahandler (FDS); mdp.setFileName (mimeutility.encodetext (fds.getName ())); mdp.setDatahandler (DH); Multipart.Addbodypart (MDP); } // MTP als Inhalt des Nachrichtenobjekts msg.setContent (Multipart) einlegen; }; if (attbodys! FieledataSource fds = neuer fileedataSource (filepath); Datahandler DH = New Datahandler (FDS); mdp.setFileName (mimeutility.encodetext (fds.getName ())); mdp.setDatahandler (DH); Multipart.Addbodypart (MDP); } // MTP als Inhalt des Nachrichtenobjekts msg.setContent (Multipart) einlegen; }; /* System.out.println ("E -Mail senden ..."); Transport Transfer = MailConnection.GetTransport (props.getProperty ("Mail.Protocal")); // Mail -Servername, Benutzername, Passwort trans.connect (props.getProperty ("mail.smtp.host"), props.getProperty ("mail.user"), props.getProperty ("mail.pass")); trans.sendMessage (msg, msg.getallrecipients ()); System.out.println ("Mail erfolgreich senden!"); // den Kanal schließen if (trans.isconnected ()) {trans.close (); } Return true; } catch (Ausnahme e) {System.err.println ("E -Mail -Senden fehlgeschlagen!" + e); false zurückgeben; } endlich {}} // Der Absender, der Empfänger, und der Antwortinhaber hat den chinesischen Code in der E -Mail verstümmelt. RES ist die Adresse // Die Standard -Codierungsmethode von http ist iso8859_1 // zum Senden von Adressen mit Chinesen, verwenden Sie die Mimeutilität. getChinesefrom (String res) {String von = res; try {if (von.Startswith ("=? gb") || von.Startswith ("=? GB") || von.Startswith ("=? utf") {from = mimeutility.decodetext (from); } else {from = new String (von.getBytes ("ISO8859_1"), "gbk"); }} catch (Ausnahme e) {e.printstacktrace (); } kehren von; } // in GBK konvertieren öffentliche statische String -Tochinese (String StrValue) {try {if (strsalue == null) return null; sonst {StrValue = new String (StrValue.getBytes ("ISO8859_1"), "gbk"); return StrValue; }} catch (Ausnahme e) {return null; }} public static void main (String [] args) {E -Mail -E -Mail = new E -Mail (); E -Mail.setRecievers (neuer String [] {"[email protected]"}); E -Mail.SetSubject ("Test -Test"); E -Mail.SetContent ("Test -Test"); Sendmail (E -Mail); }}Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Referenzwert für das Studium oder die Arbeit eines jeden hat. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen. Vielen Dank für Ihre Unterstützung bei Wulin.com.