11 月 11 2008
Mac Leopard環境でActionMailerでメール送信できない時に見直すこと
結論
可能性として
- 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)
>> 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
% tail /var/log/mail.log
これで送信が成功しているかチェックしましょう。 プロバイダのOP25B対策で送信できていない可能性があるので、各プロバイダでリレーホストを調べて /etc/postfix/main.cf に追加します。
例えば、うちはKDDIなので
relayhost = relay-mta.auone-net.jp
こんな感じで追加しておきます。
以上