LoginSignup
3
0

More than 3 years have passed since last update.

aws-sdkを使用して、sesでメールを送信する

Posted at

lambda内で処理した結果をsesを使用してメールで送信する。

環境

serverless -v

Framework Core: 2.1.1
Plugin: 4.0.4
SDK: 2.3.2
Components: 3.1.3

node -v

v14.7.0

目次

  1. メールアドレス登録
  2. serverless create
  3. コード追加

メールアドレス登録

awsマネジメントコンソールにアクセス、sesのコンソール画面に移動。
スクリーンショット 2021-03-14 19.06.11.png

画面上部のVerify a New Email Addressをクリックする。
スクリーンショット 2021-03-14 19.07.14.png
クリックしたらモーダルウィンドウが出てくるので、登録したいメールアドレスをクリック。
登録したら、awsから認証のメールが届くので、届いたメールのリンクをクリックし、認証を完了させる。

sandboxから外す

このままでは、認証を得たメールアドレスに対してしかメールを送信することができません。
登録したメールアドレスをsandboxから外しましょう。

公式ドキュメント

やることは簡単で、
Email Sending > Sending Statisticsより、Edit your account detailsをクリック
スクリーンショット 2021-03-14 19.16.51.png

Enable Production AccessをYesに変更するだけです。
他の項目は記入しなくても承認されるかと思われます。
一応他項目の詳細を記入しておきます。

  • Mail Typeは送信する予定のメールの種類を選択します。特に理由がなければ、Transactionalのままでokです。
  • Website Urlは所属している企業の会社説明のurlがベターかと思います。これの用途はAWSが、これから送信する予定のコンテンツの種類を理解するためです。なので、個人開発をしている方はtwitterなどのリンクでもいいかと思います。
  • Use case descriptionは、Amazon SES を使用してメールを送信する方法を記入します。
  • Preferred contact languageは母国語を選択してください。

スクリーンショット 2021-03-14 19.18.55.png

Submit for reviewをクリック後、10分ほどで、Production AccessがSandboxからEnabledに変更されると思います。変更されたら承認されたということです!🎉

serverless create

今回はTypeScriptを使用します。

serverless create -t aws-nodejs-typescript -n sample -p ./sample
npm install
npm install aws-sdk

コードを追加

今回は、受け取ったevent変数の文字列を送信してみたいと思います。

handler.ts
export const index = async (event: string) => {
  const params = {
    Destination: {
      ToAddresses: "送信先のメールアドレス",
    },
    Message: {
      Body: {
        Text: {
          Data: `event`,
          Charset: "utf-8",
        },
      },

      Subject: {
        Data: "テスト",
        Charset: "utf-8",
      },
    },
    Source: "sesに登録したメールアドレス",
  };
  return ses.sendEmail(params).promise();
};

デプロイ

sls deploy -v

AWSコンソールのlambdaの画面から今回デプロイした関数に対してテストを実行すると、引数に入れた文字列が本文となって、メールが送信されていることが確認できるかと思います。

参考url
https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/request-production-access.html
https://dev.classmethod.jp/articles/lambda-to-ses/

3
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
3
0