はじめに
仕事でConoHaのメールサーバーを契約してRailsアプリからメール送信する実装を行う機会がありましたので、手順を残そうと思います。
前提
今回は、既に契約済みのConoHa VPSサーバーにメールサーバーを追加契約する手順で行っています。
メールサーバーのみ契約することもできると思うので、新規契約の場合はそこだけ適宜読み替えていただければと思います。
ConoHaメールサーバーを契約
ConoHaにログインします。
左側のメニューからサーバー追加をクリックします。
リージョンは東京のまま、サービスをメールサーバーに切り替えます。
- プラン:500円/月のプランにします。容量は後から5GB単位で無制限に拡張することができます。
- サブドメイン:適当な文字列を入力します。今回は独自ドメインを使うので、このドメインは使いません。
- ネームタグ:わかりやすい名前をつけます。今回は
mail-<ドメイン名>
としました。後から変更可能です。 - 自動バックアップ:今回は必要ないので無効のままにしておきます。有効にした場合は300円高くなります。
しばらく待つとサーバーリストの画面に戻ります。サーバーリストにメールサーバーが追加されています。
独自ドメインを追加
左側のメニューからサーバーをクリックします。
メールサーバーのネームタグをクリックします。
+ドメインボタンをクリックします。
独自ドメインを入力し、保存ボタンをクリックします。
メールアドレスを追加
左側のメニューからサーバーをクリックします。
メールサーバーのネームタグをクリックします。
+メールアドレスボタンをクリックします。
- メールアドレス:アカウント名を入力します。ドメインは先程追加した独自ドメインに変更します。
- パスワード:パスワードを入力します。
メールアドレスが追加されました。
DNSの設定
左側のメニューからサーバーをクリックします。
メールサーバーのネームタグをクリックします。
メールサーバーのサーバー情報を開きます。
MXレコード設定値とSPFレコード設定値の値を覚えておきます。
左側のメニューからDNSをクリックします。
ドメイン名をクリックします。
ペンのアイコンをクリックして以下のレコードを追加します。画像は既に追加してありますが気にしないでください。
なお、名称とTTLは空欄のままで大丈夫です。
タイプ | 値 | 優先度 |
---|---|---|
MX | 上記で確認したMXレコード設定値 | 10 |
TXT | 上記で確認したSPFレコード設定値 | - |
Railsアプリのメール送信設定
左側のメニューからサーバーをクリックします。
メールサーバーのネームタグをクリックします。
メールアドレスをクリックします。
接続先サーバー情報を覚えておきます。
Railsアプリのメール送信設定を行います。app/config/environments/production.rb
を以下のように設定します。
config.action_mailer.smtp_settings = {
:address => <接続情報のSMTP(s)サーバー>,
:port => 587,
:user_name => Rails.application.credentials.mail[:address],
:password => Rails.application.credentials.mail[:password],
:authentication => :plain,
:enable_starttls_auto => false
}
Credentialsを設定します。Railsアプリのルートディレクトリで以下のコマンドを実行します。
$ EDITOR="code --wait" rails credentials:edit
以下のCredentialsを追加します。
mail
address: <追加したメールアドレス>
password: <メールアドレスのパスワード>
以上で設定は終わりです。ConoHaメールサーバーを使って独自ドメインのメールアドレスがRailsアプリから送れるようになりました。