RedmineにGmailを使ってメール送信させる

Redmineはチケットの更新時などに登録されているユーザにメールを送ることができるのですが,ここではRedmineにGmailを使ってメールを送信させる設定を行います.今のところGmailの他アプリケーションからのアクセスを許可する必要があり,セキュリティ面で微妙なところがありますので,試される方は自己責任でお願いします.

ちなみに環境はUbuntu 14.04.3, Redmine2.4.3です.大まかに以下をやる必要があります.

  • Redmine用のGmailアカウントを作成
  • Gmailの他アプリケーションからのアクセスを許可
  • redmineのconfiguration.ymlにてメール送信に使用するプロトコル,Gmailアカウントなどを設定

Redmine用のGmailアカウント

Redmineがチケット更新時などにユーザに送る際の,送信元メールとなるメールアカウントを作成します.Gmailのアカウントを作ってください.このとき,氏名や電話番号,関連メールアドレスなどを自分自身が普段使っているものと同じにすると,次のステップである「他アプリケーションからのアクセス許可の有効無効」が共通化されてしまうので,適当に氏名をRedmine Taroにするとか別のものにしておいてください(もうちょっと格好良い方が良いと思いますが笑).

他アプリケーションからのGmailアクセスを許可する

作成したGmailアカウントにログインし,アカウントの設定画面で「接続済みのアプリとサイト」を選択し,以下のように「安全性の低いアプリの許可」を有効にしてください.これは推奨される方法ではないので,普段使っているGmailアカウントを流用しない方が良いと思います.

範囲を選択_009.jpg

RedmineがGmailを使用するにはGmailアカウントにログインする必要がありますが,これが無効になっているとログインがはじかれて,後のテストメール送信が失敗します.

範囲を選択_007.jpg
ログインがはじかれたことが分かる

configuration.ymlの編集

/etc/redmine/default/configuration.ymlを編集します.このファイルが見つからない場合は,/usr/share/redmine/config/configuration.yml.exampleを/etc/redmine/defaultの中にコピーして,configuration.ymlに名前を変えてください.configuration.ymlを以下のような設定を追加します.[hogehoge]のところと[password]のところには自分が作成したGmailのアドレスとログインパスワードをそれぞれ入れてください.

default:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "smtp.gmail.com"
      port: 587
      domain: "mail.gmail.com"
      authentication: :plain
      user_name: "[hogehoge]@gmail.com"
      password: "[password]"

ネットの情報だとdomainのところは”smtp.gmail.com”に設定するとあったのですが,それでは後述のテストメールの送信が失敗しました.”mail.gmail.com”だとうまくいきました(だいぶハマった...).

確認

apache2を再起動します.

sudo service apache2 restart

次に,redmineにログインして「管理」→「ユーザ」に移動し,存在するユーザ(例えばadmin)を選択し,メールアドレスが設定されているか確認してください.このメールアドレスはユーザがredmineからのメールを受信するメールアドレスに相当しますので,例えば普段使っているGmailのアドレスなどでもOKです.

さらに「管理」→「設定」→「メール通知」に移動し,送信元メールアドレスのところに作成したGmailアドレスを記入してください.ついでにメールフッタもいらないので全削除して空白にし,右下の「テストメールを送信」を実行してください.

するとユーザに設定されたメールアドレスに,redmineからテストメールが届いているはずです.

範囲を選択_010.jpg
キター

必要だったのかよく分からないその他の設定

configuration.ymlをいじってもメール通知の設定画面でエラーが出て苦しんでいたとき,わけも分からず以下のような設定をして,とりあえずmailコマンドでGmailを利用してメール送信ができるようにしました.これが最終的に意味があったのかよく分かりませんが,上記でうまくいかなかったときは試してみてください.

mailコマンドでメールが送れるようにするために以下をインストール.postfix, saslというのも自動でインストールされます.

sudo apt-get install mailutils

途中で色々選択する画面が来ます.インターネットサイトを選択し,example.comを入力します.

daichi@daichi-pc: ~_004.jpg

daichi@daichi-pc: ~_006.jpg

次に,/etc/postfix/main.cfを以下のように編集します.[ホスト名]のところには,ターミナルを開いたときに表示される「taro@taro-laptop」みたいな部分の@以下を指します.なのでこの場合はtaro-laptopを記入します.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = [ホスト名]
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = example.com, [ホスト名], localhost.localdomain, localhost
relayhost = [smtp.gmail.com]:587
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = localhost
inet_protocols = all

# sasl setting 
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain

# tls setting 
smtp_use_tls = yes

次に/etc/postfix/sasl_passwdを編集(なければ作成)します.

[smtp.gmail.com]:587 [redmine用に作ったGmalアドレス]@gmail.com:[ログインパスワード]

さらに以下を実行してください.

sudo chown root:root /etc/postfix/sasl_passwd
sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
sudo service postfix restart
sudo service apache2 restart

確認

上記設定がうまくいったか確認します.念のため以下を実行して,GmailのSMTPサーバに接続ができることを確認します.「Connected to gmail-smtp-msa.l.google.com.
」みたいなのが表示されればOKです.

telnet smtp.gmail.com 465

次に以下を実行し,送信先のメールアドレスにメールが届くか確認してください.

echo "Body hogehoge" | mail -s "Subject piyopiyo" [送信先のメールアドレス]

[送信先のメールアドレス]は実際に受信が確認できるメールアドレスを使ってください.例を示すと以下みたいな感じになります.

echo "Body hogehoge" | mail -s "Subject piyopiyo" example@example.com

これがうまくいったら,再びredmineでテストメールの送信がうまくいくか確認してください.

以上です.

 

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中