Spring Mail fasst den E -Mail -Service von Javamail zusammen und erleichtert die Verwendung von Mail -Dienst. Nehmen Sie den QQ Mailbox -Server als Beispiel und verwenden Sie den Spring Mail -Dienst, um E -Mails zu senden.
Konfigurieren Sie das QQ -Mailbox, "Einstellungen" - "Konto", öffnen Sie den SMTP -Dienst und generieren Sie einen Autorisierungscode
Um einen Autorisierungscode zu generieren, muss das Mobiltelefon überprüft werden. Als nächstes können Sie das QQ -E -Mail- und Autorisierungscode zum Senden von E -Mails verwenden, und es besteht kein QQ -Kennwort.
Der Spring Mail-Dienst ist in der Spring-Context-Support konfiguriert, und dann können Sie E-Mails mit dem vom QQ-Mailbox bereitgestellten Sendeserver senden.
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>3.2.17.RELEASE</version></dependency>
Normale SMS -Mail
Der erste Test ist normal
Paket com.xmyself.mail; import org.springframework.mail.simplemailMessage; import org.springframework.mail.javamail.javamailSenderImpl; public class main {public static void main (String [] args) {JavamailSenderImpl MailSender = new JavamailSenderImpl (); MailSender.Sethost ("SMTP.qq.com"); MailSender.Setport (587); mailSender.setusername ("[email protected]"); mailSender.setPassword ("dsruklozelxcbdba"); // Autorisierungscode SimpleMailMessage Mail = new SimpleMailMessage (); mail.setto ("[email protected]"); mail.setfrom ("[email protected]"); mail.setsubject ("Test Mail"); mail.setText ("Test Mail -Inhalte"); MailSender.Send (Mail); System.out.println ("Erfolg"); }}Führen Sie es aus und senden Sie eine E -Mail. Hinweis: Der Autorisierungscode ist nicht das Passwort, der Port ist nicht 25, sondern 587
Halten Sie als Nächstes den MailSender unverändert, ändern Sie den Mailtyp und senden Sie Rich Mail -Nachrichten
Einfache HTML -Mail
Lassen Sie den E -Mail -Inhalt im HTML -Format angezeigt werden. Ändern Sie sie einfach wie folgt
Mimemessage mail = mailSender.createMimemessage (); MimemessageHelper Helper = Neue MimemessageHelper (mail, true); // TRUE wird verwendet, um den Multipart -Modus einzuschalten und ein Bild oder Anhang hinzuzufügen helper.setto ("[email protected]"); Helper.setfrom ("[email protected]"); "</body> </html>", wahr);Senden Sie diese Mail immer noch mit MailSender
MailSender.Send (Mail);
HTML Mail mit Bildern
Fügen Sie die Bildanzeige in den HTML -Inhalt der E -Mail ein und ändern Sie den Textinhalt
helper.setText("<html><head></head><body>" + "<h1>hello!!spring html Mail</h1>" + "<img src=/"cid:image/" />" + "</body></html>" , true);FileSystemResource image = new FileSystemResource(new Datei ("d: /test.jpg")); Helper.addinline ("Bild", Bild); HTML -Mail mit Anhängen
Fügen Sie E -Mail -Anhänge hinzu, der Textinhalt bleibt unverändert. Ändern Sie sie einfach wie folgt
helper.setText ("<html> <head> </head> <body>" + "<h1> Hallo !! Spring Html Mail </h1>" + "</body> </html>", true); DateisystemeSource Image = new DateiSystem (neue Datei ("test.jpg"); Bild); Freemarker -Vorlage E -Mail
HTML -Inhalte sind normalerweise sehr reich und es ist zu chaotisch, um direkt in die Methode setText () zu schreiben. Daher sollte HTML als Datei separat verwaltet werden und dann Tools zum Umwandeln seines Inhalts in eine Zeichenfolge als Parameter von setText () umwandeln. Das Folgende ist als Beispiel eine Freemarker -Template -Engine
Erstellen Sie im Projekt SRC/Main/Ressourcenverzeichnis ein neues Vorlagenverzeichnis und platzieren Sie eine Test.ftl -Datei, der Inhalt ist wie folgt
<html> <head> </head> <body> <p> TEST FREEMARKER -Vorlage, Willkommen $ {Benutzername} </p> <img src = "CID: Bild"/> </body> </html>Verwenden Sie dann die von Freemarker und Spring bereitgestellten Tools, um den Inhalt in eine Zeichenfolge umzuwandeln, was natürlich erfordert, sich auf das neue Glas zu verlassen
<Depopenty> <gruppe> org.freemarker </Groupid> <artifactId> Freemarker </artifactid> <version> 2.3.23 </Version> </abhängig>
Erstellen Sie einen neuen FreemarkerParser.java
Paket com.xmyself.mail; importieren java.util.map; import org.springframework öffentliche Klasse FreemarkerParser {public String tohtmlString (String -Name, Map <String, String> Daten) {@SuppressWarnings ("Abschaltung") configuration config = new Configuration (); config.setClassOntemPlateloading (this.getClass (), "/templates/"); try {template template = config.GetTemplate (Name); return freemarkerTemplateutils.ProcessTemplateIntoString (Vorlage, Daten); } catch (Ausnahme e) {e.printstacktrace (); } return "fail"; }}Ersetzen Sie den Inhalt $ {} in der Vorlage durch den Wert in der Karte, konvertieren Sie die Vorlagendatei in eine Zeichenfolge Zeichenfolge
Hinweis: Die Konfiguration und das Lesen von Vorlagenpfaden während des Prozesses sind problematisch und werden auf diese Weise vorübergehend behandelt.
Der Code zum Senden einer E -Mail erfordert nur eine sehr kleine Änderung
Karte <string, string> data = new HashMap <String, String> (); Data.put ("Benutzername", "Chengyi"); String text = new FreemarkerParser (). Tohtmlstring ("test.ftl", data); helper.setText (text, true); filesSystemResource image = new FileSystemResource (neue Datei ("d: /test.jpg")); Helper.addinline ("Bild", Bild);Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.