メール管理
メール配送の仕組み
- 構成要素
- MTA: Message Transfer Agent
- MDA: Mail Delivery Agent
- MUA: Mail User Agent
- 流れ
- メールクライアントソフトウェア(MUA)でメール作成
- 送信元側のメールサーバ上のMTA(1)へ送る
- 宛先側のメールサーバ上のMTA(2)へ転送
- MTA(2)がメールを受け取ると、MDAがメールをメールボックスに格納する
- 受取人は自分のメールボックスからメールを取り出す
- 代表的なSMTPサーバー
MTAの起動
- SMTPは25番ポートで動く
- 25番ポートを開いているソフトウェアを調べる
netstat -atnp | grep 25
- 起動
- SysVinit
sudo /etc/init.d/postfix start
- Systemd
sudo systemctl start postfix.service
メールの送信と確認
mail
コマンド
- プリインストールされていなかった
- Ubuntu
sudo apt install -y mailutils
sudo yum install -y mailx
mail -s <subject> <宛先メールアドレスもしくはユーザ名>
send-mail: fatal: parameter inet_interfaces: no local interface found for ::1
journalctl -xe
-- Logs begin at Wed 2019-04-17 01:40:24 UTC, end at Wed 2019-04-17 01:41:56 UTC
. --
Apr 17 01:40:24 104d3a1be772 kernel: docker0: port 1(vethdc4a63d) entered disabl
ed state
Apr 17 01:40:24 104d3a1be772 kernel: device vethdc4a63d entered promiscuous mode
Apr 17 01:40:24 104d3a1be772 kernel: IPv6: ADDRCONF(NETDEV_UP): vethdc4a63d: lin
k is not ready
Apr 17 01:40:24 104d3a1be772 kernel: docker0: port 1(vethdc4a63d) entered blocki
ng state
Apr 17 01:40:24 104d3a1be772 kernel: docker0: port 1(vethdc4a63d) entered forwar
ding state
Apr 17 01:40:24 104d3a1be772 kernel: docker0: port 1(vethdc4a63d) entered disabl
ed state
Apr 17 01:40:24 104d3a1be772 kernel: eth0: renamed from veth8d69274
127.0.0.1 localhost
- ::1 localhost ip6-localhost ip6-loopback
+ #::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 104d3a1be772
systemctl start postfix.service
- メール送る
- ヒアドキュメントみたいなかんじに本文入力
.
で入力終了
mail -s dear_hoge hoge
> piyo
> .
- EOT: End Of Transmission (転送処理完了)
EOT
su - hoge
mail
ls /etc/aliases*
/etc/aliases /etc/aliases.db
#
# Aliases in this file will NOT be expanded in the header from
# Mail, but WILL be visible over networks or from /bin/mail.
#
# >>>>>>>>>> The program "newaliases" must be run after
# >> NOTE >> this file is updated for any changes to
# >>>>>>>>>> show through to sendmail.
#
# Basic system aliases -- these MUST be present.
mailer-daemon: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
adm: root
lp: root
sync: root
shutdown: root
halt: root
mail: root
news: root
uucp: root
operator: root
games: root
gopher: root
ftp: root
nobody: root
radiusd: root
nut: root
dbus: root
vcsa: root
canna: root
wnn: root
rpm: root
nscd: root
pcap: root
apache: root
webalizer: root
dovecot: root
fax: root
quagga: root
radvd: root
pvm: root
amandabackup: root
privoxy: root
ident: root
named: root
xfs: root
gdm: root
mailnull: root
postgres: root
sshd: root
smmsp: root
postfix: root
netdump: root
ldap: root
squid: root
ntp: root
mysql: root
desktop: root
rpcuser: root
rpc: root
nfsnobody: root
ingres: root
system: root
toor: root
manager: root
dumper: root
abuse: root
newsadm: news
newsadmin: news
usenet: news
ftpadm: ftp
ftpadmin: ftp
ftp-adm: ftp
ftp-admin: ftp
www: webmaster
webmaster: root
noc: root
security: root
hostmaster: root
info: postmaster
marketing: postmaster
sales: postmaster
support: postmaster
# trap decode to catch security attacks
decode: root
# Person who should get root's mail
#root: marc
<エイリアス>: <転送先>[, <転送先2>[, ...]]
<エイリアス>
なるユーザにはメールは届かなくなる
- 上の例では、
bin
ユーザがいてもメールは届かない。root
にのみ届く
/etc/aliases
を編集するだけでは転送は行われない
newaliases
コマンド
/etc/aliases
ファイルをもとに/etc/alises.db
ファイルを更新
file /etc/aliases.db
/etc/aliases.db: Berkeley DB (Hash, version 9, native byte-order)
.forward
ファイル
ユーザは自分自身へのメール配送を、.forward ファイルをホームディレクトリ
に作ることで制御できます。それぞれのユーザの .forward ファイルの行は
aliases のエントリの右側と同じ文法です。
- ユーザのホームディレクトリに
.forward
ファイルを置く
- 転送先アドレスを記入する
- ユーザー各自で設定できる
- 一時的にメールを転送したい場合に有効
メールキューの操作
- メールキュー
- 送信待ちのメールが蓄えられる
- 送信先メールサーバが停止していて送信できないような場合
- 宛先がDNSで検索できなかった場合
mailq
コマンド
- postfixサービスが起動していない状態でメールを送信してみる
mail -s dear_hoge hoge
piyo
.
EOT
postdrop: warning: unable to look up public/pickup: No such file or directory
mailq
- MTAサーバが動いていないので、メールキューにメールがたまっている
postqueue: warning: Mail system is down -- accessing queue directly
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
855EE7C0381 279 Wed Apr 17 03:48:51 root
hoge
-- 0 Kbytes in 1 Request.
systemctl start postfix
mailq
Mail queue is empty
su - hoge
mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/hoge": 1 message 1 new
>N 1 root Wed Apr 17 03:52 18/627 "dear_hoge"
& 1
Message 1:
From root@caed1000a4d0.localdomain Wed Apr 17 03:52:45 2019
...