Как добавить шаблон электронной почты с усами и отправить его - PullRequest
0 голосов
/ 14 февраля 2020

Шаблон усов: email.mustache

{{subject}}

Hello {{userName}}!

Объект, который я отправлю.

data class Email(
        @Email
        val emailAddress: String,
        val subject: String,
        val userName: String,
        val message: String
)

Мой сервис:

@Service
class EmailService {

    @Autowired
    private lateinit var javaMailSender: JavaMailSender

    override fun sendEmail(email: Email): Boolean {
        val msg = SimpleMailMessage()
        msg.setTo(email.emailAddress)
        msg.setSubject(email.subject)
        msg.setText(email.message)
        try {
            javaMailSender.send(msg)
        } catch (e: Exception) {
            return false
        }
        return true
    }
}

Но как я могу загрузить мой шаблон усов в этом? Я думаю, мне нужно разобрать шаблон усов, а затем использовать его как msg.setText(parsedTemplate) - что-то вроде этого.

1 Ответ

0 голосов
/ 14 февраля 2020

Это выглядит как Усы. java может делать то, что вам нужно:

import com.github.mustachejava.DefaultMustacheFactory
import com.github.mustachejava.Mustache
import java.io.StringWriter

data class Email(
    val subject: String,
    val userName: String
)

fun main() {
    val scopes = mapOf(
        "email" to Email(subject = "Welcome", userName = "J_Strauton")
    )

    val writer = StringWriter()
    val mf = DefaultMustacheFactory()
    val mustache: Mustache = mf.compile("email.mustache")
    mustache.execute(writer, scopes)
    writer.flush()

    val email = writer.toString()
}

Ваш email.mustache файл может выглядеть так:

{{email.subject}}

Hello {{email.userName}}!
...