0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linux メール

Last updated at Posted at 2025-09-15

はじめに

メールの送受信は単一のプロトコルではなく、様々なプロトコルやソフトウェアが組み合わさり、連動して稼働することによって実現している。

また Postfix などのソフト内部においても master(他のデーモンを起動)、postdrop(受信、投函)、pickup(メール取得)... 等の様々なデーモンが連携している。

  • SMTP
    • メール 送信 のプロトコル
    • MUAMTA への送信
    • MTAMTA への中継
  • POP
    • メール 受信 のプロトコル
    • メールの管理を クライアントが行う
  • IMAP
    • メール 受信 のプロトコル
    • メールの管理を サーバが行う
  • DNS
    • ドメイン名と IP アドレスの変換

ネスペ.png

MUA

Mail User Agent

メールの作成、送信、受信を行うための、ユーザが直接使うクライアントアプリケーション。

具体的なソフトは Thunderbird、Outlook、mutt、alpine など、

LPIC (48).png

MTA

Message Transfer Agent

メールを送受信するサーバ間で、メールの転送を担当するソフトウェア。

具体的なソフトとしては Postfix、Sendmail、Exim、qmail など。

LPIC (46).png

MDA

Mail Delivery Agent

MTA から受け取ったメールを、ユーザのメールボックスに配達するソフトウェア。

具体的なソフトは ProcmailDovecot、mail.local など。

LPIC (47).png

Postfix(MTA)

Sendmail の後継として開発された MTA。

メールの送受信、転送を担当する

LPIC (46).png

/etc/postfix/main.cf

Postfix の基本設定ファイル。

フォーマット
設定項目 = 値1
設定項目 = 値1, 値2, ...
項目 説明
myhostname サーバのホスト名(FQDN)。
送信元ホスト名に使用される。
【例】myhostname = mail.example.com
mydomain サーバ自身が所属する ドメイン名
【例】mydomain = example.com
myorigin ローカルで送信するメールの送信元ドメイン。
メールアドレスの @ 以降に使用される。
【例】myorigin = $myhostname
mydestination ローカル配送対象のドメイン。
サーバが扱うことのできるドメインであり、受信可能な宛先の範囲でもある。
【例】mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
relayhost 外部にメールを送るときの中継(リレー)先。
ISP や社内メールサーバを経由する場合などに指定する。
未設定ならリレーを行わず、直接配送になる。
【例】relayhost = [smtp.isp.example]:587
mynetworks 中継(リレー)を許可するネットワーク範囲。
踏み台として利用されることを防止するために設定される。
【例】mynetworks = 127.0.0.0/8, [::1]/128
inet_interfaces Postfix が待ち受ける ネットワークインターフェース
- all:すべて
- loopback-only:ローカルのみ、外部から受け付けない
【例】inet_interfaces = loopback-only
inet_protocols 使用する IP プロトコル。
- all(デフォルト)
- ipv4
- ipv6
【例】inet_protocols = ipv6

/etc/postfix/master.cf

Postfix のサービスの制御ファイルで MTA の各サービス(smtppickupqmgr)がどのように起動・待ち受け・実行されるかを設定するファイル。

/etc/aliases

あるメールアドレスの届いたメールを別のメールアドレスに 転送 する仕組み。

転送先の設定は /etc/aliases によって行い、転送先は複数指定することができる。

/etc/aliases
アカウント: 転送先1, 転送先2, ...

アカウント には、メールアドレスの @ 前の部分を指定する。

例:postmaster@mydomain 宛のメールを admin と bob に転送する
postmaster: admin, bob

/etc/aliases はテキストファイルであり、実際には Postfix は、/etc/aliases.db を参照して転送を行う。

/etc/aliases.db$ newaliases コマンドによって /etc/aliases を基に更新することができる。

また反対に、/etc/aliases を編集した後は $ newaliases を実行しない限り、編集内容が反映されない

ドメインを超えて外部アドレスに対して転送することもできる。

例:外部のメールアドレスに転送を行う
support: helpdesk@example.com

