Postfix構築¶
簡易構築¶
ここではとりあえず使えるようにする場合を想定。
SMTPSやAMTP-Authなど詳細設定が必要な場合は別途項目を追加します。
インストール¶
- 依存パッケージはないはずなので、rpmでも一発で通ると思う。
(次項のMTA切替を手動で行えるなら、system-switch-mailは不要)# yum install postfix system-switch-mail
- デフォルトではSendmailが動いているので、Postfixへ切替を行う。
# system-switch-mail
- 上記完了時点で自動起動設定とサービス起動が行われている。
# chkconfig --list postfix postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off # service postfix status master (pid 4165) を実行中...
- 今時点ではまだサービスの設定は行えていないので、OFFにしておく。
# chkconfig postfix off # chkconfig --list postfix postfix 0:off 1:off 2:off 3:off 4:off 5:off 6:off # service postfix stop postfix を停止中: [ OK ] # service postfix status master は停止しています
設定¶
下記のファイルを変更する。
前提としてドメイン名を「localhost.local」とする。
つまりメールアドレスは「user@localhost.local」となる。
- /etc/postfix/main.cf
- サービス設定ファイル
- /etc/postfix/master.cf
- デーモン設定ファイル
- /etc/hosts
- 名前解決ファイル(DNS、ドメインが決まっていれば設定不要)
- IPアドレスとホスト名を記載する
こうすることにより、「localhost.local」宛の通信が(とりあえず)自分に向く。# vi /etc/hosts ------------------------------------------------------ # Do not remove the following line, or various programs # that require network functionality will fail. #127.0.0.1 localhost.localdomain localhost #::1 localhost6.localdomain6 localhost6 127.0.0.1 localhost.local localhost 192.168.0.5 localhost.local lovalhost
- postfixのサービス設定を行う。
ここでは、サーバ内のローカル配送を主に扱うこととする。
(インターネット外に出す場合、それなりに手続きが必要なため)# vi /etc/postfix/main.cf ------------------------------------------------------ # 変更箇所のみ記載 myhostname = mail.localhost.local mydomain = localhost.local myorigin = $mydomain inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain local_recipient_maps = unix:passwd.byname $alias_maps mynetworks = 192.168.0.0/24, 127.0.0.0/8 home_mailbox = Maildir/ smtpd_banner = $myhostname ESMTP $mail_name
- postfix のデーモン設定
# vi /etc/postfix/master.cf ------------------------------------------------------ # 今回は編集しない。
初回起動、自動起動設定¶
- サービス設定が完了したので、サービスを起動する。
中断させていなかった場合、サービスのリスタートを行う。# chkconfig postfix on # service postfix start
動作確認¶
- telnetでSMTPサーバをつついてみる。
PostfixからのSMTPバナー反応が返ってくること。# telnet localhost 25 Trying 127.0.0.1... Connected to localhost.local (127.0.0.1). Escape character is '^]'. 220 mail.localhost.local ESMTP Postfix
- テストメールを送ってみる
telnetを中断する場合、「Ctrl+む(」)」を入力すると中断できる。
余談だが、ここでタイプミスをすると不正メール送信となるので注意すること。
(存在しないアドレスを使用したスパムメールと同じ事になる。)# telnet localhost 25 Trying 127.0.0.1... Connected to localhost.local (127.0.0.1). Escape character is '^]'. 220 mail.localhost.local ESMTP Postfix EHLO localhost 250-mail.localhost.local 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN MAIL FROM: postmaster@localhost.local 250 2.1.0 Ok RCPT TO: root@localhost.local 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> Subject: test mail from telnet this mail is test mail. . 250 2.0.0 Ok: queued as EDC35EEE84 QUIT 221 2.0.0 Bye Connection closed by foreign host.
- 送信されていることを確認する
# less /root/Maildir/new/1337673972.Vfd00I344462M923969.localhost.localdomain Return-Path: <postmaster@localhost.local> X-Original-To: root@localhost.local Delivered-To: root@localhost.local Received: from localhost (localhost.local [127.0.0.1]) by mail.localhost.local (Postfix) with ESMTP id EDC35EEE84 for <root@localhost.local>; Tue, 22 May 2012 17:05:00 +0900 (JST) Subject: test mail from telnet Message-Id: <20120522080516.EDC35EEE84@mail.localhost.local> Date: Tue, 22 May 2012 17:05:00 +0900 (JST) From: postmaster@localhost.local To: undisclosed-recipients:; this mail is test mail.
もっと簡単にテストする場合¶
- mailx(CUIメールクライアント)を使用する場合。
# yum install mailx
- メール送信
# mail root@localhost Subject: test by mailx this mail is testmail. . Cc:
- 確認
# less /root/Maildir/new/1337674524.Vfd00I344463M835967.localhost.localdomain Return-Path: <root@localhost.local> X-Original-To: root@localhost Delivered-To: root@localhost.localhost.local Received: by mail.localhost.local (Postfix, from userid 0) id C0F1AEEE86; Tue, 22 May 2012 17:15:24 +0900 (JST) To: root@localhost.localhost.local Subject: test by mailx Message-Id: <20120522081524.C0F1AEEE86@mail.localhost.local> Date: Tue, 22 May 2012 17:15:24 +0900 (JST) From: root@localhost.local (root) this mail is testmail.
¶
¶