6 電子メール・サービス構成
警告:
Oracle Linux 7は現在延長サポート中です。詳細は、Oracle Linux拡張サポートおよびOracleオープン・ソース・サポート・ポリシーを参照してください。
できるだけ早くアプリケーションとデータをOracle Linux 8またはOracle Linux 9に移行してください。
この章では、Oracle Linuxで使用可能な電子メール・プログラムとプロトコル、および基本的なSendmailクライアントの設定方法について説明します。
電子メール・プログラムについて
メール・ユーザー・エージェントは電子メール・クライアント・アプリケーションで、電子メール・メッセージの作成と読取り、メッセージを保存したり編成するためのメールボックスの設定、およびメール転送エージェント(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は、電子メール・クライアント・アプリケーションがアクセス可能なローカル・システム上で、メッセージを配布およびソートします。
電子メール・プロトコルについて
電子メール・メッセージを配信するには、複数の異なるネットワーク・プロトコルが必要です。これらのプロトコルは、複数の異なるシステム(多くの場合、異なるオペレーティング・システムと異なる電子メール・プログラムを実行する)で電子メールを送信、転送および受信できるように連携します。
SMTPについて
Simple Mail Transfer Protocol (SMTP)は、電子メール・クライアント・アプリケーションとサーバー間、および送信側サーバーと宛先サーバー間でメール配信サービスを提供するトランスポート・プロトコルです。電子メール・クライアント・アプリケーションの送信電子メールを構成する場合は、SMTPサーバーを指定する必要があります。
SMTPは認証不要です。SMTPを使用して誰もが電子メール(迷惑メールや未承諾一括メールを含む)を送信できます。SMTPサーバーを管理する場合は、リレー制限を構成して、SMTP経由で電子メールを送信するユーザーを制限できます。オープン・リレー・サーバーには、そのような制限はありません。PostfixとSendmailは両方ともSMTPを使用するSMTPサーバー・プログラムです。電子メールを受信するドメインを所有していない場合は、SMTPサーバーを設定する必要はありません。
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を参照してください。
      
                     
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サービスを再起動します。
sudo systemctl restart postfix
      詳細は、postfix(1)およびPostfixの他のマニュアル・ページ、電子メールの転送、/usr/share/doc/postfix-version およびhttp://www.postfix.org/documentation.htmlを参照してください。
    
                  
Sendmail SMTPサーバーについて
Sendmailは、柔軟に構成可能な、インターネットで最も一般的に使用されるMTAです。Sendmailは、主としてシステム間での電子メールの転送に使用されますが、電子メールを取り扱うあらゆる側面のほどんどを制御できます。
Sendmailは、次のパッケージで配布されます。
- 
                        procmail
- 
                        
                        SendmailのデフォルトのローカルMDAとして機能するProcmailが入っています。 sendmailパッケージに付属するパッケージとしてインストールされます。
- 
                        sendmail
- 
                        
                        Sendmail MTAが入っています。 
- 
                        sendmail-cf
- 
                        
                        Sendmailの構成ファイルが入っています。 
Sendmailパッケージをインストールするには、次のように入力します。
sudo yum install sendmail sendmail-cf
      詳細は、sendmail(8)マニュアル・ページを参照してください。
    
                  
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を再生成します。
      
                     
sudo systemctl restart sendmail
        別の方法として、/etc/mailのmakeスクリプトを使用できます。
      
                     
sudo /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については、サーバーを再起動するまで、再生成したデータベース・ファイルは使用されません。
      
                     
電子メールの転送
      /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)マニュアル・ページを参照してください。
    
                  
Sendmailクライアントの構成
Sendmailクライアントは、アウトバウンド・メールを別のSMTPサーバー(通常はISPまたは組織のIT部門で管理される)に送信し、次に、このサーバーが電子メールをその宛先にリレーします。
Sendmailクライアントを構成するには:
- 
                        
                        SMTPサーバーのアカウントに認証が必要な場合は、次のようにします。 - 
                              
                              rootのみがアクセス可能な/etc/mailの下にauthディレクトリを作成します。sudo mkdir /etc/mail/auth sudo chmod 700 /etc/mail/auth 
- 
                              
                              authディレクトリで、SMTPサーバーの認証情報を格納するファイルsmtp-authを作成します。たとえば:sudo 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サービスを再起動します。sudo systemctl restart sendmail 構成をテストするには、電子メールを別のドメインのアカウントに送信します。 
この構成は、着信する電子メールを受信またはリレーしません。クライアント・アプリケーションを使用して、POPまたはIMAP経由で電子メールを受信できます。