結論
可能性として
- Postfixが起動していない
- プロバイダのOP25B対策
がある
プロセス
今日何時間も格闘したのでメモ。
MacでRails開発している際、普通にはActionMailerでメールを送信できない。
- config.action_mailer.raise_delivery_errors = true
の場合
- Errno::ECONNREFUSED: Connection refused - connect(2)
メール送信時にこんなエラーが出るはず。
で、そもそもNet::SMTPが使えていないっぽいのです。
- % irb
- >> require 'net/smtp'
- >> smtp = Net::SMTP.start( 'localhost', 25 )
- Errno::ECONNREFUSED: Connection refused - connect(2)
ふむふむ。25ポートが空いてないっぽい。 そりゃそーだ。メールサーバ起動してないもん。。
- sudo postfix start
これで起動する。 Linuxの生活になれて、Postfixが起動していないというオチを考えてなかったため、ここまでに3時間くらいかかってます。
chkconfig的なものってないですかねぇ?
それでも送信できない場合は、そもそもmailが使えてない可能性が。
- % echo 'Hi' | mail -s test mitsuru.haga@gmail.com
- % tail /var/log/mail.log
これで送信が成功しているかチェックしましょう。 プロバイダのOP25B対策で送信できていない可能性があるので、各プロバイダでリレーホストを調べて /etc/postfix/main.cf に追加します。
例えば、うちはKDDIなので
- relayhost = relay-mta.auone-net.jp
こんな感じで追加しておきます。
以上