【Redmine】メールが飛ばない問題と、その解決策

先日、BitnamiのインストーラーでインストールしたRedmineに関するお話。


メールのテスト送信をしようと思って、
「管理→設定→メール通知」
と進んだ時に出たメッセージがコレ。

メールを送信するために必要な設定が行われていないため、メール通知は利用できません。
config/configuration.ymlでSMTPサーバの設定を行い、アプリケーションを再起動してください。

※Redmine1.2以降は、config/configuration.ymlSMTPサーバの設定を行うことになっている。

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が動いていないとのことだった。


件のRedmineMongrelで動いているので、ログ(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〜」となっていた。

  1. 管理者としてログイン
  2. 管理→設定→全般
  3. 「ホスト名」を環境に合ったものに変える