Redmineの非同期メール送信ができなくなったので調べてみた
先日、AWSからさくらVPSにRedmineを移行しました。AWSのスモールインスタンスだと、毎月6千円くらいかかっていたので、さくらVPS1Gプランに変更し、ランニングコストを下げようということです。さくらVPS1Gプランなら月額980円なので、年間で6万円近く安くなる感じですね。
さて、それはいいとして、Redmineを移行したあと、メール送信(非同期のメール送信)ができていなことに気づいて色々調べてみました。ということで、備忘録程度にまとめておきます。
もともAWSで動いていたRedmineはバージョン2.3系をだったのですが、移行と同時にバージョンアップしv2.4.2にしました。その辺りで何か変更があったのかも知れません。
ちなみに、ZEALOTではGoogle Appsを使っているので、GmailのSMTPを使ってメール送信しています。
v2.3で動作していた設定は以下の通り。
production:
email_delivery:
delivery_method: :async_smtp
smtp_settings:
enable_starttls_auto: true
address: smtp.gmail.com
port: 587
domain: your.domain.com
authentication: login
user_name: "info@your.domain.com"
password: your_password
v2.4.2でちゃんと動作している時の設定
default:
email_delivery:
delivery_method: :async_smtp
async_smtp_settings:
enable_starttls_auto: true
address: "smtp.gmail.com"
port: 587
domain: your.domain.com
authentication: :login
user_name: "info@your.domain.com"
password: your_password
違いは、smtp_settingsがasync_smtp_settingsになっているところです。 いつからこうなったんですかね?(v2.4.2の設定では、default:の下に設定を書いていますが、ここでは、あまり気にしないでください)
ちなみに、メール送信のテストは、Redmineの画面から、「管理」>「設定」>「メール通知」の画面右下の「テストメールを送信」で自分にメールが送信されるようになっています。ちょっと分かりにくい。
もしくは、サーバにログインし、以下のコマンドを実行します。
$ cd redmineインストールディレクトリ
$ bundle exec rake redmine✉️test[your_name] RAILS_ENV=production
your_nameとなっているところは、Redmineに登録されているユーザ名になり、ここで指定したユーザのメールアドレス宛てにテストメールが送信されます。
ちなみに、v2.3の設定内容をそのまま コピーしてきて、上記のコマンドを実行すると以下の様なエラーと成りました。
An error occurred while sending mail (hostname "localhost" does not match the server certificate)
成功した時は次のような内容が出力されます。
An email was sent to xxxxx@your.domain.com