Redmineのsmtp送信でメールが送れない場合

Facebooktwitter

Redmineのconf/configure.xmlでメール送信の設定があります。
smtp通信で送信する設定もあり、SSL/TLSやプレーンテキスト認証など様々な送信方式に対応し、まずメールが送れないことはあり得ません。
ところが、会社でBizMAILなどASPサービスを利用している場合は注意が必要です。

PCのメーラーに設定しているsmtpサーバと、そのサーバからのレスポンスに含まれるホスト名が一致しない場合があります。メーラーでは問題なく送れるかもしれませんが、そのsmtpサーバの設定をそのままconfigure.xmlに設定すると、redmine側ではエラーとなって送れません。

そこで、configure.xmlでは実際にsmtpからのレスポンスに含まれるホスト名を設定しましょう。
このホスト名は必ずしもDNSに登録されているとは限らないので、そういう場合ははhostsファイルに書き込んでおく必要もあります。

例:PCのメーラーでsmtp.xxx.co.jpを使っている場合

1)telnetでsmtpから帰ってくるホスト名を確認する。

# telnet smtp.azb.xyz.co.jp 25
と打ったとき、
返事が:
Trying xxx.xxx.xxx.xxx…
Connected to smtp.xxx.co.jp (xxx.xxx.xxx.xxx).
Escape character is ‘^]’.
220 xxx.yyy.zzz.net ESMTP Postfix

という場合は、configure.ymlのsmtpサーバーとホスト名にxxx.yyy.zzz.netと設定します。

2)configure.xmlを設定する
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      enable_starttls_auto: false
      address: “xxx.yyy.zzz.net”
      port: 25
      authentication: :plain
      domain: ‘xxx.yyy.zzz.net’
      user_name: ‘nakama@xxx.co.jp’
      password: ‘○○○○’

こんな感じになります。

3)あとhostsファイルにもそのIPアドレスとホスト名を入れてください。
xxx.xxx.xxx.xxx    xxx.yyy.zzz.net

__以上です__