質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Sendmail

Sendmailは、インターネットで電子メールを送受信するサーバソフトウェア(MTA)です。ユーザーが送信したメールを受け、他メールサーバへ引き渡しバケツリレー式に配送したり、届いたメールをユーザーが受け取るまでの間保管するといった働きをします。

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

Q&A

解決済

2回答

2893閲覧

postfixで宛先偽装をしているのですが、2通送信されてしまう

chaosmode

総合スコア7

Sendmail

Sendmailは、インターネットで電子メールを送受信するサーバソフトウェア(MTA)です。ユーザーが送信したメールを受け、他メールサーバへ引き渡しバケツリレー式に配送したり、届いたメールをユーザーが受け取るまでの間保管するといった働きをします。

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

0グッド

0クリップ

投稿2020/02/07 08:32

編集2020/02/07 10:02

検証環境を構築中なのですが、実際の宛先に送信しては困るので、偽装してtestメールアカウント宛てに送信したいです。
現在件名の現象が発生しており、偽装はできているのですが、test1に2通、test2にも2通届くといった状況になっています。
1通ずつ届けたいです。
設定に問題があれば、可能であれば分かりやすく教えていただけないでしょうか?

設定した内容について、以下のように認識しています。
1. Aさん、Bさん、Cさん宛てにメールを送信する

2. transport_mapsの設定で、宛先がtest1、test2さん以外のため、ワイルドカードでローカル配送される

3. aliases_mapにて、ワイルドカードで宛先がtest1とtest2に設定される

4. 再度transport_mapsの設定で、test1、test2とマッチするため、smtp配送される

設定内容は以下のようになっています。

main.cf(一部抜粋) : alias_maps = hash:/etc/aliases, pcre:/etc/postfix/aliases_maps transport_maps = pcre:/etc/postfix/transport_maps :
[root@centos7 postfix]# cat /etc/postfix/transport_maps /test1@example.com/ smtp: /test2@example.com/ smtp: /.*/ local:
[root@centos7 postfix]# cat /etc/postfix/aliases_maps /.*/ test1@example.com, test2@example.com

local:user宛てに配送し、.forwardで転送すると言うやり方も、sendmailではできましたが
postfixではうまくいっていない状況です。
すみませんがよろしくお願い致します。

