Клиент не имеет разрешений для отправки в качестве этого отправителя (office 365, grails)
Я постоянно получаю следующее сообщение об ошибке при попытке настроить плагин grails mail (https://grails.org/plugin/mail) для плагина безопасности Grails spring.
вот моя конфигурация выглядит до сих пор,
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 = "info@email.com"
и вот моя трассировка стека.
.......| Error 2015-04-17 11:59:39,184 [http-bio-8080-exec-8] ERROR errors.GrailsExceptionResolver - MailSendException occurred when processing request: [POST] /retouch/register/forgotPassword - parameters: username: customer Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 550 5.7.60 SMTP; Client does not have permissions to send as this sender . Stacktrace follows: Message: Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 550 5.7.60 SMTP; Client does not have permissions to send as this sender Line | Method ->> 131 | sendMessage in grails.plugin.mail.MailMessageBuilder - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 55 | sendMail in grails.plugin.mail.MailService | 59 | sendMail . . . in '' | 156 | forgotPassword in grails.plugin.springsecurity.ui.RegisterController | 198 | doFilter . . . in grails.plugin.cache.web.filter.PageFragmentCachingFilter | 63 | doFilter in grails.plugin.cache.web.filter.AbstractFilter | 53 | doFilter . . . in grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter | 49 | doFilter in grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter | 82 | doFilter . . . in grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter | 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor | 615 | run . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker ^ 745 | run in java.lang.Thread
Примечание: проблема только в плагине безопасности Grails spring.
3 ответов
я столкнулся с той же проблемой. Проблема, похоже, возникает из-за spring security, пытающейся установить атрибут "from" в письме как no-reply@localhost. Попробуйте добавить эти строки в конфигурационный файл
grails.plugin.springsecurity.ui.register.emailFrom = 'info@email.com'
grails.plugin.springsecurity.ui.forgotPassword.emailFrom = 'info@email.com'
Примечание: info@email.com ваш адрес электронной почты office365
имя пользователя ="info@emal.com"
граалей.почта.по умолчанию.от = "info@email.com"
имя пользователя email должно быть равно from email.
Я получил граали отправки электронной почты довольно легко с помощью тестовой учетной записи GMail, но код разбился с ошибкой, когда я пытался отправить из outlook.office365.com счет:
неудачные сообщения: com.солнце.почта.протокол SMTP.SMTPSendFailedException: 550 5.7.60 SMTP; клиент не имеет разрешений на отправку в качестве этого отправителя
оказывается, мне не хватало только этой строки:
grails.mail.default.from = "sample@somewhere.com"
обратите внимание на адрес электронной почты, указанный в grails.mail.default.from
должен соответствовать один в grails.mail.username
.
вот конфигурация, которая работала для меня. Базовый пример-пример Hubbub из книги Grails in Action (2nd Ed):
grails.mail.default.from = "sample@somewhere.com"
grails {
mail {
host = "outlook.office365.com"
port = 587
username = "sample@somewhere.com"
password = "secret"
props = [ "mail.smtp.starttls.enable" : "true",
"mail.smtp.port" : "587",
"mail.smtp.debug" : "true" ]
}
и вот соответствующая функция отправки по электронной почте:
def email() {
println( "Sending email.." );
sendMail {
to "test@gmail.com"
subject "[mail-test]"
body ("This is a test email, time: " + new Date() )
}
println( " success!!!" );
flash.message = "Successfully sent email"
redirect( uri: "/" );
}