0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS LambdaでMJMLを動かす

Posted at

MJMLはHTMLメールを作成するためのテンプレート言語のようなものです。
メール送信する際にMJML形式で書かれたメールは最終的にHTMLに変換される必要がありますが、その変換部分をAWS Lambdaで実装します。

前提

  • AWS CDK
  • Lambda(Node.js)

インストールするライブラリ

  • mjml
  • @types/mjml

Lambda関数の作成

new lambda_nodejs.NodejsFunction(this, 'SendEmailFunction', {
      functionName: 'SendEmailFunction',
      runtime: lambda.Runtime.NODEJS_22_X,
      entry: './send-email/index.ts',
      handler: 'handler',
      bundling: {
        nodeModules: ['uglify-js'],
      },
    })

ポイントは、bundlingに'uglify-js'を含めることです。
そうしないと実行時にError: Cannot find module '../lib/utils.js'というエラーがでることになります。
詳細はIssueを参照してください。
https://github.com/mjmlio/mjml/issues/2132

MJMLのバージョン4.15.3でも解消されていませんでした。

実装

import mjml2html from 'mjml'というふうにインポートした関数を使ってMJML(文字列)をHTML(文字列)に変換することができます。

最後に

HTMLメールをお手軽に作成するツールは他にもあるのでしょうか?
古いOutlookへの対応などHTMLメールは歴史の分だけ奥が深いので、MJMLのようにそこを解消してくれるツールは非常に便利でした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?