2
2

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でメールサーバーを立ててみた

2
Posted at

はじめに

 私は金沢工業大学の情報工学科に所属している人間です。今はバックエンド開発や、インフラ系の学習をしています。
 この記事では私が初めてAWSのSESとS3を用いてメールサーバーを立ててみた時のお話をしていきます。

現状

 私はAWSでメールサーバーを立てる前はGMOのLolipopにて実装されるメールサーバーを利用していました。しかし、何分学生の身分ではサーバーを維持するのにお金がない!!ということでAWSに移管したらお値段が安くなるよということを聞き、今後インフラにも手を出すならAWSを学習し始めるかということで今回メールサーバーを立てていきます。

条件

 この記事の後ほどに実装する予定のメールサーバーを利用してメールの送受信がおこなえるようにすることができるようにする。※2025/12/29現在作成していません。

AWSとは

 まずAWSとは何なのかということを話していこう。
 この記事を読んでいる人なら一度は聞いたことがあるかもしれないが、AWSとはAmazonが提供している様々なクラウドサービスを自身で実装することのできるプラットフォームです。

SESとは

 SESとはユーザー自身のEメールアドレスやドメインを用いてEメールを送受信するためのメールプラットフォームです。

S3

 S3とはAWSが提供するストレージサービスであり、容量は無制限にデータを保存することができる。

構築

 今回はこれらのSESやS3を用いることにより、自身が受信したデータをS3にほぞんするようにする。

SESの設定

 AWSのコンソールにて、SESと調べ Amazon Simple Email Serviceの使用を開始する。
 すると図1のようになるので検証用メールアドレスの登録をおこないました。
image.png
図1 SES-メールアドレスの追加
 その次に、送信ドメインを記載するようになるので自身が所有しているドメインを登録してください。今回はbloomia.cloudで受信、ml.bloomia.cloudで送信されるようにします。というわけで、図2のように送信ドメインにbloomia.cloud、MAIL FROMドメインにmlを指定します。
image.png
図2 SES-ドメインの追加
 その後オプションに関してはなにも追加せずに画面を進めていくとある、図3の使用を開始を押下してドメインを追加します。
image.png
図3 SES-設定の確認
 すると、図4のような画面になるのでこの画面を下に遷移したところに出てくる、DomainKeys Identified MAil , カスタム MAIL FROM ドメイン , Domain-based Message Authentication,...のレコードセットをドメインを自身のネームサーバーに登録していきます。私の場合はCloudflareに最近ドメインを移管したのでCloudflareのネームサーバーに図5のように登録をしていきます。
image.png
図4 SES-ドメイン設定画面
image.png
図5 ネームサーバーへの登録
 次に、テナントを用意しよう。SESの設定からテナントを作成する。今回は図6のようにbloomiaというテナントを作成するようにする。
image.png
図6 テナントの作成
 また、テナントを作成した後にその作成したテナント内に入り設定をおこなう。この設定では、ID, 設定セットをそれぞれ割り当てる。IDには、先ほど登録したドメインを追加する。設定セットには初期のものを設定しておく。
 続いて、Eメール受信の設定をおこなう。SESの設定からEメール受信から設定をおこなう。すべてのルールセットから、ルールセットの作成を押下し一意のルールセット名を登録する。今回はmail-rule-setとした。また、そのルールセット名の中にすべての受信ルールを設定するためにルールの作成を押下する。受信ルール名はses.bloomia.cloudとし、受信者の条件の追加は空欄として続ける。その次に新しいアクションの追加を押下し、図7に示す画面からS3バケットへの配信を押下し、設定する。
image.png
図7 Eメール受信ルールのアクション設定
 図8に示すS3のバケットの設定をおこなう。
image.png
図8 S3バケットの設定
 S3バケットの作成を押下し、バケット名をbloomia.cloud-sesとした。また、オブジェクトキープレフィックスをMailbox/として次に進みルールを作成する。Eメール受信のページに戻り、先ほど作成したルールセットを有効化する。

S3の設定

 先ほど作成したbloomia.cloud-sesのバケットポリシーを以下のように編集する。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowSESPuts",
            "Effect": "Allow",
            "Principal": {
                "Service": "ses.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::[バケット名]/*",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceAccount": "[アカウントID]",
                    "AWS:SourceArn": "arn:aws:ses:[リージョン名]:[アカウントID]:receipt-rule-set/[ルールセット名]:receipt-rule/[ルール名]"
                }
            }
        }
    ]
}

以上の設定をおこなうことで、メールサーバーを立てることができる。

受信確認

 現在、サンドボックス環境となっておりSESのIDに登録しているメールアドレスまたはドメインしか送受信することができないので登録しているメールアドレスから今回はinfo@bloomia.cloudへと送信した。
 送信すると、図9のようにS3に保存される。
image.png
図9 S3へのメール保存

送信確認

 図10のようにSESのテストEメールの送信をおこなう。シナリオはカスタムを選択することにより、指定のメールアドレスに送ることができる。
image.png
図10 SES-テストEメールの送信
 送信先メールアドレスを確認すると図11のように受信していることがわかる。
image.png
図11

まとめ

 これらにようにAWSのSESとS3を利用することにより、メールサーバーを実装することができた。

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?