你如何修复550必须通过使用Grails发送邮件进行身份验证?

时间:2010-08-17 02:34:24

标签: email grails smtp

我正在使用Grails Mail插件并尝试发送电子邮件并继续获取:

  

错误500:执行控制器的动作[sendInvite]   [RegisterController]导致异常:失败的消息:   javax.mail.SendFailedException:无效的地址;嵌套异常   是:com.sun.mail.smtp.SMTPAddressFailedException:550必须是   认证

我正在按照http://www.grails.org/Mail+plugin

的说明正确操作

2 个答案:

答案 0 :(得分:3)

当您尝试发送邮件时,邮件服务器返回错误。 550 is a generic SMTP failure code;在这种情况下,您似乎缺少用户名和密码。某些SMTP服务器不需要身份验证,但大多数服务器都需要身份验证,特别是如果它们在Internet上公开可用。您的SMTP服务器也可能需要SSL连接,并且您使用不安全的套接字进行连接。

example config for gmail显示了如何在Config.groovy中设置所有邮件服务器身份验证选项:

grails {
    mail {
        host = "smtp.gmail.com"
        port = 465
        username = "youracount@gmail.com"
        password = "yourpassword"
        props = ["mail.smtp.auth":"true",         
              "mail.smtp.socketFactory.port":"465",
              "mail.smtp.socketFactory.class":"javax.net.ssl.SSLSocketFactory",
              "mail.smtp.socketFactory.fallback":"false"]
    }
}

"mail.debug": "true"添加到道具中以打开JavaMail调试,以更好地了解失败前发生的情况。

答案 1 :(得分:1)

在我的情况下,550错误是由于我意外选择了IMAP帐户作为默认帐户,但是从我的Outlook Connector帐户发送了电子邮件(没有要进行的身份验证设置)。

我将Outlook Connector帐户更改为默认帐户。重新发送电子邮件,没有错误。

请检查是否将正确的电子邮件帐户设置为默认