ファイルパスを指定することで、メールの内容をファイルに出力することもできる。

指定したアカウント宛のメールをファイルに出力する
アカウント: ファイルパス

|パイプ)を指定してプログラムの標準入力として渡すこともできる。

アカウント: "| プログラムのファイルパス"

~/.forward

ユーザごとに設定できるメールの転送先設定ファイル。

フォーマット
転送先1, 転送先2, ...

$ postconf

/etc/postfix/main.cf で設定された値をすべて表示する。

設定値を一覧表示する
$ postconf
デフォルト値から変更された項目だけを表示する
$ postconf -n
指定された項目のみ表示する
$ postconf 設定項目
$ postconf mydomain

$ postfix

Postfix の管理コマンド。

基本構文
$ postfix サブコマンド
Postfix を開始する
$ postfix start
Postfix を停止する
$ postfix stop

起動や停止は $ systemctl でも行うことができる。

Postfix の状態を確認する
$ postfix status
Postfix によるメール配送を即座に中止する(テスト用、緊急用)
$ postfix abort
設定ファイルを再読み込みする
$ postfix reload
設定ファイルの構文チェックを行う
$ postfix check
メールキューにある保留中のメールを即座に配送試行する
$ postfix flush

$ postqueue -f と同じ動作。

$ newaliases

/etc/aliases ファイルの編集を反映させる。

エイリアスの設定を反映させる
$ newaliases

$ postqueue

メールキューの一覧を表示する(print)
$ postqueue -p
キューの再送を強制する(flush)
$ postqueue -f
特定の宛先サイトだけ再送する(site)
$ postqueue -s サイト

$ mailq

$ postqueue -p のエイリアス。

メールキューの一覧を表示する
$ mailq

$ postsuper

Postfix のキューメンテナンス専用コマンド。

$ postqueue コマンドは一般ユーザでも実行可能なのに対して、$ postsuperroot 権限が必要。

指定したキュー ID のジョブだけ再度、キューに入れ直す(requeue)
$ postsuper -r キューID
指定したキュー ID のジョブだけ削除する(delete)
$ postsuper -d キューID
全てのジョブを削除する
$ postsuper -d ALL

Procmail(MDA)

古くから MDA として利用されるソフトウェア。

Postfix や Sendmail などの MTA から渡されたメールをユーザのメールボックスへ配達する。

今は Sieve + Dovecot に置き換わることが多い。

LPIC (47).png

~/.procmailrc

ユーザごとに配置される Procmail の設定ファイル。

メールを条件に応じて振り分け、転送、廃棄するなどの処理を行うために利用される。

レシピ と呼ばれるルールを並べて記述する形式。

レシピ
:0 フラグ :ロックファイル
* 条件1
* 条件2
アクション

Sieve

受信したメールをユーザごとに振り分けたり、処理するメールフィルタリングのスクリプト言語。

Dovecot などの MDA と連携して使われる。

件名に "SPAM" が含まれるメールを "Junk" フォルダに移動する
if header :contains "Subject" "SPAM" {
    fileinto "Junk";
}
"example.com" からのメールを "Example" フォルダへ振り分ける
if address :domain "From" "example.com" {
    fileinto "Example";
}
全ての受信メールをリダイレクトする
redirect "other@example.org";

Dovecot(MDA兼IMAP/POPサーバ)

IMAP / POP3 サーバソフトウェア。

ユーザが MUA からサーバ上のメールを読むための「窓口」として利用される。

MDA 機能も持つので、MTA(Postfixなど)から直接メールを受け取りユーザのメールボックスに保存できる。

また Sieve によるフィルタリングもサポートしている。

LPIC (47).png

/etc/dovecot.conf

Dovecot の設定ファイル。

$ doveconf

設定ファイルの有効な設定値を一覧表示する
$ doveconf
特定の項目を表示する
$ doveconf 設定項目

$ doveadm

設定を再読み込みする
$ doveadm reload
認証確認を行う
$ doveadm auth メールアドレス
メールボックスを一覧表示する
$ doveadm mailbox list
0
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?