Heim Java javaLernprogramm Beispiel für die Verwendung von JavaMailSender zum Senden von E-Mails in Spring Boot (Quellcode im Anhang)

Beispiel für die Verwendung von JavaMailSender zum Senden von E-Mails in Spring Boot (Quellcode im Anhang)

Mar 09, 2017 am 10:10 AM

In diesem Artikel werden hauptsächlich Beispiele für die Verwendung von JavaMailSender zum Senden von E-Mails in Spring Boot vorgestellt. Ich glaube, dass viele Entwickler, die Spring verwendet haben, wissen, dass Spring eine sehr benutzerfreundliche JavaMailSender-Schnittstelle zum Senden von E-Mails bietet. Die automatische Konfiguration ist auch im Starter-Modul von Spring Boot verfügbar. Freunde in Not können sich darauf berufen.

Schnellstart

Führen Sie die Spring-Boot-Starter-Mail-Abhängigkeit in pom.xml im Spring Boot-Projekt ein:

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
Nach dem Login kopieren

Wie bei anderen automatisierten Konfigurationsmodulen müssen Sie nach Abschluss der Abhängigkeitseinführung nur noch den entsprechenden Attributinhalt in application.properties konfigurieren.

Nehmen wir das QQ-Postfach als Beispiel und fügen die folgende Konfiguration in application.properties hinzu (Hinweis zum Ersetzen Ihres Benutzernamens und Passworts):

spring.mail.host=smtp.qq.com
spring.mail.username=用户名
spring.mail.password=密码
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
Nach dem Login kopieren

Verwenden Sie Unit-Tests, um eine einfache E-Mail zu senden:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public class ApplicationTests {
 @Autowired
 private JavaMailSender mailSender;
 @Test
 public void sendSimpleMail() throws Exception {
 SimpleMailMessage message = new SimpleMailMessage();
 message.setFrom("dyc87112@qq.com");
 message.setTo("dyc87112@qq.com");
 message.setSubject("主题:简单邮件");
 message.setText("测试邮件内容");
 mailSender.send(message);
 }
}
Nach dem Login kopieren

Hier wird eine einfache E-Mail gesendet. Das ist es Führen Sie den Unit-Test durch und sehen Sie, wie er funktioniert.

„Da das Startermodul von Spring Boot eine automatisierte Konfiguration bietet, wird nach Einführung der Spring-Boot-Starter-Mail-Abhängigkeit eine JavaMailSender-Instanz basierend auf dem Inhalt in der Konfigurationsdatei erstellt, sodass wir sie direkt konfigurieren können, wenn.“ erforderlich Verwenden Sie @Autowired direkt, um das E-Mail-Sendeobjekt einzuführen Wird für den einfachen E-Mail-Versand verwendet, bei der tatsächlichen Verwendung können wir jedoch auch Anhänge mitbringen oder das E-Mail-Modul usw. verwenden. Zu diesem Zeitpunkt müssen wir MimeMessage verwenden, um komplexere E-Mail-Inhalte festzulegen. Lassen Sie uns diese einzeln implementieren.

Anhang sendenFügen Sie den folgenden Testfall zum obigen Komponententest hinzu (senden Sie eine E-Mail mit Anhang über MimeMessageHelper):

Statische Ressourcen einbetten

Zusätzlich zum Senden von Anhängen möchten wir möglicherweise statische Ressourcen wie Bilder in den E-Mail-Inhalt einbetten, um ihn zu erhalten Um ein besseres Leseerlebnis der E-Mail zu erzielen, anstatt bestimmte Bilder aus dem Anhang anzuzeigen, zeigt der folgende Testfall, wie statische Ressourcen über MimeMessageHelper in den E-Mail-Text eingebettet werden.
@Test
public void sendAttachmentsMail() throws Exception {
 MimeMessage mimeMessage = mailSender.createMimeMessage();
 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
 helper.setFrom("dyc87112@qq.com");
 helper.setTo("dyc87112@qq.com");
 helper.setSubject("主题:有附件");
 helper.setText("有附件的邮件");
 FileSystemResource file = new FileSystemResource(new File("weixin.jpg"));
 helper.addAttachment("附件-1.jpg", file);
 helper.addAttachment("附件-2.jpg", file);
 mailSender.send(mimeMessage);
}
Nach dem Login kopieren

Hier ist zu beachten, dass der Ressourcenname weixin in der addInline-Funktion dem cid:weixin im Text <🎜 entsprechen muss >

Vorlagen-E-Mails

