mail コマンド (Heirloom mailx) のFrom指定省略時の挙動

前提

CentOS7

# id
uid=0(root) gid=0(root) groups=0(root)

# uname -n
db.example.jp # NXDOMAIN

また、MTA (Postfix) の設定は下記の通り。

# /etc/postfix/main.cf

mydestination = $myhostname, localhost.$mydomain, localhost
myorigin = $mydomain
mydomain = example.com
myhostname = db.example.com

From省略時

postfix の myorigin は効かない。 なぜなら、今回利用した mail コマンド (Heirloom mailx) の仕様により、自動的に hostname をくっつけるため。

Heirloom mailx (MUA: メールユーザーエージェント) はPostfix (MTA) とは別物。

# mail -S "smtp=smtp://localhost:25" -s test_mail user@external.example.com
> test mail death yo
> .

Oct 17 11:27:41 db postfix/qmgr[19681]: 8E5CB4115D: from=<root@db.example.jp>, size=636, nrcpt=1 (queue active)
Oct 17 11:27:41 db postfix/smtpd[19689]: disconnect from localhost[127.0.0.1]
Oct 17 11:27:41 db postfix/smtp[19693]: Trusted TLS connection established to hoge[0.0.0.0]:25: TLSv1 with cipher DHE-RSA-CAME
LLIA256-SHA (256/256 bits)
Oct 17 11:27:42 db postfix/smtp[19693]: 8E5CB4115D: to=<user@external.example.com>, relay=hoge[0.0.0.0]:25, delay=0.42, delays=0.04/
0.01/0.31/0.05, dsn=5.1.8, status=bounced (host hoge[0.0.0.0] said: 553 5.1.8 <root@db.example.jp>... Domain of sen
der address root@db.example.jp does not exist (in reply to MAIL FROM command))

やめてくれ

はい、-r を付けて、MTAに渡すFromを指定しましょう。

# mail -S "smtp=smtp://localhost:25" -r root -s test_mail user@external.example.com

sendmail コマンド はpostfixのものに置き換わるので、そっちはセーフ。