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 ユーザー) からプロフィール写真をレンダリングすることです。さらに、これらの写真は私のアプリの外部にある amazon 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)

公開 URL を取得するには:

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