●追記 メールログを追記します。
Feb 7 18:30:01 web-server-test postfix/pickup[6192]: 8B60946E481: uid=1001 from=<master>
Feb 7 18:30:01 web-server-test postfix/cleanup[6298]: 8B60946E481: message-id=20200207093001.8B60946E481@mail.XXXXXX.info
Feb 7 18:30:01 web-server-test postfix/qmgr[4517]: 8B60946E481: from=<>, size=540, nrcpt=3 (queue active)
Feb 7 18:30:01 web-server-test postfix/smtp[6301]: 8B60946E481: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587,
delay=0.1, delays=0.03/0.01/0.06/0.01, dsn=2.0.0, status=sent (250 Ok: queued as RT4muJFIQ3W8ih21IJKHFQ)
Feb 7 18:30:01 web-server-test postfix/smtp[6301]: 8B60946E481: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, d
87, delay=0.04, delays=0/0/0.03/0.01, dsn=2.0.0, status=sent (250 Ok: queued as M6SFWpJXSKC7lrUL-DZRjA)
Feb 7 18:20:07 web-server-test postfix/smtp[6185]: 225A746E482: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, delay=
0.04, delays=0/0/0.03/0.01, dsn=2.0.0, status=sent (250 Ok: queued as M6SFWpJXSKC7lrUL-DZRjA)
Feb 7 18:20:07 web-server-test postfix/qmgr[4517]: 225A746E482: removed
Feb 7 18:25:01 web-server-test postfix/pickup[6192]: 50DD946E481: uid=1001 from=<master>
Feb 7 18:25:01 web-server-test postfix/cleanup[6225]: 50DD946E481: message-id=20200207092501.50DD946E481@mail.XXXXXX.info
Feb 7 18:25:01 web-server-test postfix/qmgr[4517]: 50DD946E481: from=<>, size=540, nrcpt=3 (queue active)
Feb 7 18:25:02 web-server-test postfix/smtp[6228]: 50DD946E481: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, d
elay=1.1, delays=0.02/0.01/0.84/0.21, dsn=2.0.0, status=sent (250 Ok: queued as pTdI8359QVeepmAjARL17Q)
Feb 7 18:25:02 web-server-test postfix/smtp[6228]: 50DD946E481: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, del
ay=1.1, delays=0.02/0.01/0.84/0.21, dsn=2.0.0, status=sent (250 Ok: queued as pTdI8359QVeepmAjARL17Q)
Feb 7 18:25:02 web-server-test postfix/smtp[6228]: 50DD946E481: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, delay=1.
1, delays=0.02/0.01/0.84/0.21, dsn=2.0.0, status=sent (250 Ok: queued as pTdI8359QVeepmAjARL17Q)
Feb 7 18:25:02 web-server-test postfix/qmgr[4517]: 50DD946E481: removed
Feb 7 18:30:01 web-server-test postfix/pickup[6192]: 8B60946E481: uid=1001 from=<master>
Feb 7 18:30:01 web-server-test postfix/cleanup[6298]: 8B60946E481: message-id=20200207093001.8B60946E481@mail.XXXXXX.info
Feb 7 18:30:01 web-server-test postfix/qmgr[4517]: 8B60946E481: from=<>, size=540, nrcpt=3 (queue active)
Feb 7 18:30:01 web-server-test postfix/smtp[6301]: 8B60946E481: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587,
delay=0.1, delays=0.03/0.01/0.06/0.01, dsn=2.0.0, status=sent (250 Ok: queued as RT4muJFIQ3W8ih21IJKHFQ)
Feb 7 18:30:01 web-server-test postfix/smtp[6301]: 8B60946E481: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, d
elay=0.1, delays=0.03/0.01/0.06/0.01, dsn=2.0.0, status=sent (250 Ok: queued as RT4muJFIQ3W8ih21IJKHFQ)
Feb 7 18:30:01 web-server-test postfix/smtp[6301]: 8B60946E481: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, delay=
0.1, delays=0.03/0.01/0.06/0.01, dsn=2.0.0, status=sent (250 Ok: queued as RT4muJFIQ3W8ih21IJKHFQ)
Feb 7 18:30:01 web-server-test postfix/qmgr[4517]: 8B60946E481: removed
Feb 7 18:30:04 web-server-test postfix/pickup[6192]: 8CEDB46E481: uid=1001 from=<master>
Feb 7 18:30:04 web-server-test postfix/cleanup[6298]: 8CEDB46E481: message-id=20200207093004.8CEDB46E481@mail.XXXXXX.info
Feb 7 18:30:04 web-server-test postfix/qmgr[4517]: 8CEDB46E481: from=<>, size=625, nrcpt=1 (queue active)
Feb 7 18:30:04 web-server-test postfix/cleanup[6298]: 9001F46E482: message-id=20200207093004.8CEDB46E481@mail.XXXXXX.info
Feb 7 18:30:04 web-server-test postfix/qmgr[4517]: 9001F46E482: from=<>, size=775, nrcpt=6 (queue active)
Feb 7 18:30:04 web-server-test postfix/local[6309]: 8CEDB46E481: to=<>, relay=local, delay=0.02, delays=0.01/0.01/0/0, dsn=2.0.0, status=sent (forwarded as 9001F46E482)
Feb 7 18:30:04 web-server-test postfix/qmgr[4517]: 8CEDB46E481: removed
Feb 7 18:30:04 web-server-test postfix/smtp[6301]: 9001F46E482: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, delay=0.05, delays=0/0/0.04/0.01, dsn=2.0.0, status=sent (250 Ok: queued as IIHN-JF9SsmWxXSkMCm4fw)
Feb 7 18:30:04 web-server-test postfix/smtp[6301]: 9001F46E482: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, delay=0.05, delays=0/0/0.04/0.01, dsn=2.0.0, status=sent (250 Ok: queued as IIHN-JF9SsmWxXSkMCm4fw)
Feb 7 18:30:04 web-server-test postfix/smtp[6301]: 9001F46E482: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, delay=0.05, delays=0/0/0.04/0.01, dsn=2.0.0, status=sent (250 Ok: queued as IIHN-JF9SsmWxXSkMCm4fw)
Feb 7 18:30:04 web-server-test postfix/smtp[6301]: 9001F46E482: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, delay=0.05, delays=0/0/0.04/0.01, dsn=2.0.0, status=sent (250 Ok: queued as IIHN-JF9SsmWxXSkMCm4fw)
Feb 7 18:30:04 web-server-test postfix/smtp[6301]: 9001F46E482: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, delay=0.05, delays=0/0/0.04/0.01, dsn=2.0.0, status=sent (250 Ok: queued as IIHN-JF9SsmWxXSkMCm4fw)
Feb 7 18:30:04 web-server-test postfix/smtp[6301]: 9001F46E482: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, delay=0.05, delays=0/0/0.04/0.01, dsn=2.0.0, status=sent (250 Ok: queued as IIHN-JF9SsmWxXSkMCm4fw)
Feb 7 18:30:04 web-server-test postfix/qmgr[4517]: 9001F46E482: removed
Feb 7 18:30:07 web-server-test postfix/pickup[6192]: 8ABAA46E481: uid=1001 from=<master>
Feb 7 18:30:07 web-server-test postfix/cleanup[6298]: 8ABAA46E481: message-id=20200207093007.8ABAA46E481@mail.XXXXXX.info
Feb 7 18:30:07 web-server-test postfix/qmgr[4517]: 8ABAA46E481: from=<>, size=830, nrcpt=1 (queue active)
Feb 7 18:30:07 web-server-test postfix/cleanup[6298]: 8BAFA46E482: message-id=20200207093007.8ABAA46E481@mail.XXXXXX.info
Feb 7 18:30:07 web-server-test postfix/qmgr[4517]: 8BAFA46E482: from=<>, size=980, nrcpt=6 (queue active)
Feb 7 18:30:07 web-server-test postfix/local[6309]: 8ABAA46E481: to=<>, relay=local, delay=0.01, delays=0.01/0/0/0, dsn=2.0.0, status=sent (forwarded as 8BAFA46E482)
Feb 7 18:30:07 web-server-test postfix/qmgr[4517]: 8ABAA46E481: removed
Feb 7 18:30:08 web-server-test postfix/smtp[6301]: 8BAFA46E482: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, delay=1, delays=0/0/0.83/0.21, dsn=2.0.0, status=sent (250 Ok: queued as 7mpKVrWqRaWN3ih_c1cH9w)
Feb 7 18:30:08 web-server-test postfix/smtp[6301]: 8BAFA46E482: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, delay=1, delays=0/0/0.83/0.21, dsn=2.0.0, status=sent (250 Ok: queued as 7mpKVrWqRaWN3ih_c1cH9w)
Feb 7 18:30:08 web-server-test postfix/smtp[6301]: 8BAFA46E482: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, delay=1, delays=0/0/0.83/0.21, dsn=2.0.0, status=sent (250 Ok: queued as 7mpKVrWqRaWN3ih_c1cH9w)
Feb 7 18:30:08 web-server-test postfix/smtp[6301]: 8BAFA46E482: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, delay=1, delays=0/0/0.83/0.21, dsn=2.0.0, status=sent (250 Ok: queued as 7mpKVrWqRaWN3ih_c1cH9w)
Feb 7 18:30:08 web-server-test postfix/smtp[6301]: 8BAFA46E482: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, delay=1, delays=0/0/0.83/0.21, dsn=2.0.0, status=sent (250 Ok: queued as 7mpKVrWqRaWN3ih_c1cH9w)
Feb 7 18:30:08 web-server-test postfix/smtp[6301]: 8BAFA46E482: to=<>, relay=smtp.xxx.xxx[xxx.xxx.xxx.xxx]:587, delay=1, delays=0/0/0.83/0.21, dsn=2.0.0, status=sent (250 Ok: queued as 7mpKVrWqRaWN3ih_c1cH9w)
Feb 7 18:30:08 web-server-test postfix/qmgr[4517]: 8BAFA46E482: removed

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

