前回RedmineとGit連携について書きましたが、今回は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を再起動。
$ 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スクリプトで。
$ 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経由で送ろうとしてハマったというブログ記事では、authentication: :loginに変更とありましたが、authentication: :plainで大丈夫でした。また、tls: trueを削除という記述がありますが、本環境では元々tls: の行は無かったのでRedmineのバージョンの違いかもしれません。
GMailのSMTPサーバをRedmineで使うというブログ記事では、action_mailer_optional_tls pluginについて触れられていますが、これはruby1.8のもの。Ruby 1.9 + Rails 3 + Gmailでtlsmailは必要なくなりましただそうです。
Gmail側の設定
1. アクティビティのアラート(ブロック)を解除する
Gmailでは、プログラム等からのアクセスがあると不正利用の可能性からブロックされ、不審なアカウント アクティビティの通知が送られます。
不審なアクティビティのアラート - Google アカウント ヘルプ
https://support.google.com/accounts/answer/1144110?hl=ja
Gmailの受信箱にこんなメールも来ます。
この場合、以下の手順で解除します。
- Gmailにログインした状態で以下のURLにアクセス
https://security.google.com/settings/security/activity - 「該当のアクティビティに心当たりがある」と回答するとブロックが解除されます。
2. キャプチャ画像認証を解除する
今回最大のハマリポイントでした。Redmineのテストメール送信で”(534-5.7.14”というエラーになる場合、この設定が必要になると思います。
- Gmailにログインした状態で、下記URLにアクセス
https://accounts.google.com/DisplayUnlockCaptcha - Googleアカウントへのアクセスを許可する
(参考)
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アドレスを設定。その他、ヘッダ/フッタ等を設定。
- 画面下部の「テストメール送信」をクリック。
無事にテストメールが送信されれば完了です。