@Test
public void sendInlineMail() throws Exception {
 MimeMessage mimeMessage = mailSender.createMimeMessage();
 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
 helper.setFrom("dyc87112@qq.com");
 helper.setTo("dyc87112@qq.com");
 helper.setSubject("主题:嵌入静态资源");
 helper.setText("<html><body><img src=\"cid:weixin\" ></body></html>", true);
 FileSystemResource file = new FileSystemResource(new File("weixin.jpg"));
 helper.addInline("weixin", file);
 mailSender.send(mimeMessage);
}
Nach dem Login kopieren
Wenn wir E-Mail-Versanddienste nutzen, gibt es normalerweise einige feste Szenarien, wie z. B. das Zurücksetzen des Passworts, die Bestätigung der Registrierung usw., und nur ein kleiner Teil davon Der an jeden Benutzer gesendete Inhalt kann sich ändern. Daher verwenden wir oft eine Template-Engine, um Vorlagen für verschiedene Arten von E-Mails festzulegen, sodass wir beim Senden nur die geänderten Parameter ersetzen müssen.

Es ist auch sehr einfach, die Template-Engine in Spring Boot zu verwenden, um den E-Mail-Versand mit Vorlagen zu implementieren. Nehmen wir Velocity als Beispiel für die Implementierung.

Stellen Sie die Abhängigkeiten des Geschwindigkeitsmoduls vor:

Erstellen Sie unter resources/templates/ eine Vorlagenseite template.vm:

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-velocity</artifactId>
</dependency>
Nach dem Login kopieren

Als wir zuvor Webanwendungen in Spring Boot entwickelt haben, haben wir erwähnt, dass sich Vorlagen bei der automatisierten Konfiguration von Spring Boot in den Ressourcen/Vorlagen/ befinden.

Schließlich fügen wir einen Testfall zum Senden von Vorlagen-E-Mails an den Unit-Test hinzu, wie folgt:

<html>
<body>
 <h3>你好, ${username}, 这是一封模板邮件!</h3>
</body>
</html>
Nach dem Login kopieren

Versuchen Sie es einfach auszuführen. Sie können den Inhalt zu Ihrem Vorteil erhalten,

Didi, dies ist eine E-Mail-Vorlage

. Hier ersetzen wir die Variable

