FreeBSD - Postfix or qmail or sendmail (350ポイント以上)


現在専用サーバーを借りてwebサーバーを構築しているのですが、はじめからインストールしてあったPostfixが機能せず PHP の mail() を使ってメールを送信しようとしても送信できません。

そこで今あるPostfixを全てアンインストールしsendmailかqmailをインストールしようと思います。 ただサーバー構築は初めてのため分かりやすく1から教えてください。 (例:まずsshでログインし cd /usr/etc/mail に行き make を実行し..な感じです。)

あと、現在sendmailにしようかqmailにしようか迷っています。sendmailは脆弱性のニュース良く耳にするのでqmailにしようか迷っています。最終的にはPHPスクリプトからメールが送信できればいいので、それを考慮してお願いします。

回答の条件
  • URL必須
  • 1人20回まで
  • 登録:
  • 終了:2006/10/21 05:45:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答9件)

id:junono No.1

回答回数695ベストアンサー獲得回数28

ポイント16pt

TurboLinuxの情報で申し訳ないですが

http://www.turbolinux.co.jp/dcforum/DCForumID11/7097.html

辺り参考になりませんか?

http://php.s3.to/man/ref.mail.html

にも書いてありますが、「メール関数を使用可能にするには、PHPのコンパイル時点でシステム上の sendmailバイナリにアクセスできなければなりません。」とありますので、MTAをインストールし治すのではなくて、PHPの再インストールをしみてはいかかですか?

http://jp2.php.net/manual/ja/ref.mail.php

http://www02.so-net.ne.jp/~ytanaka/freebsd/Postfix.html

辺りを見るとPostfixでも普通に使えるから、こういうページがあるんだろうなと思います。

id:junono No.2

回答回数695ベストアンサー獲得回数28

id:esecua

本当にPHPを再インストールすると直るんでしょうか?

現在PHPは正常に動いています。メールだけが機能していないのでメールを再インストールした方がいいと思うのですが、、、

2006/10/14 11:35:45
id:b-wind No.3

回答回数3344ベストアンサー獲得回数440

ポイント16pt

FreeBSD のパッケージ管理は ports/Package にて行います。

Postfix がどのように導入されているのかが分からないのですが、

これらの仕組みに沿っていると仮定して回答します。

基本的には以下の質問が類似であると思うので参考にしてください。

http://q.hatena.ne.jp/1159331293


ports が導入されている事を前提にすると以下のコマンドを順に実行する事で qmail の導入が行えます。

$ su -    # 実行ユーザーを root に
Password: # <- パスワードを入力する
# cd /usr/posts/mail/qmail
# make
# make install
# make enable-qmail

この時点で qmail がデフォルトの MTA となります。

Postfix 自体を削除してしまうには、

# pkg_info | grep -i postfix

でパッケージ名とバージョンが確認できるので、

# pkg_delete "上記で確認したパッケージ名"

で削除できます。

id:esecua

その前にb-windさんはPostfixを消去してqmailをインストールする方法でOKだと思いますでしょうか?

一応b-windさんが考える最善の方法で直してみたいと考えています。

2006/10/14 16:39:17
id:ito-yu No.4

回答回数323ベストアンサー獲得回数14

ポイント16pt

サーバから外にメールを送れない状態なだけで、phpからpostfixには正常に処理を渡していると思いますが。

・パケットフィルタ系のツールで通信を遮断していませんか?

・宛先アドレスは正しいですか?

・DNSの設定は正しく、名前解決も出来ていますか?

・前の質問で、mail()の第5引数に '-f自分のメアド' を加えたときに「だめでした..」とは何がどうダメなのですか?ログに変化はありませんか?バウンスは受け取れましたか?

・宛先のプロバイダによってInbound Port 25 Blockingされていませんか?

一つ一つ原因をつぶさないと、いつまで経ってもスキルアップできませんよ。

まずはtelnetとかで、宛先メールサーバの25番ポートへの接続が可能か確かめてみましょう。

http://e-words.jp/w/Telnet.html

id:esecua

ありがとうございます。

>パケットフィルタ系のツールで通信を遮断していませんか?

わかりません。一応ClamAVとSpamAssassinがインストールしてあります。

>・宛先アドレスは正しいですか?

>DNSの設定は正しく、名前解決も出来ていますか?

正しいです。できています。

>前の質問で、mail()の第5引数に '-f自分のメアド' を加えたときに「だめでした..」とは何がどうダメなのですか?ログに変化はありませんか?バウンスは受け取れましたか?

バウンスは受け取れませんでした。ログは変わったとこはありませんでした。

>宛先のプロバイダによってInbound Port 25 Blockingされていませんか?

分かりませんが、Yahoo,Gmail両方で試しました。

一応、現サーバーの登録したホストネームは hoge.co で 再構成した際 hostname で変更しました。これが何らかの原因ではないでしょうか?

よろしくお願いします。

(ito-yuさんがこの質問をブログに書くのか気になるところです。)

2006/10/14 19:57:04
id:ito-yu No.5

回答回数323ベストアンサー獲得回数14

ポイント16pt

できれば「まずはtelnetとかで、宛先メールサーバの25番ポートへの接続が可能か確かめてみましょう。」に対するレスポンスが欲しかったところですが。さて、サーバにはsshか何かでrootログインできると思ってよろしいですか?

# nslookup
> set type=mx
> example.com    ←宛先メアドの@より後ろ

と入れるとその後

~ mail exchanger = mail.example.com

みたいな表示が出るかと思います。それが相手メールサーバです。

