2012-08-03 37 views
3

我的grails安装2.0和mail plugin,我已经在confi.groovy配置SMTP SMTP配置的地址的现有如下如何覆盖从Config.groovy中定义

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

}

而在我的控制器之一,我做如下

sendMail { 
    from "Vinay <[email protected]>" 
    to "[email protected]" 
    subject "Hello John" 
    html '<b>Hello</b> World' 
} 

但是,当我收到来自地址“mymail”的邮件。 Grails仍然使用smtp配置的用户名,如何覆盖这个以便我可以自定义'from'地址

回答

5

Grails实际上是在做正确的事情并将指定的From行传递给SMTP服务器,但它是GMail认证的SMTP的“功能”,它只允许在GMail帐户中注册“我拥有的地址”的From地址。如果您尝试使用不是您注册的别名之一的发件人地址,那么GMail提供的发件地址将被GMail忽略,并且SMTP服务器将使用用于验证的帐户的主地址替换它。

如果您有一组已知的从地址组成的地址,那么您可以将它们全部添加到您的GMail帐户设置中,但无法在GMail SMTP中使用任意发件人地址。