我希望 Grails 的邮件插件从类路径中的外部属性文件中读取配置属性。我已在 Config.groovy 中添加了这一行,
grails.config.locations = [
"classpath:app-${grails.util.Environment.current.name}-config.properties"]
我已经将属性放入该文件中,如下所示,
grails.mail.host = smtp.gmail.com
grails.mail.port = 465
grails.mail.username = username
grails.mail.password = password
这一切都工作正常。问题是,邮件插件还需要一个 Map 类型的属性。如果我们将该属性放入 Config.groovy 中,我看起来像这样,
grails {
mail {
props = ["mail.smtp.auth" : "true",
"mail.smtp.socketFactory.port" : "465",
"mail.smtp.socketFactory.class" : "javax.net.ssl.SSLSocketFactory",
"mail.smtp.socketFactory.fallback": "false"]
}
}
现在,如果我将其放入外部文件中,如下所示,
grails.mail.props = ["mail.smtp.auth" : "true",
"mail.smtp.socketFactory.port" : "465",
"mail.smtp.socketFactory.class" : "javax.net.ssl.SSLSocketFactory",
"mail.smtp.socketFactory.fallback": "false"]
这不起作用。我需要从外部文件读取 props Map。我已经搜索了很多但徒劳。感谢帮助。
最佳答案
您可以从外部 *.groovy
文件加载配置,您可以在其中包含 map 等,就像 Config.groovy
中一样。创建示例 mail-config.groovy
,内容如下:
grails {
mail {
host = smtp.gmail.com
port = 465
username = username
password = password
props = ["mail.smtp.auth" : "true",
"mail.smtp.socketFactory.port" : "465",
"mail.smtp.socketFactory.class" : "javax.net.ssl.SSLSocketFactory",
"mail.smtp.socketFactory.fallback": "false"]
}
}
并指向 Grails 使用它:
grails.config.locations = ["classpath:mail-config.groovy"]
关于email - Grails 中邮件插件的外部化属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25718920/