第6章 電子メール・サービス構成
この章では、Oracle Linuxで使用可能な電子メール・プログラムとプロトコル、および基本的なSendmailクライアントの設定方法について説明します。
6.1 電子メール・プログラムについて
メール・ユーザー・エージェントは電子メール・クライアント・アプリケーションで、電子メール・メッセージの作成と読取り、メッセージを保存したり編成するためのメールボックスの設定、およびメール転送エージェント(MTA)へのアウトバウンド・メッセージの送信を可能にします。また、多くのMUAは、Post Office Protocol (POP)またはInternet Message Access Protocol (IMAP)を使用して、リモート・サーバーから電子メッセージを取得できます。
メール転送エージェント(MTA)は、Simple Mail Transport Protocol (SMTP)を使用して、システム間で電子メール・メッセージをトランスポートします。クライアント・プログラムから宛先サーバーへの電子メール配信サービスでは、そのルート上で複数のMTAをトラバースする場合があります。Oracle LinuxにはPostfixとSendmailの2つのMTAが用意されており、SLIPおよびPPPとともに使用する特殊な目的のMTAであるFetchmailも付属しています。
メール配信エージェント(MDA)は、電子メール・メッセージの実際の配信を実行します。MTAはProcmailなどのMDAを起動して、受信電子メールを受信者のメールボックス・ファイルに格納します。MDAは、電子メール・クライアント・アプリケーションがアクセス可能なローカル・システム上で、メッセージを配布およびソートします。
6.2 電子メール・プロトコルについて
電子メール・メッセージを配信するには、複数の異なるネットワーク・プロトコルが必要です。これらのプロトコルは、複数の異なるシステム(多くの場合、異なるオペレーティング・システムと異なる電子メール・プログラムを実行する)で電子メールを送信、転送および受信できるように連携します。
6.2.1 SMTPについて
Simple Mail Transfer Protocol (SMTP)は、電子メール・クライアント・アプリケーションとサーバー間、および送信側サーバーと宛先サーバー間でメール配信サービスを提供するトランスポート・プロトコルです。電子メール・クライアント・アプリケーションの送信電子メールを構成する場合は、SMTPサーバーを指定する必要があります。
SMTPは認証不要です。SMTPを使用して誰もが電子メール(迷惑メールや未承諾一括メールを含む)を送信できます。SMTPサーバーを管理する場合は、リレー制限を構成して、SMTP経由で電子メールを送信するユーザーを制限できます。オープン・リレー・サーバーには、そのような制限はありません。PostfixとSendmailは両方ともSMTPを使用するSMTPサーバー・プログラムです。電子メールを受信するドメインを所有していない場合は、SMTPサーバーを設定する必要はありません。
6.2.2 POPおよびIMAPについて
Post Office Protocol (POP)は、インターネット・サービス・プロバイダ(ISP)で一般的に維持管理されるリモート・サーバーのメールボックスから電子メール・メッセージを取得する際に、電子メール・クライアント・アプリケーションが使用する電子メール・アクセス・プロトコルです。通常、POP電子メール・クライアントは、メッセージが正常に取得されたとき、またはその後の短時間の範囲内に、サーバー上のメッセージを削除します。
Internet Message Access Protocol (IMAP)は、一般的に組織で維持管理されるリモート・サーバーから電子メール・メッセージを取得する際に、電子メール・クライアント・アプリケーションが使用する電子メール・アクセス・プロトコルです。メッセージ全体は開封時にのみダウンロードされ、最初にメッセージをダウンロードせずにサーバーから削除できます。IMAPを使用している場合、電子メールはサーバー上に保持されます。
POPとIMAPの両方を使用することで、メール・フォルダを管理し、複数のメール・ディレクトリを作成して、電子メールを編成および保存できます。
dovecot
パッケージは、IMAPサーバーとPOPサーバーの両方を実装するdovecot
サービスを提供します。
デフォルトでは、dovecotサービスは、クライアント認証およびデータ転送セッションにSecure Socket Layer (SSL)暗号化を使用するセキュアなバージョンで、IMAPとPOPの両方を実行します。dovecot
で提供されるIMAPおよびPOPサーバーは、インストールに応じて機能するように構成されます。通常は、構成ファイル/etc/dovecot.conf
を変更する必要はありません。
詳細は、dovecot(1)
マニュアル・ページおよび/usr/share/doc/dovecot-
を参照してください。
version
6.3 Postfix SMTPサーバーについて
Postfixは、Oracle LinuxのデフォルトMTAとして構成されます。PostfixにはSendmailのような多くの機能はありませんが、PostfixはSendmailよりも管理しやすく、その機能はほとんどのインストールの要件を十分に満たします。Sendmailに固有のアドレス再書込みルールまたはメール・フィルタ(milter)を使用する場合は、Sendmailのみを使用する必要があります。ほとんどのメール・フィルタはPostfixで適切に機能します。Sendmailを使用する場合は、ネットワーク・ポートの使用で競合が発生しないようにPostfixを無効にするかアンインストールします。
Postfixは、プライマリ・デーモンといくつかの小さいプロセスで構成される、モジュール式の設計になっています。Postfixの構成ファイルは/etc/postfix
ディレクトリに配置され、次のものが含まれます。
-
access
-
Postfixへの接続を許可するホストを指定します。
-
main.cf
-
Postfixのグローバル構成オプションを格納します。
-
master.cf
-
Postfixマスター・デーモンおよびPostfixの他のプロセスが、電子メールを配信する際にどのように相互作用するかを指定します。
-
transport
-
宛先電子メール・アドレスとリレー・ホスト間のマッピングを指定します。
デフォルトでは、Postfixは、ローカル・ホスト以外のシステムからのネットワーク接続を受け入れません。他のホストのメール配信を有効にするには、/etc/postfix/main.cf
を編集して、そのドメイン、ホスト名およびネットワーク情報を構成します。
構成の変更が終了した後は、Postfixサービスを再起動します。
# systemctl restart postfix
詳細は、postfix(1)
およびPostfixの他のマニュアル・ページ、第6.5項「電子メールの転送」、/usr/share/doc/postfix-
およびhttp://www.postfix.org/documentation.htmlを参照してください。
version
6.4 Sendmail SMTPサーバーについて
Sendmailは、柔軟に構成可能な、インターネットで最も一般的に使用されるMTAです。Sendmailは、主としてシステム間での電子メールの転送に使用されますが、電子メールを取り扱うあらゆる側面のほどんどを制御できます。
Sendmailは、次のパッケージで配布されます。
-
procmail
-
SendmailのデフォルトのローカルMDAとして機能するProcmailが入っています。
sendmail
パッケージに付属するパッケージとしてインストールされます。 -
sendmail
-
Sendmail MTAが入っています。
-
sendmail-cf
-
Sendmailの構成ファイルが入っています。
Sendmailパッケージをインストールするには、次のように入力します。
# yum install sendmail sendmail-cf
詳細は、sendmail(8)
マニュアル・ページを参照してください。
6.4.1 Sendmail構成ファイルについて
Sendmailのメイン構成ファイルは/etc/mail/sendmail.cf
で、手動での編集は意図されていません。かわりに、/etc/mail/sendmail.mc
ファイルで構成を変更します。
他のシステムからの電子メールをSendmailでリレーする必要がある場合は、sendmail.mc
の次の行を変更します。
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
変更後:
dnl # DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
先頭のdnl
はdelete to new lineの略語で、その行を事実上コメント・アウトします。
sendmail.mc
を編集した後は、sendmail
サービスを再起動してsendmail.cf
を再生成します。
# systemctl restart sendmail
別の方法として、/etc/mail
のmakeスクリプトを使用できます。
# /etc/mail/make all
ただし、再生成した構成ファイルは、サーバーを再起動するまでは使用されません。
/etc/mail
に格納される他の重要なSendmail構成ファイルには、次のものがあります。
-
access
-
ローカル・ホストから他のシステムへのアウトバウンド・メールを処理するリレー・ホストを構成します。これはデフォルトの構成です。
Connect: localhost.localdomain RELAY Connect: localhost RELAY Connect: 127.0.0.1 RELAY
ローカル・ネットワーク上の他のシステムからのメールをリレーするようにSendmailを構成するには、次のようなエントリを追加します。
Connect: 192.168.2 RELAY
-
mailertable
-
あるドメインから別のドメインへの電子メールの転送を構成します。次の例は、
yourorg.org
ドメインに送信された電子メールをmydom.com
ドメインのSMTPサーバーに転送します。yourorg.org smtp:[mydom.com]
-
virtusertable
-
複数のドメインへの電子メールの供給を構成します。宛先アドレスで開始する各行には、Sendmailが電子メールを送信する転送先アドレスが続きます。たとえば、次のエントリは、
yourorg.org
の任意のユーザーに宛てた電子メールをmydom.com
の同じユーザーに転送します。@yourorg.org %1@mydom.com
これらの各構成ファイルには、/etc/mail
内に対応するデータベース(.db
)ファイルがあり、Sendmailがこのファイルを読み取ります。構成ファイルに変更を加えた後は、sendmail
サービスを再起動します。データベース・ファイルを再生成するには、/etc/mail/make allコマンドを実行します。sendmail.cf
については、サーバーを再起動するまで、再生成したデータベース・ファイルは使用されません。
6.5 電子メールの転送
/etc/aliases
ファイルを構成することで、Postfix local
配信エージェントまたはSendmailを使用して、着信する電子メール・メッセージを転送できます。このファイルのエントリでは、インバウンド・アドレスをローカル・ユーザー、ファイル、コマンドおよびリモート・アドレスにマップできます。
次の例は、postmaster
の電子メールをroot
にリダイレクトし、ローカル・システムのadmin
に送信された電子メールを別のシステム上のusr04
を含めた他の複数のユーザーに転送します。
postmaster: root admin: usr01, usr02, usr03, usr04@another-system.com
電子メールをファイルに出力するには、宛先アドレスのかわりに絶対パス名を指定します。コマンドを指定するには、コマンドの前にパイプ記号(|
)を使用します。次の例は、nemo
に送信された電子メールを/dev/null
に送信することで消去し、aggregator
というスクリプトを実行してfixme
に送信された電子メールを処理します。
nemo: /dev/null fixme: |/usr/local/bin/aggregator
ファイルを変更した後は、コマンドnewaliasesを実行し、索引付きデータベース・ファイルを再構築します。
詳細は、aliases(5)
マニュアル・ページを参照してください。
6.6 Sendmailクライアントの構成
Sendmailクライアントは、アウトバウンド・メールを別のSMTPサーバー(通常はISPまたは組織のIT部門で管理される)に送信し、次に、このサーバーが電子メールをその宛先にリレーします。
Sendmailクライアントを構成するには:
-
SMTPサーバーのアカウントに認証が必要な場合は、次のようにします。
-
root
のみがアクセス可能な/etc/mail
の下にauth
ディレクトリを作成します。#
mkdir /etc/mail/auth
#chmod 700 /etc/mail/auth
-
auth
ディレクトリで、次の例のようにSMTPサーバーの認証情報を格納するファイルsmtp-auth
を作成します。#
echo 'AuthInfo:
smtp.isp.com
: "U:username
" "P:password
"' > /etc/mail/auth/smtp-auth前のコマンドでは、
smtp.isp.com
はSMTPサーバーのFQDNであり、username
とpassword
はアカウントの名前とパスワードです。 -
smtp-auth
からデータベース・ファイルを作成し、root
のみがファイルを読取り/書込みできるようにします。#
cd /etc/mail/auth
#makemap hash smtp-auth < smtp-auth
#chmod 600 smtp-auth smtp-auth.db
-
-
/etc/mail/sendmail.mc
を編集し、次の行を変更します。dnl define('SMART_host', 'smtp.your.provider')dnl
変更後:
define('SMART_host', '
smtp.isp.com
')dnl前のコマンドでは、
smtp.isp.com
はSMTPサーバーのFQDNです。 -
SMTPサーバーのアカウントに認証が必要な場合は、
SMART_host
を定義する行の後ろに、次の行を追加します。define('RELAY_MAILER_ARGS', 'TCP $h
port
')dnl define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl FEATURE('authinfo','hash /etc/mail/auth/smtp-auth.db')dnl define(`confAUTH_OPTIONS', `A p y')dnl前のコマンドでは、
port
はSMTPサーバーによって使用されるポート番号です(たとえば、SMARTTLSの場合は587、SSL/TLSの場合は465)。 -
/etc/sysconfig/sendmail
を編集し、DAEMON
の値をno
に設定します。DAEMON=no
このエントリにより、
sendmail
によるポート25での着信電子メールのリスニングが無効になります。 -
sendmail
サービスを再起動します。#
systemctl restart sendmail
構成をテストするには、電子メールを別のドメインのアカウントに送信します。
この構成は、着信する電子メールを受信またはリレーしません。クライアント・アプリケーションを使用して、POPまたはIMAP経由で電子メールを受信できます。