結論

可能性として

  • Postfixが起動していない
  • プロバイダのOP25B対策

がある

プロセス

今日何時間も格闘したのでメモ。

MacでRails開発している際、普通にはActionMailerでメールを送信できない。

  1. config.action_mailer.raise_delivery_errors = true


の場合

  1. Errno::ECONNREFUSED: Connection refused - connect(2)


メール送信時にこんなエラーが出るはず。

で、そもそもNet::SMTPが使えていないっぽいのです。

  1. % irb
  2. >> require 'net/smtp'
  3. >> smtp = Net::SMTP.start( 'localhost', 25 )
  4. Errno::ECONNREFUSED: Connection refused - connect(2)


ふむふむ。25ポートが空いてないっぽい。 そりゃそーだ。メールサーバ起動してないもん。。

  1. sudo postfix start


これで起動する。 Linuxの生活になれて、Postfixが起動していないというオチを考えてなかったため、ここまでに3時間くらいかかってます。

chkconfig的なものってないですかねぇ?

それでも送信できない場合は、そもそもmailが使えてない可能性が。

  1. % echo 'Hi' | mail -s test mitsuru.haga@gmail.com
  2. % tail /var/log/mail.log


これで送信が成功しているかチェックしましょう。 プロバイダのOP25B対策で送信できていない可能性があるので、各プロバイダでリレーホストを調べて /etc/postfix/main.cf に追加します。

例えば、うちはKDDIなので

  1. relayhost = relay-mta.auone-net.jp


こんな感じで追加しておきます。

以上

Posted in ruby, ruby on rails at 11月 11th, 2008. No Comments.