scsi

2020/02/07 08:52

2通送られた時のmaillogを質問に追加してください。
chaosmode

2020/02/07 10:02

追記しましたので、すみませんがご確認をお願い致します。
scsi

2020/02/07 11:07

from,toが<>だと違う意味になるので、example.comなどにマスクしてください。あと見やすい形式で記述をお願いします
TaichiYanagiya

2020/02/07 12:20

よくわかりませんが、ドメイン付メールアドレスを転送するのであれば、virtual_alias_maps でいいかと。
chaosmode

2020/02/07 13:48

scsiさん 見辛く申し訳ありません、月曜日になりますが再度マスクした状態で投稿させていただきます。 TaichiYanagiyaさん 宛先は様々なのですがワイルドカードで全ての宛先のものを特定アドレスに偽装送信できるのでしょうか。
guest

回答2

0

ベストアンサー

要件に合うかわわかりませんが、こんな設定はどうでしょうか?

[main.cf] transport_maps = hash:/etc/postfix/transport always_bcc = forward@example.com virtual_alias_maps = hash:/etc/postfix/virtual [transport] test1@example.com smtp: test2@example.com smtp: * discard: [virtual] forward@example.com test1@example.com, test2@example.com % postmap hash:/etc/postfix/transport % postmap hash:/etc/postfix/virtual

