Redmineのメール通知に使用するSMTPサーバーとして、SES(Amazon Simple Email Service)を利用するための手順を説明しています。
前提条件:
- 独自ドメインを使っていてDNSレコードを自分で変えられる、もしくは変えるプロセスがある
- DNSは既存のDNSを利用する
- Redmineの環境は構築済み(Redmine環境がAWS上にあるかどうかは関係ない(はず)です。)
- SESにはOregonリージョンを利用する
- IAMユーザーはこのために新規で作成する
手順概要
- SESでのドメイン保持証明開始 “Verify a new domain”
- DNSレコード追加
- SESドメイン保持証明完了
- SMTP Credentialの新規作成
- Redmine環境設定
- Sandboxから本番環境への移行依頼→移行完了報告
手順詳細
- SESでのドメイン保持証明開始 “Verify a new domain”
- SES HOME画面が表示されたらDomainsをクリックし、”Verify a New Domain”をクリックします。
- 証明したいドメインを入力します。このときDKIMの設定についても聞かれますが、必須ではありません。ここでは信頼性をあげるためにチェックを入れています。
- DNSレコードに入力する値が表示されます
- DNSレコード追加
- SESドメイン保持証明完了
- SMTP Credentialの新規作成
- DomainがVerifiedとなったらSES HOMEから”SMTP Settings”をクリックし、”Create My SMTP Credentials”をクリックします。
- SMTPのユーザー作成(IAMユーザー)の画面になりますので、基本的には特に修正する必要はないと思うので、このまま”作成”ボタンをクリックします。
- ユーザーの作成完了の画面になりますので、”ユーザーの SMTP セキュリティ認証情報を表示”をクリックして表示される情報を確認してメモを取るか、右下の”認証情報のダウンロード”をクリックしてダウンロードしてください。この画面以外で確認することはできませんので、ご注意ください。わからなくなったらIAMユーザーの再作成しかありません。
- Redmine環境設定
- Sandboxから本番環境への移行依頼→移行完了報告
まずSESはJapan Regionでは提供されていないため(2018年1月17日現在)、SESが提供されているRegionから利用するRegionを選択する必要があります。利用できるRegionについてはAWSの開発者ガイドをご確認ください。私の場合はOregonを利用しています。
自分が管理しているDNSサービスを利用して前ステップで確認したDNSレコードを追加していきます。
※ただし、今回メールの受信をSESで行うわけではないのでMXレコードを追加しないように注意してください。またDKIMに関するレコードは3つありますので、注意してください。CSVダウンロードできるので、CSVダウンロードしておくことをお勧めします。
DNSレコードの登録が完了すると、こんな感じのタイトルのメールが届きます。
“Domain Verification SUCCESS for ドメイン名 in region US West (Oregon)”
また、Domainsの画面でVerifiedとなっていれば証明が完了して利用可能な状態となっています。
DKIMについては多少時間がかかるようですが、以下の感じのタイトルのメールが届きます。ただし、上記でも記載しましたが、DKIMについては必須ではないので、これ以降の手順はDKIMの確認完了メールが届く前に実施可能です。
“DKIM setup SUCCESS for ドメイン名 in US West (Oregon) region”
設定を行う対象のファイルは$redmine_home/config以下のconfiguration.ymlというファイルです。このファイルに以下の情報を追記します。なお、このときRedmineのメール通知に設定してある送信元メールアドレスのドメインが設定した対象のドメインでなければ意味がありませんので、ご注意ください。。
1 2 3 4 5 6 7 8 9 10 11 |
default: email_delivery: delivery_method: :smtp smtp_settings: enable_starttls_auto: true address: "指定されたAWSのSMTPサーバー" port: 587 domain: "kohachi.net" authentication: :plain user_name: "上記で取得したIAMユーザーのユーザー名" password: "上記で取得したIAMユーザーのパスワード" |
最後にSESを利用しているアカウントで最初に使う場合は必ずSandbox環境になっていますので、利用状況に応じてSandboxからの制限解除の依頼を投げる必要があります。SES HOMEから”Sending Statistics”をクリック後、右の赤枠に記載されている”Request Increased Sending Limits”からRequestを出してください。問い合わせは日本語で可能です。
なお、SESの利用制限はこの”Sending Statistics”画面のSending QuotaとMax Send Rateで確認できます。