3

在 grails-mail 插件中,您需要在服务中定义内联图像数据,假设您使用的是来自服务的 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 "marc.heidemann@live.de"
        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 个用户)的个人资料图片 - 如果没有在 service.groovy 中声明每个用户的个人资料图片,如何实现这一点?此外,这些图片存储在我的亚马逊 s3 应用程序之外。这可能是邮件插件的边界还是可以让它工作?如果不可能,您会为那些计划和创意人员提供什么作为替代方案?欢迎任何意见。

4

1 回答 1

2
  1. 循环访问您的用户。
  2. 使用grails-aws-plugin从 S3 获取相应的图片。
  3. 将图片插入电子邮件
  4. 使用邮件插件发送邮件

这样您就不必在服务中声明它。您可以从 S3 下载图片以将它们用作内嵌图片,也可以使用 S3 提供的 url。

要访问文件以进行内联使用:

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

要获取公共网址:

def url = aws.s3().on(bucket).url(name, path)
于 2012-12-29T14:32:40.367 回答