skillup

技術ブログ

サーバー・ネットワーク

Amazon SESについて(Route53登録→SESで受信→S3で保存)

投稿日:2019年6月9日 更新日:

本日はAWSのSESのメモ。

2019年はJavaScriptとAWSを勉強する、と心に決め、JavaScriptの方は色々勉強しましたが、AWSの方が手付かずでした。

インフラ系はここ2年ぐらい進歩していないのでしっかりと勉強したいです。AWSは業務の方ではやっているのですが、リーダーのかたが作った環境に入っているだけで根本的なところが全然理解できていません・・(汗)

まだまだ調べ途中ですが、自分への備忘録として記述しておきます。

AWSのSESとは?

SESですが、AWSのメールサービスになります。

簡単な特徴としては下記のようなところでしょうか。

  • 配信数、クリック率などの数値を取ることが比較的簡単(管理画面で見れる)
  • AWSのSDKからメール送信のプログラムを簡単に送ることができる
  • 認証方法が豊富
  • サーバーの構築などは不要
  • 学習コストは比較的高め

実際にSESを使って送受信ということになりますと、当然SES単独では使用できず、S3やRoute53などAWSの他のサービスとの連携も必要になってくるかと思います。

参考リンク

AWSのSESを利用してメール送信

自動でメール配信をしたい!Amazon SESで効率的なメール配信をしよう!

メール受信について

元々は送信しかなかったようですが、今では送受信共にできるようです。

まずは受信に関して。

細かい設定などに関してはリンク先の方が優れていると思うので、大まかな流れについて書きます。

必要なプロセス

  1. Route53にてドメイン登録
  2. SESの設定画面にてRecordSetの登録
  3. SESのRuleSetの登録
  4. 別サービス側での処理(S3やLamdaなど)

Route53にてドメイン登録

まずドメインの登録です。

お名前やムームーなど他のレジストラのドメインを取っていてももちろん大丈夫かと思いますが、当然同じサービスを使っていた方が設定が楽ですので、私は新たにとりました。

ここら辺は一般のレジストラでドメインを取得する流れと一緒だと思います。

参考リンク

AWS Route53でドメインを取得する

 

SESの設定画面にてRecordSetの登録

ドメインを登録した後はDNSへの登録をしなくてはいけません。

今までWEBしかやったことなかったんでここら辺は知識がいい加減ですね・・

と言ってもAWSの場合は、ほぼ自動でてきます。

SESの画面からドメインを認証させることができます。

Gmail + AWSで独自ドメインのメールを受信する

↑この記事の「AmazonS3でメールを受け取れるようにする」のRecordSetの登録までが参考になる思います。

SESの画面でDomainsを選んで、「Verification Status」「DKIM Status」がverified「Enable for Sending」がYesになっていればOKです。

またRoute53の画面で「ホストゾーン」を選び、対象のドメイン名にMXタイプのレコードセットが登録されていればOKです。

他のレジストラでドメイン登録している場合はRoute53に直接レコードセットを登録することになります。

また、DNSの仕組みなどは下記リンクが非常にわかりやすいです。

DNSレコードってなんだ?

DNSとは? 全体像とDNSレコードの種類

SESのRuleSetの登録

DNSを設定したら、SESでメールを受信した時の動きを制御します。

これをSESではRuleSetというらしく、受信した後

  • S3に保存
  • SNSに通知
  • Lamdaで処理

など通知をトリガーにして様々なサービスと連携させることができます。

具体的な設置などは下記のリンクがわかりやすいかと思います。

[新機能]Amazon SES でメール受信が出来るようになりました!

別サービス側での処理(S3やLamdaなど)

例えばS3に登録する場合ですが、

SESからS3へアクセスさせる時ですが、そのままでは「could not write」などみたいなエラーが出て書き込みをすることができません。

そのため、S3に入り、アクセス権限→パケットポリシーというところで下記のようなコードを保存する必要があります。

ここまでやれば後はメールを送信した時にS3にメールの生データが入っていると思います。

私は実務ではここからメールパーサーを使ってデータをとり出していましたが、このままでは使えない(メールとして見れない)ので(注1)実際には転送するのが一般的かと思います。それらの設定についてはおって調べ中です。

注1 SESのメールを直接メールクライアント(例えばOutLook)で見ることはできないようです。

実際にメールを転送して一般のメールクライアントでみる方法はこちら
Amazon SESでの受信→S3→Lambdaでのメール転送

-サーバー・ネットワーク
-,

執筆者:


  1. […] Amazon SESについて(Route53登録→SESで受信→S3で保存) […]

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

CentOS7でのIP固定

日ごろ業務ではwindowsにVitrtualBox+VagrantにCentOSをいれていたのですが、スペックにややネックがあったため、今は使っていないPCにCentOS7を入れて開発企図して使うこ …

no image

OSコマンドインジェクション

Contents1 OSコマンドインジェクションとは?2 被害3 対策4 参考リンク OSコマンドインジェクションとは? OSに対する命令文を不正に紛れ込ませて攻撃させる手法。 被害 サーバー内のファ …

no image

inotifyによる検知

以前、pynotifyというpythonの検知プログラムを書きましたが、元々はinotifyというLinux上のパッケージのライブラリが元になっています。 以前調べたリンク 監視検知処理に関して 実務 …

no image

sourceコマンドに関して(Linuxサーバー&MySQL)

Linux上ではコマンドをテキストファイルに記述して、

と入力すると命令を実行してくれます。 シェルスクリプトよりもお手軽に実行できる …

no image

nginxまとめ

10~11月はデータベースをちょっと勉強しておりましたが、12,1ぐらいはサーバーインフラ系の強化月間としようかと思います。 しばらくはnginxについてです。 Contents1 nginxの概要2 …