Я пытаюсь отправить электронное письмо из scala Play framework 2.4, используя play-mailer. инструкции со своей страницы образца, но безуспешно.
Я добавил зависимость в build.sbt:
libraryDependencies ++= Seq(
"com.typesafe.play" %% "play-mailer" % "3.0.1"
)
В application.conf я добавил следующее:
play.mailer {
host=smtp.gmail.com
port=465
ssl=true
tls=true
user="[email protected]"
password=abracadabra
}
И, наконец, класс рассылки:
package controllers
import java.io.File
import javax.inject.Inject
import org.apache.commons.mail.EmailAttachment
import play.api.Configuration
import play.api.Play.current
import play.api.libs.mailer._
class Mail(mailer: MailerClient) {
def send = {
val cid = "1234"
val email = Email(
"Simple email",
"Mister FROM <[email protected]>",
Seq("Miss TO <[email protected]>"),
bodyText = Some("A text message"),
bodyHtml = Some("some data....")
)
mailer.send(email)
}
}
Пока без ошибок компиляции, однако я не понимаю, как инициализировать этот класс... как мне получить экземпляр "MailerClient"?
В документации написано «Тогда в определении маршрутизатора используйте трейт MailerComponents» со следующим примером кода:
import play.api._
import play.api.ApplicationLoader.Context
import router.Routes
import play.api.libs.mailer._
class MyApplicationLoader extends ApplicationLoader {
def load(context: Context) = {
new ApplicationComponents(context).application
}
}
class ApplicationComponents(context: Context) extends BuiltInComponentsFromContext(context) with MailerComponents {
lazy val myComponent = new MyComponent(mailerClient)
// create your controllers here ...
lazy val router = new Routes(...) // inject your controllers here
}
(Я добавил "play.application.loader=SimpleApplicationLoader" в application.conf)
но я получаю следующие ошибки компиляции:
D:\myApp\app\SimpleApplicationLoader.scala:12: not found: type MailerComponents
[error] class ApplicationComponents(context: Context) extends BuiltInComponentsFromContext(context) with MailerComponents {
[error] ^
[error] D:\myApp\app\SimpleApplicationLoader.scala:13: not found: value mailerClient
[error] lazy val applicationController = new controllers.Mail(mailerClient)
[error] ^
[error] two errors found
[error] (compile:compileIncremental) Compilation failed
Есть идеи?