アドレスを直接書き換えると複数の宛先が有った時に複数のメールとなるので、デフォルトの配送先を discard: にしてすべて破棄し、always_bcc でコピーを 1 通のみ生成するという戦略です。
コピーの送り先アドレスが一つのみならば virtual_alias_maps を使わずに always_bcc に直接そのアドレスを指定すればいいでしょう。

投稿2020/02/10 10:16

doda

総合スコア947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chaosmode

2020/02/10 12:25

dodaさん ありがとうございます。 明日、実際に試してみて再度ご連絡させていただきます。
chaosmode

2020/02/12 08:52

dodaさん ご教授いただいた内容で希望通りの動作となりました、本当に有難うございます。 ただ、検証をすすめたところ、上記設定の影響で別の問題が発生してしまいました。 APサーバーでメールを受信し、その契機でバッチを実行する処理も入れているのですが メール受信時にdiscardの設定で破棄されてしまい、バッチがkickされない状態となってしまいました。 破棄してしまうとメールバッチは難しいでしょうか?
doda

2020/02/12 09:01

どういう処理を想定しているのかちょっと判らないのですが、例えば batch@host.example.com 宛のメールを受けた時に alias や .forward 等でプログラムを起動していたという状況ならば、transport で batch@host.example.com local: のようにそのアドレスに対してはlocal配送を指定すればいいと思います。
chaosmode

2020/02/12 09:42

dodaさん ありがとうございます。/etc/aliasesに以下のように大量に処理があり、 @マーク前に応じてkickするバッチを分けるようになっています。 AA@example.com 処理 BB@example.com 処理 CC@example.com 処理 : 教えて頂いた通り、transportファイルのdiscardの前にaliasesと同じ宛先をすべて記載してlocal配送すれば解決しそうです。(メンテが大変になりますが) 度々教えていただきありがとうございました。
chaosmode

2020/02/12 09:43

dodaさん、scsiさん、ご教授いただきありがとうございました。 大変助かりました。
guest

0

テストしてませんが

