CentOS

CentOS/RHELにPostfixをインストール~CUIを使用した簡易メール送信

2018年9月6日

こんにちは!土門大貴(daikidomon)です。

メールサーバーの「Postfix」のインストールからCUIコマンドを利用したメール送信(初期構築確認)の方法を紹介します。

最近はクラウドベンダーの「AmazonのAWS」や「MicrosoftのAzuru」でも簡易にメールサーバーをクラウドを提供しています。

だからこそ、この機会にしっかりとPostfixをインストール~簡易メール送信方法をマスターしましょう。

Postfixのインストールと初期設定

Postfixのインストール方法は「yum」コマンドを使用することで簡単にインストールすることができます。
yum install postfix

以下が実行例です。

Loaded plugins: fastestmirror
base | 3.6 kB 00:00:00
docker-ce-edge | 2.9 kB 00:00:00
docker-ce-stable | 2.9 kB 00:00:00
docker-ce-test | 2.9 kB 00:00:00
extras | 3.4 kB 00:00:00
osquery-s3-rpm-repo | 951 B 00:00:00
updates | 3.4 kB 00:00:00
Loading mirror speeds from cached hostfile
* base: ftp.tsukuba.wide.ad.jp
* extras: ftp.tsukuba.wide.ad.jp
* updates: ftp.tsukuba.wide.ad.jp
Resolving Dependencies
--> Running transaction check
---> Package postfix.x86_64 2:2.10.1-6.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================
Package Arch Version Repository Size
==============================================================================================================
Installing:
postfix x86_64 2:2.10.1-6.el7 base 2.4 M

Transaction Summary
==============================================================================================================
Install 1 Package

Total download size: 2.4 M
Installed size: 12 M
Is this ok [y/d/N]: y
Downloading packages:
postfix-2.10.1-6.el7.x86_64.rpm | 2.4 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 2:postfix-2.10.1-6.el7.x86_64 1/1
Verifying : 2:postfix-2.10.1-6.el7.x86_64 1/1

Installed:
postfix.x86_64 2:2.10.1-6.el7

Complete!
次にサーバーのMTA(Mail Transfer Agent:メール転送エージェント)を「Postfix」に変更します。

多くの場合、MTAのデフォルトが「Sendmail」になっているため変更しておきましょう。
alternatives --config mta

There is 1 program that provides 'mta'.

Selection Command
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.postfix

Enter to keep the current selection[+], or type selection number: 1 # ここでpostfixを選択
これでインストールと初期設定は完了です。

Postfix自体の設定については別記事で紹介します。

Postfixの状態確認・起動・停止・自動起動有効化/無効化

Postfixの起動・停止・自動起動有効化/無効・状態確認は「systemctl」コマンドで実施します。

Postfixの状態確認

Postfixの状態を確認するコマンドは以下になります。
systemctl status postfix
以下のように
● postfix.service - Postfix Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2018-09-05 13:55:06 JST; 7min ago
Process: 21861 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
Process: 21855 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
Process: 21850 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
Main PID: 21932 (master)
CGroup: /system.slice/postfix.service
tq21932 /usr/libexec/postfix/master -w
tq21933 pickup -l -t unix -u
mq21934 qmgr -l -t unix -u

Sep 05 13:55:05 test-server systemd[1]: Starting Postfix Mail Transport Agent...
Sep 05 13:55:06 test-server postfix/master[21932]: daemon started -- version 2.10.1, configuration /etc/...fix
Sep 05 13:55:06 test-server systemd[1]: Started Postfix Mail Transport Agent.
Hint: Some lines were ellipsized, use -l to show in full.
3行目のように「active (running)」となっていたら正常にPostfixのサービスが起動しています。

Postfixの起動

以下がPostfixの起動コマンドです。
systemctl start postfix
特に表示はありません。正常に起動できたかは状態確認コマンドで確認します。

Postfixの停止

以下がPostfixの停止コマンドです。
systemctl stop postfix
特に表示はありません。正常に停止できたかは状態確認コマンドで確認します。

Postfixの自動起動有効化/無効化

以下がサーバー起動時に自動起動を有効化するコマンドです。
systemctl enable postfix
以下がサーバー起動時に自動起動を無効化するコマンドです。
systemctl disable postfix
自動起動の有効化/無効化確認は以下のコマンドで確認できます。
systemctl list-unit-files postfix.service
以下、自動起動が有効化している時の実行例です。

[root@test-server ~]# systemctl list-unit-files postfix.service
UNIT FILE STATE
postfix.service enabled

1 unit files listed.

CUIを使用したPostfixの簡易メール送信

設定がすべて完了してPostfixを起動したら「sendmail」コマンドでメールを送ります。
$ sendmail <送信先メールアドレス>
From:<送信元メールアドレス>
To:<送信先メールアドレス>
Subject:<件名>
<ここの本文>
<ここの本文>
<ここの本文>
. # <=最後は"."とすること
以下が実行例になります。

[root@test-server ~]# sendmail shimidai2100@gmail.com
From:test-server
To:shimidai2100@gmail.com
Subject:Test
This is test.
This is test.
This is test.
.
[root@test-server ~]# tail 5 /var/log/maillog
Sep 5 14:31:01 test-server postfix/pickup[21933]: 0488D209C856: uid=0 from=<root>
Sep 5 14:31:01 test-server postfix/cleanup[22023]: 0488D209C856: message-id=<20180905053101.0488D209C856@test-server.localdomain>
Sep 5 14:31:01 test-server postfix/qmgr[21934]: 0488D209C856: from=<root@test-server.localdomain>, size=363, nrcpt=1 (queue active)
Sep 5 14:31:02 test-server postfix/smtp[22025]: 0488D209C856: to=<shimidai2100@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.204.26]:25, delay=69, delays=68/0.01/0.56/0.53, dsn=2.0.0, status=sent (250 2.0.0 OK 1536125478 d41-v6si966253pla.172 - gsmtp)
Sep 5 14:31:02 test-server postfix/qmgr[21934]: 0488D209C856: removed
/var/log/maillog」を確認することでメールを送信しているのが確認できます。

 

関連記事

-CentOS

Copyright© スタートアップIT企業社長のブログ , 2020 All Rights Reserved.