4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

sendmailコマンド(Postfix)でEnvelopeFrom, HeaderFromを設定して送信する方法

Last updated at Posted at 2019-10-30

目的

メールサーバを構築したときに、メール送信のテストを簡単に行いたいので、sendmailコマンドの使い方をまとめます。
今回構築する環境では、試験のためにEnvelopeFromとHeaderFromを設定しわける必要があり、その設定方法もまとめます。

動作環境

CentOS 7.3 + Postfix 2.10.1-6.el7.x86_64

sendmaiコマンド

$ sendmail -f Envelope-From-Address@xxxxx.xxx.xx RCPT-To-Address@yyyy.yyy.yy
From: Header-From-Address@xxxxx.xxx.xx
To: Mail-To-Address@yyyy.yyy.yy
Subject: TEST

テストメールです
.

sendmailコマンドの-fオプションでEnvelopeFromを設定できます。続けて、RCPT-Toを設定します。
sendmailコマンドの行を入力すると、入力待ちとなるので、ヘッダ部を入力します。
ヘッダ部はLFで改行します。
当初(意図せず)CRLFになっていて、Gmailでは正しくヘッダFromもToも表示されるのですが、Thunderbirdでは本文中に表示されてしまいました。

なお、上記はメール本文をその場で手入力していますが、ワンライナーにすると下記のようになります。sendmailコマンドは引数に件名を指定できないようですので、echoで流し込む形を取ってみました。mailコマンド(mailxパッケージ)では件名を引数に取れたはずです。

$ echo -e "From: Header-From-Address@xxxxx.xxx.xx\nTo: Mail-To-Address@yyyy.yyy.yy\nSubject: Test\n\nテストメールです" | sendmail -i -t -f Envelope-From-Address@xxxxx.xxx.xx RCPT-To-Address@yyyy.yyy.yy

EnvelopeFromとHeaderFromの違い

メール配送時に使われるのがEnvelopeFrom。メーラに表示されるのがHeaderFrom。
なお、SPFチェックで使われるのはEnvelopeFromだと思います(EnvelopeFromのドメイン部分のDNSに照会される)。違うようでしたらどなたかツッコミを入れて下さい。

余談ですが、一般的にHeaderFromもチェックしているケースもあるのかは不明ですが、たまたま自社のサーバはチェックしていて、社外から自社のドメインをかたって送信されるメールはブロックしていました。・・・このため、社外のクラウドから自社のメールアドレスをFromにしたメルマガを配信すると、自分達だけブロックされて受け取れないという事態に陥り、そのテストのためこのsendmailコマンドを使ったのでした。。。

4
2
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
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?