5


3

Grailsでtext / plainおよびtext / htmlパーツを含むマルチパートメールを送信するにはどうすればよいですか?

Grails Mailプラグイン(バージョン0.9)のコードとドキュメントを調べましたが、探しているサポートはありません。 単一のボディのみを設定し、静的ファイルを指すMIME添付ファイルを提供できます。 実際にモデルをGSPに渡し、HTMLバージョンとプレーンテキストバージョンの両方をレンダリングしてから、それらをメッセージで使用できるようにする必要があります。 これにより、非HTMLベースの電子メールクライアントがtext / plain部分を表示し、HTMLをサポートするクライアントがtext / html部分を表示できます。

Grailsでこれを行った人はいますか? それを行う簡単な方法はありますか、またはメールプラグインを変更する必要がありますか、またはJava Mailライブラリに直接移動する必要がありますか?

3 Answer


5


バージョン1.0以降、メールプラグインは、http://jira.grails.org/browse/GPMAIL-37で説明されているように、マルチパートの代替コンテンツをネイティブにサポートしています。

mailService.sendMail {
    multipart true
    to
    subject
    text 'my plain text'
    html 'my html text'
}


0


標準のメールプラグインでマルチパートメールを使用します。 次のコードスニペットはサービスクラスに配置されているため、gspエンジンの代わりに標準のgroovyテンプレートを使用しています。

        Template template = groovyPagesTemplateEngine.createTemplate()
        Writable emailBody = template.make()
        StringWriter bodyWriter = new StringWriter()
        emailBody.writeTo(bodyWriter)

        String xml =

        mailService.sendMail {
            multipart true
            to
            subject
            body bodyWriter
            attachBytes "filename.xml", "text/xml", xml.getBytes('UTF-8')
        }

重要なことは、「マルチパートtrue」がクロージャーの最初に現れることです。 追加した場合

html 'Hello World'

上記の閉鎖については、添付ファイル付きのテキストおよびhtmlメールを受け取ると想定しています。


0


これはMailプラグインのバージョン1.0の潜在的なコンテンツのようです。http://jira.codehaus.org/browse/GRAILSPLUGINS-2237 [this]およびhttp://jira.codehaus.org/browse/GRAILSPLUGINS-2606 [この問題。 最初の問題のパッチを見ると、htmlとテキストのマルチパートメッセージは次のように簡単に作成できると思います。

mailService.sendMail {
  multipart true
  to
  subject
  dualBody(template:, model:)
}

かなりクールになります! しかし、これがいつリリースされるかはわかりません。