LoginSignup
0
0

More than 5 years have passed since last update.

AWSのSimple Email Serviceを使って独自ドメインからメールを送信する方法

Posted at

目的

SESを使用する際のメモとして残します。

1. SESでの設定

ドメインを追加

ナビゲーションペインからDomainsに移動します。
Verify a New Domainという青色のボタンを押して新しいドメインを使用できるようにします。
ドメインを入力して、[DKIM Setting]をチェックします。
画面に表示されるレコード情報をそれぞれ設定します。

2. IAMでの設定

新規ユーザを作成

IAMにて新規ユーザを作成します。
この時、プログラムによるアクセスをチェックしてください。
アクセス権限の設定にて[SendEmail][SendRawEmail]を許可してください。
この時、アクセスキーIDとシークレットアクセスキーを控えておいてください。

3. SESでの受信ルールの設定

ここで使用したいメールアドレスをRecipientにします。
アクションはS3にしてください。既存のS3のストレージを選択するか新規作成してください。
そこにメールが保存されます。
prefixを設定すればそのディレクトリにメールが保存されます。

4. SESでの新規メールアドレスの設定

ナビゲーションペインからEmail Addressに移動します。
先ほどのストレージにVerification用のメールが届いているので確認してそのリンクに飛んでください。
このメールで「設定が完了していない」といったような内容のものが送られることがありますが、それはIAMにてドメインの権限を付与していないからです。
一度設定してからVerificationメールを送り直しましょう。

5. Node.jsでの送信

まず、先ほどのアクセスキーIDとシークレットアクセスキーをjsonファイルに保存します。
region-codeは各自の環境に合うものを調べてください。

credentials.json
{
  "accessKeyId": "ACCESSKEYID",
  "secretAccessKey": "SECRETACCESSKEY",
  "region": "REGION_CODE"
}

次にNode.jsでプログラムを実行します。
まずAWS SDKをインストールして、下記プログラムを実行します。
$ npm install aws-sdk --save

email.js
var AWS = require('aws-sdk');
AWS.config.loadFromPath('./credentials.json');
var ses = new AWS.SES({
  sslEnabled: true
});
var fromAddress="from@example.com";
var toAddress="to@example.com";
var subject="題名";
var body="本文";
var params = {
  Source: fromAddress,
  Destination: {
    ToAddresses: toAddress,
  },
  Message: {
    Subject: {
      Data: subject
    },
    Body: {
      Text: {
        Data: body
      }
    }
  }
};
ses.sendEmail(params, function(err, data) {
  if (err) {
    reject(err);
  } else {
    resolve(data);
  }
});
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