2012-12-29 37 views
3

在您需要的grails邮件插件中,假设您使用服务中的grails邮件,请在服务中定义您的内联图像数据。grails邮件:从电子邮件中的数据库渲染个人资料图片

你做到这一点,像这样在你的service.groovy

inline 'header', 'image/jpg', new File('./web-app/images/mailAssets/alert_header_pre.png') 

服务定义中,可以说:

def mailService 
def contactUser(userName, email) { 
    mailService.sendMail { 
     multipart true 
     to email 
     from "[email protected]" 
     subject "Hello from grails-mail" 
     text "Hallo from grails-mail multipart text modus" 
     html view:"/alert/test", model:[name:userName] 
     inline 'header', 'image/jpg', new File('./web-app/images/mailAssets/alert_header_pre.png') 
     inline 'footer', 'image/jpg', new File('./web-app/images/mailAssets/suchebottomre.gif') 
    } 
} 

现在,应用程序被渲染页脚和标题图片,好。

好了,现在这个项目的规划者的计划是在他们的电子邮件来呈现来自数据库的个人资料照片(约15.000用户) - 可以,如果再怎么能这样没有每个用户的个人资料图片声明里面的服务来实现。常规?此外,这些图片存储在我的应用程序以外的亚马逊S3。这可能是邮件插件的边界,还是有可能得到这个工作?如果不可能做到这一点,你会为那些计划和创意人员提供什么样的选择?任何意见都欢迎。

回答

2
  1. 循环遍历用户。
  2. 使用grails-aws-plugin从S3获取相应的图片。
  3. 插入图片到电子邮件
  4. 使用邮件插件

这样,你不必声明它在服务发送邮件。您可以从S3下载图片以将它们用作嵌入式图片,也可以使用S3提供的网址。

访问该文件内联用法:

def file = aws.s3().on(bucket).get(name, path) 

要获得公共网址:

def url = aws.s3().on(bucket).url(name, path) 
+0

感谢您对您所提供的信息资料 – thegrunt

相关问题