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

时间:2012-08-03 12:00:42

标签: email grails grails-2.0

我安装了grails 2.0和mail plugin,我在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"]
}

}

在我的一个控制器中,我按照以下方式进行操作

sendMail {
  from "Vinay <mymail@gmail.com>"
  to "fred@g2one.com"
  subject "Hello John"
  html '<b>Hello</b> World'
}

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

1 个答案:

答案 0 :(得分:5)

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

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