[root@centos7 postfix]# cat /etc/postfix/aliases_maps /.*/ test1@example.com, test2@example.com

と書いてあるので 3宛先に送ったら 3 x 2 で 6通送られるんじゃないですかね。
ログも3通送った後に6通送っているようなのものがありますし。

投稿2020/02/07 12:37

scsi

総合スコア2840

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chaosmode

2020/02/07 13:52

scsiさん まさにおっしゃる通りで、宛先数分送られているようでした。 ただ、メーラーのフィルターの影響か2通だったり1通だったりまばらです。 (exchange serverで同件と見なされ一部破棄されている?) なにか対応策はございますでしょうか?
scsi

2020/02/07 14:37

Ldapルーティングで3つのアドレスを一つのアカウントに紐づければ出来るかもしれませんがldapは使ってないでしょうし、無理と考えた方がいいと思います。複数送ったメールを一つに纏めることは普通は出来ません。
chaosmode

2020/02/10 00:22

scsiさん ありがとうございます。 sendmailではmailertableで「. local:user」でローカル配送し、userの.forwardに転送先を 記載しておけば同様のことが実現できていましたが、postfixではできないという事でしょうか?
scsi

2020/02/10 07:49

3宛先に送信してもsendmailでは1通のみ転送されたということでしょうか?
scsi

2020/02/10 08:15 編集

私が何か勘違いしているかもしれないのですね。 可能であれば、sendmailのmaillogも見せてください。
chaosmode

2020/02/10 09:19

scsiさん ご確認くださりありがとうございます。 sendmailの.forwardにはメーリングリストを1つ設定しています。 宛先が3の場合、届いたメールの宛先にはメーリングリスト+3宛先が設定され、 メーリングリストのメンバーにそれぞれ1通ずつ配信されていました。 ※ログは2行だけでしたのでこちらに貼り付けさせていただきました。 Feb 10 04:10:02 web-server-test sendmail[31017]: 01A9A2xf031017: from=user, size=239, class=0, nrcpts=3, msgid=<202002100910.01A9A2xf031017@hogehoge.example.co.jp>, relay=user@localhost Feb 10 04:10:02 web-server-test sendmail[31017]: 01A9A2xf031017: to=test1@example.com,test2@example.com,test3@example.com, ctladdr=user (1000/1018), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=90239, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (01A9A2dS031018 Message accepted for delivery)
scsi

2020/02/10 11:21 編集

Sendmailの場合、メーリングリスト宛+3宛先でメーリングリストに3宛先が含まれる場合でも、各々には一通しか配送されないってことですか?確かにsendmailでかつ、メーリングリストも同じMXで処理されるなら重複は排除されますが質問者が何を求めているかがまだ理解できていません。
chaosmode

2020/02/10 12:19

scsiさん 説明が下手で申し訳ありません。 宛先3(Aさん、Bさん、Cさん)はお客さん宛てですが、 検証環境で送信するわけにはいかないので、test1、test2などの開発者宛てに偽装して送りたいのです。 postfixでは宛先が3件あるために、test1に3通、test2に3通送られてしまう状況ですが sendmailでは.forwardに開発者用メーリングリスト(test1、test2)を1つ記載すれば test1に1通、test2に1通送られてくる状態です(これが理想です) 突然メーリスの話をしてしまったので、話がややこしくなってしまいましたが、 メーリスはsendmail側の環境で設定がされていたというだけで、postfix環境では 使っても使わなくても良いところです。 sendmailから送信後、メーリス宛てに送られてきたメールを見ると、宛先はメーリス、Aさん、Bさん、Cさんという風に設定されていました。実際の送信時の宛先はA、B、Cさんです。
scsi

2020/02/11 22:36 編集

理解しました。dodaさんの解答の always_bccかrecipient_bcc_mapsで対応するのがいいかと思います。
chaosmode

2020/02/12 08:57

scsiさん ご確認いただきありがとうございます。recipient_bcc_mapsについても調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問