Spring Email API (Java/Kotlin)
![Maven Central](https://img.shields.io/maven-central/v/com.github.migangqui/spring-email-api-java?style=for-the-badge)
It is an API for Java and Kotlin to send emails with Spring. To add to your project...
Add dependency to Maven or Gradle:
For Java:
<dependency>
<groupId>com.github.migangqui</groupId>
<artifactId>spring-email-api-java</artifactId>
<version>${currentVersion}</version>
</dependency>
implementation 'com.github.migangqui:spring-email-api-java:${currentVersion}'
For Kotlin:
<dependency>
<groupId>com.github.migangqui</groupId>
<artifactId>spring-email-api-kotlin</artifactId>
<version>${currentVersion}</version>
</dependency>
implementation 'com.github.migangqui:spring-email-api-kotlin:${currentVersion}'
${currentVersion}
is 1.2.0
Add the following properties in application.yml of the project
spring:
mail:
default-encoding: UTF-8
host:
username:
password:
port:
properties:
mail:
transport.protocol: smtp
Enable async
Add @EnableAsync
annotation in your Spring Application class to enable async send method.
Component scan
It's not necessary add the package to component scan with this new version.
How to use
You have to inject EmailSender
as dependency in your Spring component. The service provide these methods:
Java
public interface EmailSender {
SendEmailResult send(Email email);
Future<SendEmailResult> sendAsync(Email email);
}
Kotlin
interface EmailSender {
fun send(email: Email): SendEmailResult
fun sendAsync(email: Email): Future<SendEmailResult>
}