🔖

RailsアプリでLolipop!(ロリポップ)のメールサーバを使う

2023/04/27に公開

概要

Railsアプリでメールを配信する時に、ロリポップのメールサーバを使うようにしたので備忘録です。

環境

  • 作ったアプリ:Ruby on Railsで構築
  • ドメイン:Route53
  • メールサーバ:Lolipop!(ロリポップ)

設定

Railsアプリでメール配信するのに必要な設定

メールを送信するのに以下の情報が必要です。

  • address: "ロリポップのSMTPサーバーのホスト名",
  • port: ロリポップのSMTPサーバーのポート番号,
  • user_name: "ロリポップのSMTPサーバーのユーザー名",
  • password: "ロリポップのSMTPサーバーのパスワード",
  • domain: "yourdomain.com", # 送信元のドメイン名

必要な情報を調べよう

ロリポップのSMTPの情報は、

ユーザー専用ページの「メール設定/ロリポップ!webメーラー」の「メール設定」より確認できます。

とのことです。
https://lolipop.jp/manual/mail/mail-set/

Route53の設定

下記のサイトが参考になります。
https://blog.netools.info/lolipop-dns-record/

  • 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