Postfix transport_maps に tcp_table を使う

Postfix で transport_maps に tcp:HostName:Port を指定すると、 tcp_table DBからリレー先の情報を取得出来る。

、、、と思っていたがしっくりこないところが2つある。

しっくりこないところ 1

よくわからないエラー。

1
postfix/trivial-rewrite[1234]: warning: read TCP map reply from 10.0.0.1:12321: unexpected EOF (Operation now in progress)

ちゃんとレスポンスを返しているつもりなのだが警告がログに出ている。
レスポンスに何か不足があるのだろうがよくわかっていない。

しっくりこないところ 2

MAIL FROM: で送ったアドレスについても、look upが走る。

telnetにて以下のようにSMTPとおしゃべりしてみる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# telnet 10.8.0.25 25
Trying 10.8.0.25...
Connected to 10.8.0.25.
Escape character is '^]'.
220 mx-proxy.localdomain ESMTP Postfix
EHLO pc.localdomain
250-mx-proxy.localdomain
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 SMTPUTF8
MAIL FROM:<test@example.com>
250 2.1.0 Ok
RCPT TO:<not-mail-me@rhykw.net>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: hoge
From: <test@example.com>
To: <not-mail-me@rhykw.net>

This is test.
.
250 2.0.0 Ok: queued as 064DD440138
QUIT
221 2.0.0 Bye

このとき、tcp_tableあてには以下のような通信が来ている。

1
2
3
4
5
6
7
8
9
10
11
Client=#<TCPSocket:0x007fd7ef1a2038>
>> get *

Client=#<TCPSocket:0x007fd7ef1a1b10>
>> get *

Client=#<TCPSocket:0x007fd7ef18be78>
>> get test@example.com

Client=#<TCPSocket:0x007fd7ef18b950>
>> get not-mail-me@rhykw.net

おや、、、 MAIL FROM のアドレスについてもlook upするのか。。。

transport_maps に mysql map を書いた時もこんな挙動してるのかなぁ。

このエントリーをはてなブックマークに追加