Java >> Java Tutorial >  >> Tag >> Spring

So senden Sie E-Mails mit Spring Boot

Szenario

In diesem Beitrag zeige ich, wie die E-Mail-Konfiguration in einer Spring-Boot-Anwendung verwendet wird. Der Anwendungsfall, den ich hier diskutieren möchte, ist, wenn Sie Contact Us haben Seite in Ihrer Webanwendung, auf der Sie Benutzern erlauben, E-Mails an Ihr Vertriebsteam oder Supportteam zu senden, wie erreichen Sie dann diese Funktion zum Senden einer E-Mail mit einem Kontaktformular mit Spring Boot.

Was brauchen Sie

  • Java 8
  • IntelliJ
  • Eine auf Spring Boot basierende Webanwendung

Use-Case-Lösung

Als Teil dieses Beitrags werde ich nicht beschreiben, wie man eine Spring Boot-basierte Webanwendung erstellt. Sie können einige meiner älteren Posts besuchen:SaaS-Anwendung, Webanwendung mit Spring Boot-Sicherheit ODER Spring Boot-Anwendung mit Docker. Obwohl keine dieser Anwendungen Contact Us hat Seite, empfehle ich, diese Seite mit einem einfachen Formular wie dem folgenden hinzuzufügen:

Kontaktieren Sie uns

Ich habe die Bootstrap-Vorlage verwendet, um dieses Formular zu erstellen. Dieses Formular befindet sich außerhalb der Webanwendung, aber ich habe ein ähnliches Formular in der Webanwendung, mit dem Benutzer das Vertriebs- oder Supportteam kontaktieren können. In diesem Fall kann sich der Benutzer, der sich für die Anwendung anmelden möchte, an mein Verkaufsteam wenden.

Um jetzt die von Spring bereitgestellte Funktion zum Senden von E-Mails aus der Anwendung an Ihre angegebene E-Mail-Adresse zu verwenden, fügen wir die folgende Bibliothek hinzu:

compile('it.ozimov:spring-boot-email-core:0.6.3')

Diese Bibliothek stellt einen EmailService bereit die die Federbibliothek für spring-boot-starter-mail abdeckt und müssen keinen Teil des Codes schreiben, um E-Mails zu senden. In diesem Beispiel zeige ich diesen EmailService kann verwendet werden, um eine einfache Methode zum Senden von E-Mails zu schreiben.

Zuerst müssen wir E-Mail-Tools durch eine Anmerkung @EnableEmailTools aktivieren in unserer Hauptanwendung Spring. Sobald wir das getan haben, habe ich eine einfache Methode zum Senden von E-Mails geschrieben. Diese Methode sieht wie folgt aus:

@Autowired
private EmailService emailService;

private void sendEmail(String emailAddress, String message, String phoneno) throws UnsupportedEncodingException, AddressException
{
    ArrayList<InternetAddress> emails = new ArrayList<>();
    emails.add(new InternetAddress("[email protected]"));
    final Email email = DefaultEmail.builder()
            .from(new InternetAddress(emailAddress))
            .to(emails)
            .subject("Sales Support")
            .body(message + "\n" + phoneno)
            .encoding("UTF-8").build();

    emailService.send(email);
}

Damit dieser E-Mail-Dienst funktioniert, müssen wir noch SMTP-Servereigenschaften und eine E-Mail-Adresse und ein Passwort des Absenders angeben. In diesem Beispiel oben habe ich betterjavacode.com gezeigt als meine Gmail-Adresse.

Hinzufügen der folgenden Eigenschaften in application.properties wird unseren SMTP-Host zum Senden der E-Mail einrichten.

spring.mail.host = smtp.gmail.com
spring.mail.port = 587
spring.mail.username = [email protected]
spring.mail.password =*****************
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.timeout=5000
spring.mail.properties.mail.smtp.writetimeout=5000

Schlussfolgerung

In diesem Beitrag habe ich gezeigt, wie man E-Mails mit der Spring Boot-E-Mail-Konfigurationsfunktion sendet.


Java-Tag