1

でsmtpを構成しようとしましたapplication.conf

mail.smtp.host=smtp.sendgrid.net
mail.smtp.user=${SENDGRID_USERNAME}
mail.smtp.pass=${SENDGRID_PASSWORD}

そしてコントローラーで

MultiPartEmail email = new MultiPartEmail();
//... setting from,to,subject,content...
Mail.send(email); //using Play's util

ただし、smtp サーバーの認証時にユーザー資格情報が正しくないという例外が発生します。

私が気づいたことの 1 つは、heroku にプッシュしてアプリを起動すると、次の警告が表示されることです。

   WARNING: Cannot replace SENDGRID_USERNAME in configuration (mail.smtp.user=${SENDGRID_USERNAME})
   WARNING: Cannot replace ENV_SENDGRID_PASSWORD in configuration (mail.smtp.pass=${SENDGRID_PASSWORD})

これは、デプロイ時にプリコンパイル フラグがオンになっているためでしょうか?? これが私のものProcfileです:

web:    play run --http.port=$PORT --%prod
4

1 に答える 1

4

私は私のために働く簡単なPlay+SendGrid + Herokuの例を作成しました:
https ://github.com/jamesward/playsendgrid

この例とあなたのコードの違いはわかりません。私が上で気づいた唯一の奇妙なことはそれが言うところENV_SENDGRID_PASSWORDです。おそらく、その環境変数名が間違っています。

于 2012-02-21T03:15:55.417 に答える