Linux – メール転送エージェント(MTA)の基本

技术 最近更新

Linux – MTA / MDA / MUA

◆ MTAとは

MTA(Mail Transfer Agent)とは、電子メールを配信/転送するプログラムのことです。MTAは一般的に
メールサーバと呼ばれます。一方、ユーザのPCで使用するメーラはMUA(Mail User Agent)と言います。
代表的なMTAにはsendmail、qmail、postfix、exim等があり、それぞれの特徴は以下の通りとなります。

MTA 処理速度 セキュリティ 設定しやすさ 説明
sendmail × × ×  MTAの標準ソフトウェアと広くしたが、最近はセキュリティ
面や性能面から、他のMTAの利用が増えている状況。
qmail  セキュリティ面に優れており、非常に堅牢なつくりである。
設定もしやすく、パフォーマンスもsendmailより優れている。
postfix  パフォーマンスが最も優れたMTA。設定が簡単であり、
セキュリティ面も高い。sendmailとの互換性がある。
exim  Debian系の標準のMTA。postfixやqmailとは異なって、
sendmailのように1つのプログラムから構成されるMTA。

◆ MTAの起動

Linuxシステムで、どのMTAプログラムがインストールされているのかは以下のコマンドで確認できます。
以下のコマンドで25番ポートを開いているソフトウェアを調べることができます。

 # netstat -atnp | grep 25

sendmailは以下のコマンドで起動できます。前提はsendmailのソフトウェアがインストールされていること。

 # /etc/init.d/sendmail start

Postfixは以下のコマンドで起動できます。前提としてPostfixのソフトウェアがインストールされていること。

 # /etc/init.d/postfix start

exim(exim4)は以下コマンドで起動できます。前提はeximのソフトウェアがインストールされていること。

 # /etc/init.d/exim4 start

◆ メールの送信、受信メールの確認

メーラを使用しGUIでメール送信するのが一般的ですが、コマンドラインでメールの送受信を行うためには
mailコマンドを使用します。mailコマンドでユーザ名のみを指定するとローカルシステムのユーザ宛に送信。

◆ 構文 : mail -s 題名 宛先ユーザー名 or 宛先メールアドレス

◆ 実行例 : ローカルシステム内のユーザーである「admin」にメールを送信 ( 本文入力後、 ピリオド ( . ) を入力してEnter )

$ mail -s TESTMAIL adminThis is a test e-mail.
.

引数を指定せずにmailコマンドだけを入力すると、メールボックスのメールを確認することができます。

[admin@localhost Desktop]$ mailHeirloom Mail version 12.4 7/29/08. Type ? for help.
“/var/spool/mail/admin”: 1 message 1 new
>N 1 root Mon Nov 18 18:52 18/625 “testmail”

& 1   ← 1番目の受信メールを選択

Message 1:
From root@localhost.localdomain Mon Nov 18 18:52:29 2013
Return-Path: <root@localhost.localdomain>
X-Original-To: admin
Delivered-To: admin@localhost.localdomain
Date: Mon, 18 Nov 2013 18:52:29 +0900
To: admin@localhost.localdomain
Subject: testmail
User-Agent: Heirloom mailx 12.4 7/29/08
Content-Type: text/plain; charset=us-ascii
From: root@localhost.localdomain (root)
Status: R

This is a test e-mail.

& q  ← q で終了

◆ メールの転送 その1

あるメールアドレスに届いたメールを別のアドレスに転送する場合、/etc/aliasesファイルに設定を記述。

◆ 書式 : 転送元ユーザー: 転送先ユーザー

◆ 実行例 : /etc/aliasesファイルに記述して、rootユーザー宛に届いたメールを mike に転送

 root: mike

この設定をすると root宛のメールをmikeは受け取れるようになりますがrootにメールは届かなくなります。
/etc/aliasesで設定するだけでは有効にならないので、有効化のためにnewaliasesコマンドを入力します。

 # newaliases




 ◆ メールの転送 その2

メールの転送は、/etc/aliasesファイルの記述以外の方法があります。各ユーザーのホームディレクトリに
存在する~.forwardファイルに転送先アドレスを設定する方法です。この場合、各ユーザーで設定が可能。



 ◆ 送信待ちメール、受信待ちメール

多数のメールを送信した場合やメール送信に失敗した場合、メールキューに蓄えられることになります。
具体的には、送信者側のメールサーバの /var/spool/mqueue ディレクトリに蓄えられます。これらの
蓄えられたメール情報は、mailqコマンドで確認できます。

送信者から送信されたメールは、受信用メールサーバで受け取り、受信したメールは /var/spool/mail
ディレクトリに保存されます。受信者は個人のメーラーで受信処理を行うことでメールを取得できます。