3

単純なApacheCommonsEmailオブジェクトを作成し、コンパイルしました。インポート:import org.apache.commons.mail._そしてjavax.mail.internet.MimeMessageまた、次のことを行いました:

  def sendVerification(user: User) = {
    val email = new SimpleEmail()
        email.setHostName("smtp.sendgrid.net")
        email.setSmtpPort(465)
        email.setAuthenticator(new DefaultAuthenticator("user", "pass"))
        email.setSSLOnConnect(true)
        email.setFrom("Community Admin <admin@domain.com>")
        email.setSubject("TestMail")
        email.setMsg("""Welcome %s!

        Thanks for signing up. This email is to confirm your email address.

        Cheers,
        Admin Team
        """ format user.firstName)
        email.addTo(user.email)
        email.send()
  }

エラーは次のとおりです。

[error] C:\Users\path\to\AccountService\models\User.scala:43: object mail is not a member of package javax
[error] import javax.mail.internet.MimeMessage
[error]              ^
[error] error while loading Email, Missing dependency 'class javax.mail.internet.MimeMessage', required by C:\Users\path\lib\commons-email-1.2.jar(org/apache/commons/mail/Email.class)
[error] C:\Users\path\com\threetierlogic\AccountService\models\User.scala:256: value setHostName is not a member of org.apache.commons.mail.SimpleEmail
[error]                 email.setHostName("smtp.sendgrid.net")

ただし、コンパイルに行くと、で呼び出されるすべてのメソッドでエラーがスローされval emailます。これは可変性に関連する問題ですか?または、バージョンで何か変更があり1.3ますか?

4

1 に答える 1

6

Mel Nicholsonは正しい問題を指摘していました。これは、依存関係がフェッチされないことに関連しています。ダウンロードしたApacheJARに付属していないことに気づきませんでした。代わりに、それをsbtBuild.scalaとvoilaに追加しただけです。コンパイルしました。

val commonsMail = "org.apache.commons" % "commons-email" % "1.3"

于 2013-02-28T00:59:17.877 に答える