- ベストアンサー
Postfixの設定がわかりません
- Postfixの設定ファイルにおいて、ドメインがabcd.comの場合の設定方法について調査しました。
- OutlookExpressの設定においても、受信メールや送信メールの欄に記述する内容について検討しました。
- VPSのお試し環境において、abcde.fghij.comというドメインが割り当てられている場合の設定方法についても検討しました。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
> たとえばabcd.comのMXレコードを優先度10でmail.example.netにしたら、myhostname = mail.example.netにすればいいということですか? 違う。回答No.4でも書いたけど、myhostnameとMXレコードには何の関連性もない。 あなたはPostfixは今から勉強を始めたけどLinuxの事は良く分かっていると仮定して例をあげよう。 Linuxではhostnameコマンドでホスト名を設定する事が可能だ。しかし、これはそのLinux OSが自分で名乗りを上げただけであって、そうするとDNSサーバーが今設定した名前を認識する訳ではないよね? myhostnameはそれと同じ。単にあなたのPostfixが「オレの名前はmail.abcd.comだぜ」と自称するに過ぎない。 あなたが例えばお名前.comやムームードメインやさくらのドメインでabcd.comを取得するとAレコードやMXレコードを設定できるようになるよね。 回答No.4の補足から、abcd.comというドメインは特定のホスト(ここではあなたがPostfixを立ち上げようとしているVPS)に依存するものではなく、単に名前→IPアドレスを変換するエントリーであり世界中に散らばるドメインネームデータベースの一部であるだけだというのは分かっているように見受けられる。 > そしてOutlookExpress側は、abcd.comでいいということですか? 回答No.4や5ではイマイチソフトウェアの関連が分からなかったのでDNSとOutlookExpressに絞って説明しよう。 と、その前にもっと分かりやすいと思うのでWebとDNSについて説明しよう。 あなたがWebサーバーを立てたく、かつまだ立ててないとします。VPSはもう立ち上がっていて80番のファイアーウォールとかもばっちりとします。 そしてabcd.comというドメイン名を取得し、www.abcd.com A xxx.xxx.xxx.001というのを設定したとします。 くどいようですがまだWebサーバーは立ててません。いいですか? さて、Webブラウザでアドレス欄にhttp://www.abcd.com/と打ち込みましょう。 そうするとWebブラウザーからはサーバーから応答が返ってこなんだという画面になります。 今動作しているプログラムはあなたのパソコンのInternet ExplorerとどこぞのDNSサーバーだけです。Webサーバーはまだ起動していないのだから動くはずがありません。 多分もう何が言いたいのか分かったと思うけど、Webブラウザーはまずドメイン名からIPアドレスを引くためにDNSサーバーにアクセスします。そしてDNSサーバーにはwww.abcd.comのエントリーがあるのでそれを返します。WebブラウザーがWebサーバーに行くのはその後の話で、ここで初めてWebサーバーが立ち上がってないというのが発覚する。DNSの正引きまではWebサーバーは蚊帳の外だ。 さて、これをmail.abcd.comとDNSとOutlookExpressに置き換えるとどうなるか。 ポート番号が80番や443番から25番や110番や465番や587番や993番や995番になっただけで、 DNSにmail.abcd.comの正引きに行く→実際にメールサーバーにアクセスに行く という流れは全く同じ。 つまり、インターネット上のサービスを考える時にDNSと実際のサービスは別の設定・作業・タスクとして考えなければならない。 私が今までmyhostnameとDNSは違う。OutlookExpressはDNSの方を見ると言ってきたのはこういう事だ。 > ただ「分かりやすくするために、mail.example.netよりmail.abcd.comにした方がいい」 > んじゃないの、ということですか? で、じゃあmyhostnameは実際何の役に立っているかという事を説明しよう。 これも回答No.4で書いたが、他の項目のデフォルト値になっている。 他の項目の値とはなんぞやという話だが、Postfixの設定ファイルmain.cfでは以下のようなことができる。 something_parameter = 127.0.0.1/8 mynetworks = $something_parameter このようにある設定項目のバリューの方にダラーをつけて別の設定項目を書くと別の設定項目の中身がそこに埋め込まれるというスンポーだ。 で、例えばCentOS6のPostfixの各設定項目はどうなっているか。myhostnameに関するところだけ抽出してみると、 $ postconf -d | grep \$myhostname lmtp_lhlo_name = $myhostname local_transport = local:$myhostname milter_macro_daemon_name = $myhostname mydestination = $myhostname, localhost.$mydomain, localhost myorigin = $myhostname smtp_helo_name = $myhostname smtpd_banner = $myhostname ESMTP $mail_name smtpd_proxy_ehlo = $myhostname このように、myhostnameで設定した値が他の設定項目に反映されるようになっている。 で、ここで取り上げたい項目はmyoriginとmydestinationだ。 myoriginは、例えばcron、例えばWebサーバー上でMovableTypeやWordPressを立ち上げた時、メールが/usr/lib/sendmail経由でPostfixに入ってくるが、その時はFrom(正確にはエンベロープFromと呼ばれるもの・後で調べてみてくれ)がrootやapacheになっている。Postfixはその時、これにmyoriginを足して送信を試みる。なので myhostname = mail.abcd.com myorigin = $myhostname の状態だと、送られてくるメールのFromはroot@mail.abcd.comになる。そのメールがバウンスした日にゃあ当然mail.abcd.comという「メールドメイン宛」のメールサーバーが必要になるわけだ。 mydestinationはリアルユーザー宛のメールドメインになる。前述のCentOSのPostfixデフォルト値では以下のようになっていた。 mydestination = $myhostname, localhost.$mydomain, localhost さて、myhostnameがmail.abcd.comでmydomainにabcd.comが入っていたとすると、 mydestination = mail.abcd.com, localhost.abcd.com, localhost になる。なななななんと、「abcd.com」メールドメインを受け取らない。なんじゃーこりゃー。 つまりCentOSのデフォルトPostfixではmyhostnameはメールドメインを設定すべきだという事になるんだろうな。mydomainはオプション的な扱いで。 でもやっぱりmydomainがメールドメインでmyhostnameはメールサーバー名を指定するのが本則だと思うなぁ、うーん納得いかん。 なので、まぁmyoriginとmydestinationくらいは最低限自分で設定しておこうねという話。 ちなみに私はCentOS6のVPSを二台立てて片方を普通のMX、もう一方をバックアップMXにしているけど、DNSの設定は以下のようにしている。ドメインはexample.jpとする。 mail1.example.jp A xxx.xxx.xxx.250 mail2.example.jp A yyy.yyy.yyy.030 mail3.example.jp A xxx.xxx.xxx.250 example.jp MX 10 mail1.example.jp example.jp MX 20 mail2.example.jp example.jp MX 100 mail3.example.jp なぜこんな事にしているかというと、以前流行したスパムメールのやり口で「優先度の低いMXは設定が甘くメインMXもバックアップMXからのメール転送には甘いだろうからあえて優先度の低いMXにメールを投げつけたろう」というのがあったから。なので一番優先度が低いMXは実はメインMXという作戦でこうしている。 サーバー設定系の話題は質問者がどのくらいのスキルがあるか分からないのでどうしても探り探りのやりとりになってしまう。出来れば○○の話は分かるよというのを合わせて書いておくといいだろう。
その他の回答 (5)
- anmochi
- ベストアンサー率65% (1332/2045)
> 記載いただいた後半の通り設定したとすると、 > OutlookExpressの設定のところにでてくる受信メール(POP3)や > 送信メール(SMTP)の欄にはどう記述すればいいのでしょうか? まず質問に答えておくと、ドメインで設定したホスト名を入れればいいよ。 mail.abcd.comのAレコードがあるならmail.abcd.com。 受信メールも同じサーバーでDovecotなどを動かすならmail.abcd.comとする。 smtp.abcd.com A xxx.xxx.xxx.001 pop.abcd.com A xxx.xxx.xxx.001 imap.abcd.com A xxx.xxx.xxx.001 mail1.abcd.com A xxx.xxx.xxx.001 abcd.com MX 10 mail1.abcd.com という風にドメイン設定をするのがいい感じかな。そしてPOP3にはpop.abcd.comを、SMTPにはsmtp.abcd.comを指定するのがいいんじゃないだろうか。 なぜmail.abcd.comじゃなくてmail1.abcd.comをMXにしているのか、それが分かるならもうメールを取り巻くDNS設定については十分理解したと言えるだろう。 うーん、どういえばいいのかな。まず、Postfixはメール送信サーバーであって、メールシステムの一部を担う(だけ)ってのは分かるよね? メールをやり取りできる環境を構築するってのはPostfixの設定だけじゃないんだよ。 自分がOutlookExpressでメールを送信して、相手がThunderbirdのPOP3でメールを受け取るまでに、おおむね 1.自分のOutlookExpressがSMTPクライアントで自分のPostfixがSMTPサーバー 2.自分のPostfixがSMTPクライアントで相手のPostfixがSMTPサーバー 3.相手のThunderbirdがPOP3クライアントで相手のDovecotがPOP3サーバー という3つの通信が発生している。さらに、自分のPostfix、相手のPostfix、相手のDovecotがドメイン名で指定されている場合はここにDNSサーバーも絡んでくる。特に2番目の通信はほぼ間違いなくDNSの仕組みが必須だ。 自分と相手を入れ替えても話は全く同じ。POP3をIMAP4に置き換えても話は全く同じ。 あなたはこの全体を全て把握していなければメール送受信環境の構築はできない。 回答No.4に対するお礼での質問内容から、あなたはまず、DNSとはなんぞや、DNSサーバーがメールの仕組みと絡む時にどう設定されるべきで実際にどう使われるのか、というのを勉強するべきだと思う。 ドラクエ6に例えよう。メールサーバーを構築するのに十分な知識を蓄えたと言えるのが天空城でゼニス王に謁見するあたりだとすれば、今のあなたはハッサンと二人でダーマの神殿にたどり着いたあたりだ。 はい。分かりづらい。 まぁとにかく今はメールサーバー以前の話でつまづいているので、最終目標がメールサーバーを立てる事なら業者に頼む、理解する事なら自分でもう少し頑張る、多分QAサイトを利用して設定の方法を検証するという段階にないという事だと思うわよ。
- anmochi
- ベストアンサー率65% (1332/2045)
ここではあなたのVPSを VPS屋がVPSに振ったIPアドレス:xxx.xxx.xxx.001 VPS屋がVPSに振ったFQDN:abcde.fghij.com(本当はexample.netなどを使うべき) あなたがつけたいメールドメイン:abcd.com(本当はexample.comなどを使うべき) あなたがつけたいホスト名:mail.abcd.com(本当はmail.example.comなどを使うべき) として説明する。 > myhostnameで設定する「mail.abcd.com」というのは > OutlookExpressの設定のところにでてくる受信メール(POP3)や > 送信メール(SMTP)の欄に記述するものですか? ノー。OutlookExpressの設定のところに出てくる受信メールの欄に記述するのはこのサーバーのIPアドレスを引く事ができるFQDNつまりDNSサーバーが担う仕事であり、ここで設定する名前とは全く関係ない。 ここでの設定内容が表に出てくる場面があるとすればバナー(SMTPでよそから接続した時に最初にサーバーから返される文字列)。 > 「VPSのお試し」でやってみているのですが、 > VPSの方から「abcde.fghij.com」というドメインが割り当てられてます。 > この場合「mail.abcde.fghij.com」とでも設定すればいいのでしょうか? ノー。あなたが運用したいメールドメインを設定する。これにはドメインを自分で申請する必要がある。もう持っているならいい。 実はmyhostnameとmydomainは適当に設定してよい。多くの他の設定項目に埋め込まれるデフォルト値になっているので適切に設定しておいた方が便利がいいだけだ。 abcd.comというドメインでメールサーバーを構築したい場合、Postfixでやる事とドメインでやる事の2つを完了させなければならない。先にPostfixを見ていこう。ここではリアルメールボックスでメールを受け取る事にする(バーチャルメールボックスだと設定内容が全部変わるので別途調べていただきたい)。 ・myhostname = mail.abcd.com ・mydomain = abcd.com ・mydestination = $mydomain ・myorigin = $mydomain 最低限はこれだけだ。もちろんセキュリティやメール送信制限など細かく設定すべき。 sendmailコマンドではなくTCP(SMTP)で外へのメールを送りたい時にはmynetwork周りやsmtpd_recipient_restrictionsの設定を行う。 次に、ドメインの設定を行って全世界からこのVPSがabcd.comドメインのメールサーバーである事を認識させる必要がある。 ・ドメインabcd.comを申請する。 ・mail.abcd.comのAレコードをxxx.xxx.xxx.001にする。 ・abcd.comのAレコードをxxx.xxx.xxx.001にするか、またはabcd.comのMXレコードを優先度10でmail.abcd.comにする。後者の方法が本則。 メールサーバー構築というのはなかなか実験しづらいものではあるが、セキュアなメールサーバーを運用するためにはmain.cfの設定項目を(主要なものだけで良いので)全部マスターするくらいの気合が必要なのでぜひとも精進されたい。
お礼
ありがとうございます。 記載いただいた後半の通り設定したとすると、 OutlookExpressの設定のところにでてくる受信メール(POP3)や 送信メール(SMTP)の欄にはどう記述すればいいのでしょうか?
補足
お礼コメントの方は無視してください。 たとえばabcd.comのMXレコードを優先度10でmail.example.netにしたら、myhostname = mail.example.netにすればいいということですか? そしてOutlookExpress側は、abcd.comでいいということですか? ただ「分かりやすくするために、mail.example.netよりmail.abcd.comにした方がいい」んじゃないの、ということですか?
- t_ohta
- ベストアンサー率38% (5238/13705)
> 独自ドメインとして取得した「klmno.com」を使う場合は、「mail.klmno.com」とすればいいのですね。 > この文字列"mail"の部分は、自由に決めていいんですか? 自由に決めていいですが、DNSにちゃんと設定してそのホスト名でアクセスできるようにしましょう。 > それとyahooなんかの場合、受信がpop.mail.yahoo.co.jp、送信がsmtp.mail.yahoo.co.jpと別々なんですが、とういうふうな設定になっているんでしょうか? 受信用と送信用でサーバが分かれているとか、DNSで1台のサーバに複数のホスト名(CNAME)を設定しているという事ですね。 PostfixはSMTPサーバですから送信用の設定をすればいいのです。
お礼
DNSレコードの設定が必要なこと、よくわかりました。 ありがとうございます。 受信用のDovecotに、例えばjushin.klmno.comなどと設定すれば別々になるということですか?
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
サブドメインを指定するのは、DNSレコードの設定によるでしょう。 http://server.change.jp/5-minibird/5-minibird_5/ postfix側だけ設定すればどのサブドメインが使えるわけじゃありませんから。
お礼
DNSレコードの設定が必要なんですね、よくわかりました。 ありがとうございます。
- t_ohta
- ベストアンサー率38% (5238/13705)
> myhostnameで設定する「mail.abcd.com」というのは > OutlookExpressの設定のところにでてくる受信メール(POP3)や送信メール(SMTP)の欄に記述するものですか? そうです。 > 「VPSのお試し」でやってみているのですが、VPSの方から「abcde.fghij.com」というドメインが割り当てられてます。 > この場合「mail.abcde.fghij.com」とでも設定すればいいのでしょうか? この場合、「mail.abcde.fghij.com」と言うホスト名がサーバに割り当てられているのであればmail.abcde.fghij.comでいいですが、abcde.fghij.comがホスト名として割り当てられているのであればabcde.fghij.comがホスト名でかつドメイン名になると思います。
お礼
有り難うございます。 「abcde.fghij.com」がホスト名として割り当てられてますので両方とも「abcde.fghij.com」でいいんですね。 実際に利用する場合、VPSから割り当てられたドメインやホスト名を使うことはないと思います。 独自ドメインとして取得した「klmno.com」を使う場合は、「mail.klmno.com」とすればいいのですね。 この文字列"mail"の部分は、自由に決めていいんですか? それとyahooなんかの場合、受信がpop.mail.yahoo.co.jp、送信がsmtp.mail.yahoo.co.jpと別々なんですが、とういうふうな設定になっているんでしょうか?
お礼
ありがとうございます。 丁寧な解説まことに恐れ入ります。 何度も繰り返し読ませていただき、ぼんやりと分かってきました。 また本日メールシステム構築ガイドなどという本を図書館から借りてまいりました。 ざっと見ただけでも想像をはるかに越えてる内容です。 メールの構築について、完全に修得するつもりです。 記載いただいたものと、借りてきた本とで、色々とやってみます。 また分からないことが出てくれば、相談させていただきます。 これにてこの質問については一旦終了とさせていただきます。 本当に有り難うございました、感謝感謝。