in der Vorlage im E-Mail-Inhalt, indem wir den Parameter „Benutzername“ übergeben.
@Test
public void sendTemplateMail() throws Exception {
 MimeMessage mimeMessage = mailSender.createMimeMessage();
 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
 helper.setFrom("dyc87112@qq.com");
 helper.setTo("dyc87112@qq.com");
 helper.setSubject("主题:模板邮件");
 Map<String, Object> model = new HashedMap();
 model.put("username", "didi");
 String text = VelocityEngineUtils.mergeTemplateIntoString(
 velocityEngine, "template.vm", "UTF-8", model);
 helper.setText(text, true);
 mailSender.send(mimeMessage);
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonBeispiel für die Verwendung von JavaMailSender zum Senden von E-Mails in Spring Boot (Quellcode im Anhang). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ein neues Programmierparadigma, wenn Spring Boot auf OpenAI trifft Ein neues Programmierparadigma, wenn Spring Boot auf OpenAI trifft Feb 01, 2024 pm 09:18 PM

Im Jahr 2023 ist die KI-Technologie zu einem heißen Thema geworden und hat enorme Auswirkungen auf verschiedene Branchen, insbesondere im Programmierbereich. Die Bedeutung der KI-Technologie wird den Menschen zunehmend bewusst, und die Spring-Community bildet da keine Ausnahme. Mit der kontinuierlichen Weiterentwicklung der GenAI-Technologie (General Artificial Intelligence) ist es entscheidend und dringend geworden, die Erstellung von Anwendungen mit KI-Funktionen zu vereinfachen. Vor diesem Hintergrund entstand „SpringAI“ mit dem Ziel, den Prozess der Entwicklung von KI-Funktionsanwendungen zu vereinfachen, ihn einfach und intuitiv zu gestalten und unnötige Komplexität zu vermeiden. Durch „SpringAI“ können Entwickler einfacher Anwendungen mit KI-Funktionen erstellen, wodurch diese einfacher zu verwenden und zu bedienen sind.

Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Apr 28, 2024 am 11:46 AM

Als Branchenführer bietet Spring+AI durch seine leistungsstarke, flexible API und erweiterte Funktionen führende Lösungen für verschiedene Branchen. In diesem Thema werden wir uns mit den Anwendungsbeispielen von Spring+AI in verschiedenen Bereichen befassen. Jeder Fall wird zeigen, wie Spring+AI spezifische Anforderungen erfüllt, Ziele erreicht und diese LESSONSLEARNED auf ein breiteres Anwendungsspektrum ausdehnt. Ich hoffe, dieses Thema kann Sie dazu inspirieren, die unendlichen Möglichkeiten von Spring+AI tiefer zu verstehen und zu nutzen. Das Spring-Framework hat eine mehr als 20-jährige Geschichte im Bereich der Softwareentwicklung, und seit der Veröffentlichung der Spring Boot 1.0-Version sind 10 Jahre vergangen. Nun kann niemand diesen Frühling bestreiten

Was sind die Implementierungsmethoden für programmatische Frühlingstransaktionen? Was sind die Implementierungsmethoden für programmatische Frühlingstransaktionen? Jan 08, 2024 am 10:23 AM

So implementieren Sie programmgesteuerte Spring-Transaktionen: 1. Verwenden Sie TransactionCallback und TransactionCallbackWithoutResult; 4. Verwenden Sie TransactionTemplate in Kombination mit @Transactional;

PHP-Entwicklungspraxis: Verwenden Sie PHPMailer, um E-Mails an Benutzer in der MySQL-Datenbank zu senden PHP-Entwicklungspraxis: Verwenden Sie PHPMailer, um E-Mails an Benutzer in der MySQL-Datenbank zu senden Aug 05, 2023 pm 06:21 PM

PHP-Entwicklungspraxis: Verwenden Sie PHPMailer, um E-Mails an Benutzer in der MySQL-Datenbank zu senden. Einführung: Beim Aufbau des modernen Internets ist E-Mail ein wichtiges Kommunikationswerkzeug. Ob Benutzerregistrierung, Passwort-Zurücksetzung oder Bestellbestätigung im E-Commerce – das Versenden von E-Mails ist eine wesentliche Funktion. In diesem Artikel wird erläutert, wie Sie mit PHPMailer E-Mails senden und die E-Mail-Informationen in der Benutzerinformationstabelle in der MySQL-Datenbank speichern. 1. Installieren Sie die PHPMailer-Bibliothek PHPMailer

Die Unterschiede und Zusammenhänge zwischen Spring Boot und Spring Cloud Die Unterschiede und Zusammenhänge zwischen Spring Boot und Spring Cloud Jun 22, 2023 pm 06:25 PM

SpringBoot und SpringCloud sind beides Erweiterungen des Spring Framework, die Entwicklern dabei helfen, Microservice-Anwendungen schneller zu erstellen und bereitzustellen. Sie haben jedoch jeweils unterschiedliche Zwecke und Funktionen. SpringBoot ist ein Framework zum schnellen Erstellen von Java-Anwendungen, das es Entwicklern ermöglicht, Spring-basierte Anwendungen schneller zu erstellen und bereitzustellen. Es bietet eine einfache und leicht verständliche Möglichkeit, eigenständige, ausführbare Spring-Anwendungen zu erstellen

So senden Sie E-Mails mit Flask-Mail So senden Sie E-Mails mit Flask-Mail Aug 02, 2023 am 10:17 AM

So verwenden Sie Flask-Mail zum Versenden von E-Mails Mit der Entwicklung des Internets ist E-Mail zu einem wichtigen Kommunikationsmittel für Menschen geworden. Bei der Entwicklung von Webanwendungen müssen wir manchmal in bestimmten Situationen E-Mails senden, z. B. das Senden einer Willkommens-E-Mail, nachdem sich ein Benutzer erfolgreich registriert hat, oder das Senden einer E-Mail zum Zurücksetzen des Passworts, wenn ein Benutzer sein Passwort vergessen hat usw. Flask ist ein einfaches und flexibles Python-Web-Framework und Flask-Mail ist eine Erweiterungsbibliothek zum Senden von E-Mails unter dem Flask-Framework. In diesem Artikel wird erläutert, wie das geht

So legen Sie die Transaktionsisolationsstufe im Frühjahr fest So legen Sie die Transaktionsisolationsstufe im Frühjahr fest Jan 26, 2024 pm 05:38 PM

So legen Sie die Transaktionsisolationsstufe in Spring fest: 1. Verwenden Sie die Annotation @Transactional. 3. Legen Sie sie in der Spring-Konfigurationsdatei fest. 4. Legen Sie sie in der Java-Konfigurationsklasse fest. Detaillierte Einführung: 1. Verwenden Sie die Annotation @Transactional, fügen Sie die Annotation @Transactional zu der Klasse oder Methode hinzu, die eine Transaktionsverwaltung erfordert, und legen Sie die Isolationsstufe im Attribut fest. 2. In der Spring-Konfigurationsdatei usw.

Die 7 am häufigsten verwendeten Anmerkungen in Spring, der mächtigsten Organisation der Geschichte! Die 7 am häufigsten verwendeten Anmerkungen in Spring, der mächtigsten Organisation der Geschichte! Jul 26, 2023 pm 04:38 PM

Mit der Aktualisierung und Iteration der Technologie begann Java5.0, Anmerkungen zu unterstützen. Als führendes Framework in Java hat Spring seit der Aktualisierung auf Version 2.5 langsam damit begonnen, die XML-Konfiguration aufzugeben, und es werden mehr Annotationen zur Steuerung des Spring-Frameworks verwendet.

See all articles