SES のバウンス・苦情通知を Slack へ転送する「ses-feedback-to-slack」を公開しました

メール配信で見落としたくないのは、バウンス(送信失敗)と苦情(Complaint)です。放置すると送信レピュテーションに影響しますが、AWS のコンソールを定期的に見に行く運用は続きません。Slack に流し込む Lambda 関数を公開しました。

何をするツールか

SES の通知を SNS 経由で受け取り、バウンスと苦情を判別して Slack の Incoming Webhook に送信します。

構成は次のとおりです。

技術 用途
AWS Lambda (Ruby) メイン処理ロジック
AWS SNS SES の通知中継
Slack Incoming Webhook 通知送信先
AWS SAM デプロイ・ローカル実行・テスト
test-unit + mocha テストフレームワーク

対象を絞っている

バウンスと苦情以外の通知はエラーになり、通知されません。 何でも流して Slack を賑やかにするのではなく、対応が必要な2種類だけを確実に届けることを意図した挙動です。

調査時には環境変数 SHOW_RAW_JSONtrue にすると、SES から受け取った JSON をそのまま追加で出力できます。

設定

開発環境では .env.sample.json をコピーして .env.json を作り、Webhook URL を設定します。

{
  "Parameters": {
    "SLACK_WEBHOOK_URL": "https://hooks.slack.com/services/XXXX/YYYY/ZZZZ",
    "SHOW_RAW_JSON": "false"
  }
}

本番環境では template.sample.yaml から template.yaml を作り、同じ2つの値を設定します。

SAM CLI を使うため、デプロイ前にローカルで実行して動作を確かめられます。テストは test-unit と mocha で書いてあります。

CONTACT

フレイズに相談してみる

開発からデザインまで、構想段階からでも大丈夫です。
まずはお気軽にご相談ください。

[email protected]