LoginSignup
1
1

More than 3 years have passed since last update.

Postfix お手軽設定&起動&利用

Last updated at Posted at 2020-08-06

はじめに

Postfix をお手軽に起動して SMTP サーバを起動する手順です。

セキュアサーバの設定などは置いといて、自分のローカル環境などで SMTP サーバを立てたいなどお手軽に設定する手順なので注意してください。

環境は Red Hat Linux 7 です

cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.7 (Maipo)

インストール

Postfix とそれに必要なライブラリをインストールする。

yum -y install postfix
yum -y install cyrus-sasl

インストールできたかの確認

rpm -q postfix
postfix-2.10.1-9.el7.x86_64

以下のライブラリもインストールする

yum -y install cyrus-sasl-plain
yum -y install cyrus-sasl-md5

おそらくこれらのライブラリがないとメール送信するときに以下のようなエラーがでると思います。

Aug  5 01:06:52 ip-172-31-15-34 postfix/smtpd[16097]: connect from ip-172-31-15-34.ap-northeast-1.compute.internal[172.31.15.34]
Aug  5 01:06:52 ip-172-31-15-34 postfix/smtpd[16097]: warning: SASL authentication failure: Internal Error -4 in server.c near line 1757
Aug  5 01:06:52 ip-172-31-15-34 postfix/smtpd[16097]: warning: SASL authentication failure: Internal Error -4 in server.c near line 1757
Aug  5 01:06:52 ip-172-31-15-34 postfix/smtpd[16097]: warning: SASL authentication failure: Internal Error -4 in server.c near line 1757
Aug  5 01:06:52 ip-172-31-15-34 postfix/smtpd[16097]: warning: xsasl_cyrus_server_get_mechanism_list: no mechanism available
Aug  5 01:06:52 ip-172-31-15-34 postfix/smtpd[16097]: fatal: no SASL authentication mechanisms
Aug  5 01:06:53 ip-172-31-15-34 postfix/master[16089]: warning: process /usr/libexec/postfix/smtpd pid 16097 exit status 1
Aug  5 01:06:53 ip-172-31-15-34 postfix/master[16089]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling
Aug  5 01:08:36 ip-172-31-15-34 postfix/smtpd[16124]: connect from ip-172-31-15-34.ap-northeast-1.compute.internal[172.31.15.34]
Aug  5 01:08:36 ip-172-31-15-34 postfix/smtpd[16124]: disconnect from ip-172-31-15-34.ap-northeast-1.compute.internal[172.31.15.34]

設定

# diff -u /etc/postfix/main.cf.orig /etc/postfix/main.cf
--- /etc/postfix/main.cf.orig   2020-08-05 00:24:32.358806466 -0400
+++ /etc/postfix/main.cf        2020-08-05 00:33:54.455135924 -0400
@@ -74,6 +74,7 @@
 #
 #myhostname = host.domain.tld
 #myhostname = virtual.domain.tld
+myhostname = <FQDNなホスト名>

 # The mydomain parameter specifies the local internet domain name.
 # The default is to use $myhostname minus the first component.
@@ -81,6 +82,7 @@
 # parameters.
 #
 #mydomain = domain.tld
+mydomain = <ドメイン名>

 # SENDING MAIL
 #
@@ -97,6 +99,7 @@
 #
 #myorigin = $myhostname
 #myorigin = $mydomain
+myorigin = $mydomain

 # RECEIVING MAIL

@@ -114,6 +117,7 @@
 #inet_interfaces = $myhostname
 #inet_interfaces = $myhostname, localhost
 #inet_interfaces = localhost
+inet_interfaces = all # とりあえず全サーバから送信受付け

 # Enable IPv4, and IPv6 if supported
 inet_protocols = all
@@ -161,7 +165,8 @@
 #
 # See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
 #
-mydestination = $myhostname, localhost.$mydomain, localhost
+#mydestination = $myhostname, localhost.$mydomain, localhost
+mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
 #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
 #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
 #      mail.$mydomain, www.$mydomain, ftp.$mydomain
@@ -417,6 +422,7 @@
 #
 #home_mailbox = Mailbox
 #home_mailbox = Maildir/
+home_mailbox = Maildir/  # メールボックスは各ユーザ(ホームディレクトリ)の Maildir を利用

 # The mail_spool_directory parameter specifies the directory where
 # UNIX-style mailboxes are kept. The default setting depends on the
@@ -571,6 +577,7 @@
 #
 #smtpd_banner = $myhostname ESMTP $mail_name
 #smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
+smtpd_banner = $myhostname ESMTP $mail_name # 送信するときのメールバナー

 # PARALLEL DELIVERY TO THE SAME DESTINATION
 #
@@ -677,3 +684,11 @@
 # readme_directory: The location of the Postfix README files.
 #
 readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
+
+
+# SASL 認証できるように追加
+smtpd_sasl_auth_enable = yes
+smtpd_sasl_local_domain = $myhostname
+smtpd_recipient_restrictions =
+    permit_mynetworks
+    permit_sasl_authenticated
+    reject_unauth_destination

デーモン起動

SASL 認証用のデーモンと共に Postfix を起動

systemctl start saslauthd
systemctl enable saslauthd
systemctl restart postfix
systemctl enable postfix

メール送信確認

telnet コマンドを利用してメール送信確認

yum -y install telnet

telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 <ホスト名> ESMTP Postfix
helo <ホスト名>
250 <ホスト名>
mail from: <<メールアドレス>>
250 2.1.0 Ok
rcpt to: <<メールアドレス>>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
test
.
250 2.0.0 Ok: queued as 2CDE3C00DBF
quit
221 2.0.0 Bye
Connection closed by foreign host.

送信したメールの確認

# cat  ~<ユーザ名>/Maildir/new/1596674264.Vca02I80de9aM88429.ip-172-31-8-85.ap-northeast-1.compute.internal
Return-Path: <<メールアドレス>>
X-Original-To: <メールアドレス>
Delivered-To: <メールアドレス>
Received: from <ホスト名> (localhost [IPv6:::1])
        by <ホスト名> (Postfix) with SMTP id 2CDE3C00DBF
        for <<メールアドレス>>; Thu,  6 Aug 2020 00:37:26 +0000 (UTC)
Message-Id: <20200806003735.2CDE3C00DBF@<ホスト名>>
Date: Thu,  6 Aug 2020 00:37:26 +0000 (UTC)
From: <メールアドレス>

test
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1