次にそのメールサーバにtelnetします。

> exit
# telnet mail.example.com 25

と入れて

220 mail.example.com ~

みたいな行が出れば、接続できていることになります。

とりあえず、やってみて下さい。

結果は、適当に解釈せず、まずは一連の表示をコピペするくらいでないと判断ミスが入ります。

http://www.nurs.or.jp/~telnet/

telnetでsmtp(メール送信プロトコル)を使うのに参考になるページです。

id:esecua

これでよろしいでしょうか?

http://f.hatena.ne.jp/esecua/20061015093128

2006/10/15 09:32:07
id:ito-yu No.6

回答回数323ベストアンサー獲得回数14

ポイント15pt

telnetの結果を見る限り、ポート遮断の可能性は捨てていいみたいですね

では、次はたぶん存在しているmailコマンドでの送信を確認してみましょう。私のメアドに送ってみるのはどうですか?

# mail ito.ysk@gmail.com
Subject: TEST from esecua
From: (esecuaさんのメアド、私に晒しても良ければですが)

てきとうに文章を書いて下さい
.
EOT

赤字部分があなたの入力するところです。

空行も間違いなく入れて下さい。

で、結果にかかわらず、その際のmaillogを見せて下さい。

何かわかるかもしれません。


mailコマンドなんて無いよ!という事であればまた考えましょう

http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&...

id:esecua

ありがとうございます。

事情がありまして、自分のメールアドレス(Gmail)先にメールを送信してみました。

各詳細は http://d.hatena.ne.jp/esecua/20061015 にアップしておきました。

よろしくお願いします。

2006/10/16 04:47:48
id:ito-yu No.7

回答回数323ベストアンサー獲得回数14

ポイント15pt

前の回答に書いた設定ファイルはなにかの勘違いかも。

postfixのmain.cf設定ファイルの在処はわかりますか?

(うちのLinux・rpm版だと/etc/postfix/main.cfですが)

その中の、

myhostname = ~

はどうなっていますか?

http://www.kobitosan.net/postfix/trans-2.1/jhtml/postconf.5.html

今のhostnameと一致していなければ、変更してPostfixを再起動してみてください。

id:esecua

一致しています。

2006/10/16 12:50:05
id:ito-yu No.8

回答回数323ベストアンサー獲得回数14

ポイント15pt

まず、「From: 」も赤字にするのを忘れていました。スミマセン…

ログを見たところ

Oct 16 04:30:37 www amavis[2717]: (02717-10) DSN: NOTIFICATION: Action:failed, RELAYED 554 Clean, <root@mydomain.ne> -> <esecua@gmail.com>
Oct 16 04:30:37 www postfix/smtpd[68956]: warning: 100.100.11.10: hostname www.hostname.ne verification failed: hostname nor servname provided, or not known
Oct 16 04:30:37 www postfix/smtpd[68956]: connect from unknown[100.100.11.10]
Oct 16 04:30:37 www postfix/smtpd[68956]: NOQUEUE: reject: RCPT from unknown[100.100.11.10]: 554 5.7.1 <root@mydomain.ne>: Recipient address rejected: Access denied; from=<> to=<root@mydomain.ne> proto=ESMTP helo=<localhost>
Oct 16 04:30:37 www amavis[2717]: (02717-10) response to RCPT TO for <root@mydomain.ne>: "554 5.7.1 <root@mydomain.ne>: Recipient address rejected: Access denied"
Oct 16 04:30:37 www amavis[2717]: (02717-10) (!) mail_via_smtp: DATA skipped, no valid recips, 0

Recipient address rejected: Access denied

キーワードは↑ですかね。似たような状況の質問がありました

http://q.hatena.ne.jp/1124538561

hostnameの設定をしくじっているから、Postfixが中継を拒否しているように見えます。

http://www.postfix.org/securityportal.200011/closet20001122.html

/etc/postfix/access-inbound みたいなファイルはありますか?

そこに、現hostname(www.hostname.ne ですか)を通す設定を書いてみてください

www.hostname.ne	OK
id:esecua

access-inboundは無いようです。

ん~ちょっと特別なケースのような感じでしょうか。itoさんの回答も参考にさせていただきながら、freebsdに詳しい友人が今週中に見に来るので、追って報告します。

引き続き回答お願いいたします。

2006/10/16 12:55:54
id:furutanian No.9

回答回数112ベストアンサー獲得回数14

ポイント15pt

引き続き回答を、ということなので、ちょっとお邪魔します。

すでに考慮済みの事項だったら申し訳ないのですが、amavis をインストールされていませんか?

http://www.google.com/search?q=amavis&btnG=Search&ie=euc...

このアプリは、相当深く Postfix に絡みまくるみたいですが、そのあたりの設定は問題ないですか?

もし「考えてなかった」ということであれば、まずはコレを停止してみることをお勧めします。その上で、再度ログを採取ですね。

あと、以下のような問題もあるみたいなので、

http://tmtm.org/cgi-bin/w3ml/sylpheed-jp/msg/45

dig(もしくはnslookup)の結果も貼りましょう。

$ dig 100.100.11.10

$ dig www.mydomain.ne

$ dig www.hostname.ne

  • id:junono
    PHP の mail() 関数を抜きにして考えたとして、Postfixは普通に機能しているのでしょうか?機能してないというのが、MTAとして全く機能してないのか、関数を利用するという事で機能してないのか、どちらなのでしょうか?
  • id:esecua
    PostfixもPHPも機能していると思うのですが、Postfixの設定がおかしいのではないかと思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません