RedmineのSMTPサーバにGmailを使うには

環境

Redmineのメール通知を行うのにGmailアカウントを使おうとしたらちょっとはまったので手順をまとめます。

RedmineGmailを使ったメール送信手順はよくありますが、このポストの最後の方にある5~6の手順はなかなか見つからないので、最後までしっかりと読んでください。

1. Redmineのルートディレクトリ以下の/config内にあるconfiguration.rb.sampleを同じディレクトリにconfiguration.rbとして保存します。

2. 以下の部分を見つけてコメントアウトを修正(#を外す)、user_nameとpasswordを自分のものに変えましょう。

※もし二段階認証にしているなら、アプリケーション用のパスワードをgmailアカウントの中で発行してください。

[code lang="ruby"]

production:

delivery_method: :smtp

smtp_settings:

tls: true

address: "smtp.gmail.com";

port: '587'

domain: "smtp.gmail.com";

authentication: :plain

user_name: "your_email@gmail.com";

password: "your_password";

[/code]

3. Redmineを再起動します。

※私の場合は、unicornを使っているので、unicornを一度止めて、再度起動します。

4. Redmineの管理者権限でredmineにログインし、[Administration] -> [Setting] -> [Email notifications]の順にクリックして、画面最下部にある[Send a a test mail]をクリックするとテストメールが管理者権限に設定されてあるメールアドレスに送られます、とはいきません。

5. エラー発生!

テストメールを送ると次のエラーメッセージが表示されます。

An error occurred while sending mail (getaddrinfo: Name or service not known)

これは、configuration.rbのほぼ最下部に

[code lang="ruby"]

production:

[/code]

というのが書かれていて、もともとあったGmail設定用のproductionキーの部分が上書きされて、Gmail設定がないものとみなされてしまうためです。

なので、

6. configuration.rbのproduction:をコメントアウトして、再度Redmineを再起動すれば無事にメールが送られるようになります。

この5~6を見つけるのに若干時間を費やしましたが、元ネタはこちらです。

1.3.2: An error occurred while sending mail (getaddrinfo: Name or service not known)