Implement Mailer
This commit is contained in:
@@ -18,6 +18,8 @@ class Config {
|
||||
var username: String = config.getString("db.username")
|
||||
var password: String = config.getString("db.password")
|
||||
val port: Int = config.getInt("db.port")
|
||||
|
||||
val sendGridKey: String = config.getString("mail.sendGrid.key")
|
||||
}
|
||||
|
||||
object JwtConfig {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package fr.dcproject
|
||||
|
||||
import fr.dcproject.messages.Mailer
|
||||
import fr.postgresjson.connexion.Connection
|
||||
import fr.postgresjson.connexion.Requester
|
||||
import fr.postgresjson.migration.Migrations
|
||||
@@ -47,4 +48,6 @@ val Module = module {
|
||||
single { VoteCommentRepository(get()) }
|
||||
|
||||
single { Migrations(connection = get(), directory = config.sqlFiles) }
|
||||
|
||||
single { Mailer(config.sendGridKey) }
|
||||
}
|
||||
|
||||
34
src/main/kotlin/fr/dcproject/messages/Mailer.kt
Normal file
34
src/main/kotlin/fr/dcproject/messages/Mailer.kt
Normal file
@@ -0,0 +1,34 @@
|
||||
package fr.dcproject.messages
|
||||
|
||||
import com.sendgrid.Method
|
||||
import com.sendgrid.Request
|
||||
import com.sendgrid.SendGrid
|
||||
import com.sendgrid.helpers.mail.Mail
|
||||
import com.sendgrid.helpers.mail.objects.Content
|
||||
import com.sendgrid.helpers.mail.objects.Email
|
||||
import java.io.IOException
|
||||
|
||||
class Mailer (
|
||||
private val key: String
|
||||
) {
|
||||
fun sendEmail(from: String, to: String, content: String, subject: String): Boolean {
|
||||
val mail = Mail(
|
||||
Email(from),
|
||||
subject,
|
||||
Email(to),
|
||||
Content("text/plain", content)
|
||||
)
|
||||
|
||||
val sg = SendGrid(key)
|
||||
val request = Request()
|
||||
try {
|
||||
request.method = Method.POST
|
||||
request.endpoint = "mail/send"
|
||||
request.body = mail.build()
|
||||
val response = sg.api(request)
|
||||
return response.statusCode == 202
|
||||
} catch (ex: IOException) {
|
||||
throw ex
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user