その辺にいるITインフラ屋さん

気が向いた時に適当な記事を書いたりする個人の備忘録です。個人で開発しているアプリの事やインフラについてなどの記事を書いたりすると思います。更新頻度は少なめ

メール送信を出来るようにする(AWS SES)

目的

WordPressで問い合わせフォームを作ろうとして、Contact Form 7プラグインを導入しました。これが、送信元のメールアドレスがWordPress自体のドメインでなければならないという制約があったので、独自メールアドレスを利用できるSMTPサーバが必要になりました。smtpサーバ構築しようと思っていたのですが、心が折れたのでAWS SESを利用してみました。個人的メモなので、細かいところの説明はしません。 メールを送信するだけの設定でいっかと思ってましたが、メール受信も行う設定もしています。(受信メールはスマートではない)

構築した内容

  • 独自ドメインからSMTPを利用したメールを送信出来る
  • AWS S3に受信メールを保管する
  • せっかくなので、受信したメールを他のメールアドレスに転送する
  • メールはオレゴンリージョンから飛びます(SESが日本にないので…)

構築手順

独自ドメインを取得する

 お名前.comでもRoute53でも自分でDNS設定が出来ればなんでもいいです。私はxdomain使ってます。簡易メール機能があるので、正直そっちでもよいのですが、何かと不便なので独自構築の道を選びました。

Route53とxdomainを連携する

SESの設定はRoute53を利用していると楽なので、Route53のネームサーバを読み込めるようにしました。 - AWS側の作業 - Route53でHosted Zoneを作る(mayuki12.com)
作成するドメイン名と同じ。 - NSレコードにある4つのドメインをコピーする - xdomain側の作業 - 【ドメイン管理のネームサーバの確認・変更】を開く - さっきコピーしたドメインを貼り付ける

Route53にMXレコードを追加する

SESの設定

おおまかな流れとしては、下記の感じ

  1. ドメインの認証
  2. メールアドレスの受信設定
  3. メール送信用メールアドレスの認証

  1. ドメインの認証

    • SES -> Identity Management / Domains を開く
    • Verifty a New Domain で ドメインを認証させる
    • 問題がなければ数十分後にVerification Status = verifiedとなる
  2. メールアドレスの受信設定

    • Email Receiving/Rule Setsを開く
    • View Active Rule setを押してCreate Ruleする
    • Recipientsでメールアドレスを入力して次にいく
    • Actionsでメールの受信先を指定する
      • Add ActionS3を選ぶ
      • bucket名格納場所のprefixを入力する
      • 他のメールに転送したいときはSNS topicを設定する
    • Rule DetailsRuleの設定を行う
    • Reviewで設定内容を確認してCreate Ruleを行う
    • 利用できるメールアドレスからメールを送って見る
    • 問題なくメール受信できるようならS3にファイルが格納される
      • 人が読むには辛いので、読みやすくする工夫がいりそう。
  3. メール送信用メールアドレスの認証

    • 作ったメールアドレスでメール送信を出来るようにIdentity Management/Email Addressesから認証をする
    • Verifty a New Email Addresseで作ったメールアドレスを入力する
    • Verification Statuspending verificationになると、指定のメールアドレスにメールが飛ぶ(S3に格納される)
    • S3に格納されたメールから認証URLを開く(かなり見辛い)
    • 認証URLを開くと、SMTPでメールが送れるようになる
    • Email Sending/SMTP Settingsでサーバを確認する

SMTPの確認

SMTPを指定できるメーラからメールを送る。今回はWordPressWP Mail SMTPを利用する

  • WP Mail SMTPの設定画面を開く
    • 送信元アドレスをさきほど認証したメールアドレスにする
    • メーラOther SMTPを選択する
    • SMTP ホストで前項で確認したSMTPサーバのホストを指定する
    • SMTP UsernameSMTP Passwordは入手したAWSのキーを設定する(どこで入手できたか忘れた…)
    • 他の設定はよしなに。
    • WP Mail SMTPEmail Testからテストメールを送信してみる。
      • 送信先は利用できるメールアドレスならなんでもよい
    • 問題なくメールが送られたらSMTP設定が出来ている

問い合わせフォームの確認

WP Mail SMTPが問題なく設定できているようなら、Contact Form 7で作った問い合わせフォームから無事にメールが飛ぶようになります。めでたしめでたし。