11 月 11 2008

Mac Leopard環境でActionMailerでメール送信できない時に見直すこと

Published by haga at 0:15 under ruby, ruby on rails

結論

可能性として

  • 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


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

以上

Trackback URI | Comments RSS

Leave a Reply