2012-08-03 34 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中使用任意發件人地址。