Grailsスプリングセキュリティプラグインのgrailsメールプラグイン( https://grails.org/plugin/mail )を構成しようとすると、次のエラーメッセージが引き続き表示されます。
これが私の設定です。
grails { mail { Host = "smtp.office365.com" port = 587 username = "info @ email.com " password =" password " props = [" mail.smtp.starttls.enable ":" true "、 " mail.smtp.port ": "587"] } } grails.mail.default.from = "[email protected]"
そして、これが私のスタックトレースです。
....... |エラー2015-04-1711:59:39,184 [http-bio-8080-exec-8]エラーerrors.GrailsExceptionResolver-リクエストの処理中にMailSendExceptionが発生しました:[POST]/retouch/register/forgotPassword-パラメーター: ユーザー名:customer 失敗したメッセージ:com.Sun.mail.smtp.SMTPSendFailedException:550 5.7.60 SMTP;クライアントには、この送信者として送信する権限がありません 。スタックトレースは次のとおりです。 メッセージ:失敗したメッセージ:com.Sun.mail.smtp.SMTPSendFailedException:550 5.7.60 SMTP;クライアントには、この送信者として送信する権限がありません 行|メソッド ->> 131 | grails.plugin.mail.MailMessageBuilder のsendMessage ------ ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- | 55 | grails.plugin.mail.MailService のsendMail | 59 | sendMail。 。 。 '' | 156 | grails.plugin.springsecurity.ui.RegisterController のforgotPassword | 198 | doFilter。 。 。 grails.plugin.cache.web.filter.PageFragmentCachingFilter | 63 | grails.plugin.cache.web.filter.AbstractFilter のdoFilter | 53 | doFilter。 。 。 grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter | 49 | grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter のdoFilter | 82 | doFilter。 。 。 grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter | 1145 | Java.util.concurrent.ThreadPoolExecutor のrunWorker | 615 |実行します。 。 。 。 。 Java.util.concurrent.ThreadPoolExecutor $ Worker ^ 745 | Java.lang.Thread で実行
注:問題はGrailsのSpringSecurityプラグインでのみ発生します。
私はまったく同じ問題に遭遇しました。電子メールの「from」属性をno-reply @ localhostとして設定しようとしている春のセキュリティが原因で、問題が発生しているようです。これらの行を構成ファイルに追加してみてください
grails.plugin.springsecurity.ui.register.emailFrom = '[email protected]'
grails.plugin.springsecurity.ui.forgotPassword.emailFrom = '[email protected]'
注:[email protected]はoffice365のメールアドレスです
ユーザー名= "[email protected]"
grails.mail.default.from = "[email protected]"
ユーザー名emailはfromemailと同じでなければなりません。
GrailsがテストGMailアカウントを使用して非常に簡単にメールを送信できるようになりましたが、Outlook.office365.comアカウントから送信しようとすると、コードがエラーでクラッシュしました。
失敗したメッセージ:com.Sun.mail.smtp.SMTPSendFailedException:550 5.7.60 SMTP;クライアントには、この送信者として送信する権限がありません
私はこの行を見逃していただけであることがわかりました:
grails.mail.default.from = "[email protected]"
grails.mail.default.from
で指定されたメールアドレスはgrails.mail.username
で指定されたものと一致する必要があることに注意してください。
これが私のために働いた構成です。基本的な例は、本Grails in Action(2nd Ed)のHubbubの例です。
grails.mail.default.from = "[email protected]"
grails {
mail {
Host = "Outlook.office365.com"
port = 587
username = "[email protected]"
password = "secret"
props = [ "mail.smtp.starttls.enable" : "true",
"mail.smtp.port" : "587",
"mail.smtp.debug" : "true" ]
}
対応するメール送信機能は次のとおりです。
def email() {
println( "Sending email.." );
sendMail {
to "[email protected]"
subject "[mail-test]"
body ("This is a test email, time: " + new Date() )
}
println( " success!!!" );
flash.message = "Successfully sent email"
redirect( uri: "/" );
}