🔖
RailsアプリでLolipop!(ロリポップ)のメールサーバを使う
概要
Railsアプリでメールを配信する時に、ロリポップのメールサーバを使うようにしたので備忘録です。
環境
- 作ったアプリ:Ruby on Railsで構築
- ドメイン:Route53
- メールサーバ:Lolipop!(ロリポップ)
設定
Railsアプリでメール配信するのに必要な設定
メールを送信するのに以下の情報が必要です。
- address: "ロリポップのSMTPサーバーのホスト名",
- port: ロリポップのSMTPサーバーのポート番号,
- user_name: "ロリポップのSMTPサーバーのユーザー名",
- password: "ロリポップのSMTPサーバーのパスワード",
- domain: "yourdomain.com", # 送信元のドメイン名
必要な情報を調べよう
ロリポップのSMTPの情報は、
ユーザー専用ページの「メール設定/ロリポップ!webメーラー」の「メール設定」より確認できます。
とのことです。
Route53の設定
下記のサイトが参考になります。
- MXレコード
- TXTレコード
- Aレコード
を調べたら、Route53に登録します。
Railsの設定
Railsアプリを構築している環境にSSH接続し、
config/environments/production.rb
ファイルの情報を編集します。
production.rb
config.action_mailer.default_url_options = { protocol: 'https', host: "送信元のドメイン名"}
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
port:587,
address:'調べたSMTPアドレス(共通でsmtp.lolipop.jpっぽい)',
domain:'送信元のドメイン名',
user_name:'ロリポップのSMTPサーバーのユーザー名(メールアドレス)',
password:'登録したメールアドレスのパスワード',
authentication:'plain',
enable_starttls_auto: true
}
※設定を反映させるために、一度アプリケーションサーバを再起動します。
※plainのところはloginでもいいかも。
送信テスト
Railsコンソールでテストします。
ActionMailer::Base.mail(
from: '送信元のメールアドレス',
to: "送りたいアドレス",
subject: "テストメール",
body: "これはテストです。"
).deliver_now
無事送信されたら、仕様に合わせてRailsにメール送信のコントローラーなどを作って上げればいいかと思います。
ハマったところ
ポート番号
ロリポップのポート番号を使っていたのですが、全然出来ず。ポート番号を587に設定したらいけました。
これに気付くまで、「25番ポートを開放しないといけない」という記事に翻弄され、Lightsailの環境を一つ壊してしまいました;;
スナップショットで復元できたので良かったのですが。。
Discussion