Implement Mailer

This commit is contained in:
2019-10-08 02:31:23 +02:00
parent c156e2a7b1
commit afb7f7a1a6
7 changed files with 80 additions and 11 deletions

View File

@@ -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 {

View File

@@ -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) }
}

View 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
}
}
}