Redmine2.4 ＋ Gmail連携の設定 (BitNami/CentOS)

前回[RedmineとGit連携について](http://qiita.com/isaac-otao/items/1e6b57809e3841d600c2)書きましたが、今回はRedmineとGmailの連携です。
今回も結構ハマったので今後の参考になれば。。

# 環境（バージョン）
Redmineのバージョンによって結構違うようなので注意してください。

- CentOS 6.3 (on Windows Azure)
- Redmine 2.4.3.stable
- Ruby 1.9.3-p484 (2013-11-22) [x86_64-linux]
- Rails 3.2.16

RedmineはBitNamiのオールインワンインストーラーで入れていますが、Bitnami特有の面は少ないと思います。


※Redmineが提供しているaboutスクリプトで各種のバージョン確認できます。

```
$ sudo /opt/redmine-2.4.3-0/ruby/bin/ruby /opt/redmine-2.4.3-0/apps/redmine/htdocs/script/about

sh: darcs: command not found
sh: hg: command not found
sh: bzr: command not found
Environment:
  Redmine version                2.4.3.stable
  Ruby version                   1.9.3-p484 (2013-11-22) [x86_64-linux]
  Rails version                  3.2.16
  Environment                    production
  Database adapter               Mysql2
SCM:
  Subversion                     1.8.5
  Git                            1.8.5.3.321
  Filesystem
Redmine plugins:
  no plugin installed
```


# Redmine側の設定
## 1. configuration.yml編集
default:のemail_delivery:項目を編集します。編集したらapcheを再起動。

```shell-session
$ vi /opt/redmine-2.4.3-0/apps/redmine/htdocs/config/configuration.yml

# default configuration options for all environments
default:
  # Outgoing emails configuration (see examples above)
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      enable_starttls_auto: true
      address: "smtp.gmail.com"
      port: 587
      domain: "smtp.gmail.com"
      authentication: :plain
      user_name: "Gmailのアドレス"
      password: "Gmailのパスワード"
```

BitNamiの場合はctlscript.shスクリプトで。
```shell-session
$ sudo /opt/redmine-2.4.3-0/ctlscript.sh restart apache
Syntax OK
/opt/redmine-2.4.3-0/apache2/scripts/ctl.sh : httpd stopped
Syntax OK
/opt/redmine-2.4.3-0/apache2/scripts/ctl.sh : httpd started at port 80
$
```

（参考）
BitNami Redmine - Bitnami documentation 
http://wiki.bitnami.com/Applications/BitNami_Redmine#How_to_configure_the_email_settings_of_Redmine.3f
「enable_starttls_auto プロパティが無いと "(530 5.7.0 Must issue a STARTTLS command first ..."ってエラーメッセージが表示されるよ」、と書いてあります。



## 参考にしたけど、バージョン違いとかで適用外だったもの

[Redmine(2.0.3)の通知メールをGmail経由で送ろうとしてハマった](http://zafiel.wingall.com/archives/5192)というブログ記事では、authentication: :loginに変更とありましたが、authentication: :plainで大丈夫でした。また、tls: trueを削除という記述がありますが、本環境では元々tls: の行は無かったのでRedmineのバージョンの違いかもしれません。

[GMailのSMTPサーバをRedmineで使う](http://www.r-labs.org/projects/r-labs/wiki/GMail%E3%81%AESMTP%E3%82%B5%E3%83%BC%E3%83%90%E3%82%92Redmine%E3%81%A7%E4%BD%BF%E3%81%86)というブログ記事では、action_mailer_optional_tls pluginについて触れられていますが、これはruby1.8のもの。[Ruby 1.9 + Rails 3 + Gmailでtlsmailは必要なくなりました](http://d.hatena.ne.jp/shunsuk/20110110/1294657636)だそうです。



# Gmail側の設定
## 1. アクティビティのアラート（ブロック）を解除する
Gmailでは、プログラム等からのアクセスがあると不正利用の可能性からブロックされ、不審なアカウント アクティビティの通知が送られます。
不審なアクティビティのアラート - Google アカウント ヘルプ 
https://support.google.com/accounts/answer/1144110?hl=ja
Gmailの受信箱にこんなメールも来ます。
![gmail_block.png](https://qiita-image-store.s3.amazonaws.com/0/38461/635b2314-bcdb-f5b0-c908-76a6ef762de2.png)

この場合、以下の手順で解除します。

- Gmailにログインした状態で以下のURLにアクセス
https://security.google.com/settings/security/activity
- 「該当のアクティビティに心当たりがある」と回答するとブロックが解除されます。

![gmail_block2.png](https://qiita-image-store.s3.amazonaws.com/0/38461/a272354b-40be-69b6-e997-75186818ae70.png)



## 2. キャプチャ画像認証を解除する
今回最大のハマリポイントでした。Redmineのテストメール送信で”(534-5.7.14”というエラーになる場合、この設定が必要になると思います。

- Gmailにログインした状態で、下記URLにアクセス
https://accounts.google.com/DisplayUnlockCaptcha
- Googleアカウントへのアクセスを許可する
![google_unlock1.png](https://qiita-image-store.s3.amazonaws.com/0/38461/f0448a17-9277-e0cd-05ac-647f1ea14b32.png)
![google_unlock.png](https://qiita-image-store.s3.amazonaws.com/0/38461/a67fd920-c04a-e25c-73de-3be43e69fb83.png)


（参考）
Test notification mail send results in broken error message "error sending (534-5.7.14" - Bitnami Community 
http://community.bitnami.com/t/test-notification-mail-send-results-in-broken-error-message-error-sending-534-5-7-14/20719/7

クライアントでユーザー名とパスワードが受け入れられない - Gmail ヘルプ 
https://support.google.com/mail/answer/14257



# Redmine上からテストメール送信
- Redmineの「管理」→「設定」→「メール通知」タブにて
- 送信元メールアドレスにGmailアドレスを設定。その他、ヘッダ/フッタ等を設定。
- 画面下部の「テストメール送信」をクリック。
無事にテストメールが送信されれば完了です。

![Redmine.png](https://qiita-image-store.s3.amazonaws.com/0/38461/b84ca095-f487-56ca-95f0-8341e699e6e0.png)