2023年4月18日火曜日

sendmailにSMTP接続時の反応が5秒ぐらいかかる問題

 発端

rubygemのmailを使ったら以下のアイムアウトでエラーになってしまいました。

/usr/local/lib/ruby/gems/3.1/gems/net-protocol-0.2.1/lib/net/protocol.rb:229:in `rbuf_fill': Net::ReadTimeout with #<Socket:(closed)> (Net::ReadTimeout)

Timeoutしているため、以下のコマンドで直接sendmailとお話してみると。

% telnet localhost smtp
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 smtp.examples.com ESMTP Sendmail 8.16.1/8.16.1; Tue, 18 Apr 2023 21:49:15 +0900 (JST)


220 smtp.examples.com... の表示まで、5秒ぐらいかかっていました。

原因

調べると、以下の記事を見つけました。
(上記ページの「Version 8 Specific Issues」(タブの左から3つ目)の「10」番目のFAQです。

INDENT認証が有効になっているようです。

対策

sendmail.mcに以下の設定を加えて解決しました。無事rubygemのmailからも送信できました。

define(`confTO_IDENT',`0s')dnl