scala Play Framework 2.4 : 이메일 보내기

제니

play-mailer 를 사용하는 동안 scala Play framework 2.4에서 이메일을 보내려고 하는데 샘플 페이지의 지침을 따랐지만 성공하지 못했습니다.

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
}

(application.conf에 "play.application.loader = SimpleApplicationLoader"를 추가했습니다)

하지만 다음과 같은 컴파일 오류가 발생합니다.

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

어떤 아이디어?

바 쉬트 파리 크

다른 답변이 제안했듯이 런타임 종속성 주입을 사용할 수 있습니다. 그러나 현재의 접근 방식을 따르고 싶다면 계속 읽어보십시오.

문제는 3.x 브랜치MailerComponents 에 트레이 트가 존재하지 않는다는 것 입니다. 마스터 브랜치 에는 존재하는 것 같지만 다음 브랜치 에는없는 것 같습니다 . 나는 그들이 그곳에서 무엇을하고 있는지 잘 모르겠습니다.

예제를 계속하려면 약간의 조작을하고 컴파일하는 방법을 알아 내야합니다. 예를 들어. 조금 둘러 보면서 다음을 생각해 냈습니다.

import play.api._
import play.api.ApplicationLoader.Context
import router.Routes
import play.api.libs.mailer._

class SimpleApplicationLoader extends ApplicationLoader {
  def load(context: Context) = {
    new ApplicationComponents(context).application
  }
}

class ApplicationComponents(context: Context) extends BuiltInComponentsFromContext(context) {
  val mailerClient = new CommonsMailer(configuration)
  lazy val applicationController = new controllers.ApplicationScala(mailerClient)
  lazy val assets = new controllers.Assets(httpErrorHandler)
  lazy val router = new Routes(httpErrorHandler, applicationController)
}

기본적으로 존재하지 않는 것에 의존하여 MailerComponent나를 위해 mailerClient를 생성하는 대신 내가 직접 해냈습니다.

다음 줄이있는 경우 controllers.ApplicationScala

val id = mailer.configure(Configuration.from(Map("host" -> "typesafe.org", "port" -> 1234))).send(email)

다음으로 교체하십시오.

val id = mailer.send(email)

그리고 컴파일됩니다. 한편, 이에 대해 github에 문제를 제기해야한다고 생각합니다. 그리고 아마도 당신은해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Play Framework 2.4 이메일 보내기

분류에서Dev

Play! 2 Scala에서 웹 서비스로 파일 보내기

분류에서Dev

Play Framework 2보기 선언

분류에서Dev

Play Framework, Scala-새 데이터를 사용할 수있는 경우에만 클라이언트에 websocket 메시지 보내기

분류에서Dev

Play Framework : CSV 파일을 첨부 파일로 보내기

분류에서Dev

Play Framework 2.2.0 Java 이메일

분류에서Dev

Firebase and Play Framework (Scala) is it possible?

분류에서Dev

Mandrill API를 사용하여 Zend Framework 2에서 메일 보내기

분류에서Dev

Play Framework 2에서 외부에서 배우에게 메시지를 보내는 방법은 무엇입니까?

분류에서Dev

Can nulab/scala-oauth2-provider library on github be used with play! 2.0.4 framework

분류에서Dev

Scala Play framework 2.1 derived classes

분류에서Dev

Scala Play framework dependency in clean sbt project

분류에서Dev

Stackless Scala play framework runtime error

분류에서Dev

scala play framework reverse routing and controllers

분류에서Dev

Scala Play Framework Json Serializer 오류

분류에서Dev

Play Framework MVC 메일러

분류에서Dev

Configure QueryDSL on Play 2 Framework

분류에서Dev

Scala Play Framework에서 JSON 트리 구조 읽기

분류에서Dev

Play Framework 2.2 / Scala에서 재 컴파일 사이에 캐시 유지

분류에서Dev

Play 2 Scala-컨트롤러가 모델과보기를 보지 못함

분류에서Dev

Play 2.0을 사용하여 이메일 본문에 URL 보내기

분류에서Dev

Play Framework 2.2.2 (Scala)에서 동적으로 이름 변경 (@main)

분류에서Dev

Play Framework / Scala : 양식 개체에서 데이터 편집

분류에서Dev

Scala : Play로 JSON 파일 읽기

분류에서Dev

ASP.Net # 2에서 이메일 보내기

분류에서Dev

BlackBerry 10 / WebWorks 2 자동으로 이메일 보내기

분류에서Dev

Symfony2가 작동하지 않는 이메일 보내기

분류에서Dev

J2EE에서 이메일 보내기

분류에서Dev

Fail2ban-msmtp로 이메일 보내기

Related 관련 기사

  1. 1

    Play Framework 2.4 이메일 보내기

  2. 2

    Play! 2 Scala에서 웹 서비스로 파일 보내기

  3. 3

    Play Framework 2보기 선언

  4. 4

    Play Framework, Scala-새 데이터를 사용할 수있는 경우에만 클라이언트에 websocket 메시지 보내기

  5. 5

    Play Framework : CSV 파일을 첨부 파일로 보내기

  6. 6

    Play Framework 2.2.0 Java 이메일

  7. 7

    Firebase and Play Framework (Scala) is it possible?

  8. 8

    Mandrill API를 사용하여 Zend Framework 2에서 메일 보내기

  9. 9

    Play Framework 2에서 외부에서 배우에게 메시지를 보내는 방법은 무엇입니까?

  10. 10

    Can nulab/scala-oauth2-provider library on github be used with play! 2.0.4 framework

  11. 11

    Scala Play framework 2.1 derived classes

  12. 12

    Scala Play framework dependency in clean sbt project

  13. 13

    Stackless Scala play framework runtime error

  14. 14

    scala play framework reverse routing and controllers

  15. 15

    Scala Play Framework Json Serializer 오류

  16. 16

    Play Framework MVC 메일러

  17. 17

    Configure QueryDSL on Play 2 Framework

  18. 18

    Scala Play Framework에서 JSON 트리 구조 읽기

  19. 19

    Play Framework 2.2 / Scala에서 재 컴파일 사이에 캐시 유지

  20. 20

    Play 2 Scala-컨트롤러가 모델과보기를 보지 못함

  21. 21

    Play 2.0을 사용하여 이메일 본문에 URL 보내기

  22. 22

    Play Framework 2.2.2 (Scala)에서 동적으로 이름 변경 (@main)

  23. 23

    Play Framework / Scala : 양식 개체에서 데이터 편집

  24. 24

    Scala : Play로 JSON 파일 읽기

  25. 25

    ASP.Net # 2에서 이메일 보내기

  26. 26

    BlackBerry 10 / WebWorks 2 자동으로 이메일 보내기

  27. 27

    Symfony2가 작동하지 않는 이메일 보내기

  28. 28

    J2EE에서 이메일 보내기

  29. 29

    Fail2ban-msmtp로 이메일 보내기

뜨겁다태그

보관