Amazon SES

DKIMレコードとは?
電子署名を利用して、
改竄されていないことを確認するための仕組み。
検証の流れはこんな感じ
◆ 送信側メールサーバ
メールの一部をハッシュ化して秘密鍵で著名する。
そのハッシュをメールのヘッダの「DKIM-Signature」に設定する。
◆ DNSサーバ
受信側メールサーバに公開鍵を返す。
◆ 受信側メールサーバ
DNSから公開鍵を取得する。
取得した公開鍵で著名を復号化しハッシュを取得する。
メールの一部をハッシュ化した値と、
取得したハッシュを比較して改竄を確認する。
ーーーー
DKIM設定はTXTレコードまたはCNAMEレコード。
TXTレコードに公開鍵を設定する。
CNAMEレコードはTXTレコードを持つDNSサーバのドメインを指定する。
DMARCレコードとは?
DKIMまたはSPFの認証に失敗したときに、
受信側メールサーバがメールをどのように扱うか決定する。
ーーーー
参考メモ

独自ドメインからAWS SESでメールを送信するまでまでにやったこと
◆ DNS設定
1:独自ドメインを取得
2:DKIMレコード、DMARKレコードを設定(Amazon SESが提供してくれる ※手順3 )
3:MXレコード、SPFレコードを設定(Amazon SESが提供してくれる ※手順4 )
◆ AWS
1:アカウント作成
2:メールを受け取るためのメールアドレスを検証
3:メールを送信するための送信ドメインを検証
4:迷惑メールに届かないようにカスタム MAIL FROM ドメインの設定
5:SMTP認証情報の作成
◆ Rails
config/environments/development.rb
config.action_mailer.default_url_options = { host: "localhost", port: 'ポート番号' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'AWSのSMTP設定のページにあるSMTP エンドポイント',
domain: '取得したドメイン',
port: 587,
user_name: 'AWSの5の手順で用意したSMTPユーザー名',
password: 'AWSの5の手順で用意したSMTPパスワード',
authentication: :login
}
app/mailers/application_mailer.rb
class ApplicationMailer < ActionMailer::Base
default from: 'info@取得したドメイン'
layout "mailer"
end
app/mailers/contact_mailer.rb
class ContactMailer < ApplicationMailer
def send_hoge
mail to: '手順2で検証したドメイン', subject: 'hello'
end
end
rails console
ContactMailer.send_hoge.deliver_now
configファイル設定参考

DNS設定を確認するコマンド dig の使い方
dig ドメイン
dig MX 完全修飾ドメイン名
dig CNAME 完全修飾ドメイン名
dig TXT 完全修飾ドメイン名

独自ドメインに届いた電子メールを確認する
普段使いのGmailで確認する方法を調べた。
メールサーバを契約した会社の記事を探さないと困る。
設定項目が想像と違って完了するのに2時間かかった。
◆ 予想外
・ユーザ名には利用するフルのメアドを入力することが意外だった。
・POPサーバの入力欄に、
最初メールサーバのAレコードを指定して独自ドメインのサブドメインを指定していた。
正しくはさくらの初期ドメインだった。
◆ Amazon SESでメールを受信する場合
amazon sesで完結せず、s3等が必要かも?