如何覆盖config.groovy中定义的SMTP配置的现有地址

n92*_*n92 3 email grails grails-2.0

我安装了grails 2.0和邮件插件,我在confi.groovy中配置了SMTP,如下所示

grails {
mail {
  host = "smtp.gmail.com"
  port = 465
  username = "mymail@gmail.com  "
  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"]
}
Run Code Online (Sandbox Code Playgroud)

}

在我的一个控制器中,我正在做如下

sendMail {
  from "Vinay <mymail@gmail.com>"
  to "fred@g2one.com"
  subject "Hello John"
  html '<b>Hello</b> World'
}
Run Code Online (Sandbox Code Playgroud)

但是当我收到来自"mymail"地址的邮件时.Grails仍在使用smtp配置的用户名,如何覆盖它以便我可以自定义'from'地址

Ian*_*rts 5

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

如果您使用的是已知的固定地址集,那么您只需将它们全部添加到您的GMail帐户设置中,但无法使用GMail SMTP中的任意发件人地址.