Pebble's Diary

プログラマーの作業メモ

IPv6環境のActionMailerでのgmail送信でNet::OpenTimeoutエラー発生

IPV6環境のActionMailerでgmail送信すると Net::OpenTimeout (execution expired): となってしまい送信できない。

telnet smtp.gmail.comを実行すると分かるが、まずIPv6で接続をトライし、60秒くらいでタイムアウトした後、IPv4で接続トライする。 最初からIPv4で接続すれば動作するので、IPv6よりIPv4を優先する設定を入れると動作するようになる。 CentOS7で/etc/gai.confファイルに以下の内容を設定する。

label       ::1/128        0
label       ::/0           1
label       2002::/16      2
label       ::/96          3
label       ::ffff:0:0/96  4
precedence  ::1/128        50
precedence  ::/0           40
precedence  2002::/16      30
precedence  ::/96          20
precedence  ::ffff:0:0/96  100

DATAPUISTOKEMISTI: Prefer IPv4 over IPv6 on CentOS 6

smtp - Rails Mailer "Net::OpenTimeout: execution expired" Exception on production server only - Stack Overflow