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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Postfix

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

Q&A

解決済

1回答

1174閲覧

[Postfix]メール配送の規則について

yukineko

総合スコア10

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Postfix

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

0グッド

1クリップ

投稿2018/02/20 08:23

[実現したい事]
アプリからPostfixにメールを送り、Postfixは受け取った順にキューに貯める(後で一斉送信)

[問題点]
キューにランダムに登録される
(配信するとランダムに着信する)

[確認した事]
・アプリは同期処理でちゃんと順番にメールを送っている。
・Postfixはsmtpd_client_connection_count_limitに 1 が設定されている
・上記とdefer_transportにsmtpを設定してる以外はデフォルト設定
・Postfixサーバ自身のsendmailから送っても同じ(ネットワーク経路の問題ではない)

[環境(Postfix)]
CentOS7
Postfix2.10

[環境(アプリ)]
Windows7
Power shell 2

よろしくお願いします。

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

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

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

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

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

CHERRY

2018/02/20 09:15 編集

Postfixの設定ですが、記載されている以外の設定項目に関しては、ドメインやホスト名以外は、デフォルトのままということでよろしいでしょうか?
yukineko

2018/02/21 00:50

ご認識の通りです。
退会済みユーザー

退会済みユーザー

2018/02/22 01:05

SMTPのRFCを熟読されるのがよろしいかと。
yukineko

2018/02/22 05:59

ご意見、ご助言を募っている私から言うのもなんですが、teratailの趣旨に合わない回答は控えられたほうがよろしいかと。
guest

回答1

0

ベストアンサー

キューからメールを取り出して配送プログラムに渡すのは qmgr の役割です。

参考:
http://www.postfix.org/OVERVIEW.html
http://www.postfix.org/qmgr.8.html
http://www.postfix-jp.info/trans-2.3/jhtml/qmgr.8.html 日本語

通常、smtpd で受けても sendmail コマンドでも、incomming キューに入ったメールは、すぐに qmgr に取り出されて配送されると思うのですが、「キューに貯める」のをどのように実装しているのでしょうか?

(A) qmgr プロセスを止めている
(B) hold キューにためる
(C) わざと配送エラーにして、deferred キューにためる

qmgr のマニュアルを見ると、キューからメールを取り出すアルゴリズムは到着順とは限らないようです。
(A),(B) ならある程度、到着順になるかもしれませんが、確実ではないと思います。

また、qmgr から渡されたメールを配送する smtp プロセスは複数並列で実行されます。
master.cf で smtp プロセスの最大数を 1 にすれば、1通ずつ配送するようになりますが、効率が悪いですし、配送先 MTA に問題があるなどでキューの処理が詰まってしまう危険性もあります。

投稿2018/02/22 09:18

TaichiYanagiya

総合スコア12146

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

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

yukineko

2018/02/22 10:47

TaichiYanagiya様 ご回答頂きありがとうございます。 なるほど、smtpプロセスは複数並列となるのですか。 私としては qmgr が配送、再配送に係るタイムスタンプを押すという事から、クライアント毎のコネクションを 1 に制限すれば時系列に従ったタイムスタンプとなる、と考えていた次第です。 しかし、smtpプロセスが複数となれば、qmgrがタイムスタンプに従い取り出したとしても、配送(着信)が時系列に従わない事象も理解できます。 qmgrについてはまだまだ理解が及んでいないところも多いと感じています。 手元の書籍と提示頂いたURLを参考に考え直します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問