【Redmine】メールが飛ばない問題と、その解決策
先日、BitnamiのインストーラーでインストールしたRedmineに関するお話。
メールのテスト送信をしようと思って、
「管理→設定→メール通知」
と進んだ時に出たメッセージがコレ。
メールを送信するために必要な設定が行われていないため、メール通知は利用できません。
config/configuration.ymlでSMTPサーバの設定を行い、アプリケーションを再起動してください。
※Redmine1.2以降は、config/configuration.ymlにSMTPサーバの設定を行うことになっている。
config/configuration.yml に記述した内容
# default configuration options for all environments
default:
# Outgoing emails configuration (see examples above)
email_delivery:
delivery_method: :smtp
smtp_settings:
address: "localhost"
port: 25
#authentication: :login
#user_name: "redmine@example.net"
#password: "redmine"
25番ポートの状況確認
念のため、25番ポートが開いてるかどうかを確認した。
$ netstat -na | grep ":25"
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
…開いてた。
ふと、気づいた。。
何度か、
「configuration.ymlを編集→再起動→メール通知ページ表示」
…という流れを繰り返していて、何となく
「編集した内容が、Redmineに反映されてないんじゃないか?」
と思うようになり、再起動コマンドをもう一度調べてみたところ…
今までは、ひたすら、
sudo ./ctlscript.sh restart apache
としていたが、これだけだとApacheが再起動されるだけでRedmineの更新はされず、
sudo ./ctlscript.sh restart
としないといけなかった模様。
Redmine個別であれば、
sudo ./ctlscript.sh restart redmine
で可。
これでメール設定が反映されるはず…
Mongrelとconfiguration.yml
Redmineを開こうとしたところ、今度はProxy Errorが発生するようになった。
ctlscriptで状況確認をしてみたら…
sudo ./ctlscript.sh status
subversion already running
apache already running
redmine not running
mysql already running
Redmineが動いていないとのことだった。
件のRedmineはMongrelで動いているので、ログ(mongrel.3001.log)を見てみたところ、以下のようなことが書かれていた。
attachments_storage_path (ArgumentError)
どうやら、configuration.yml(の下の方)で書かれていたattachments_storage_path部分に、パスの記述がなかったことが原因のようだったので、コメントアウトして、Redmine再起動。
sudo ./ctlscript.sh restart redmine
これで動くはず…と思ってRemineを見に行ったら、503エラー。
そこで、再び先ほどのMongrelのログを確認したら、今度は
autologin_cookie_name (ArgumentError)
というものが…
configuration.ymlの「attachments_storage_path」以下の記述には、次のような「パスが指定されていない」ものがズラリと並べられていたので、もう一気にコメントアウトした。
attachments_storage_path:
autologin_cookie_name:
autologin_cookie_path:
autologin_cookie_secure:scm_subversion_command:
scm_mercurial_command:
scm_git_command:
scm_cvs_command:
scm_bazaar_command:
scm_darcs_command:
その上でRemineを再起動してRedmineにアクセスしなおしたところ、ページがちゃんと表示された。
メールが送れない。。
メール通知ページは無事に表示されるようになったが、いざ、テストメールを送ろうとしたら、
メール送信中にエラーが発生しました (501 5.0.0 HELO requires domain address )
というエラーメッセージが表示されてしまった。
ドメインの指定をしないといけないようなので、configuration.ymlのemail_deliveryの項目に、
domain: "ec2-XXX-XXX-XXX-XXX-○○.compute.amazonaws.com"
を追記して、Redmine再起動。
これでメールも送れるようになった。
疲れた…(´Д`)ハァ…
もう一つ設定が…
チケットを作成したり更新したりすると、該当チケットへのリンク付きメールが飛んでくるが、
このリンクのURLが「localhost:3000〜」となっていた。
- 管理者としてログイン
- 管理→設定→全般
- 「ホスト名」を環境に合ったものに変える