Project

General

Profile

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」とする。
つまりメールアドレスは「」となる。

  • /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.
    

 

戻る