起きていた事象
Render.comのWebサーバーでRuby on Railsのプロジェクトを運用していた時、メール送信機能を実装してデプロイしたら以下のエラーが発生しました。
ERROR -- : [ActiveJob] [ActionMailer::MailDeliveryJob] [xxxx] Error performing ActionMailer::MailDeliveryJob (Job ID: xxx) from Async(default) in 5288.8ms: Net::OpenTimeout (execution expired):
これは、接続を試みた時に接続が確立できずタイムアウトしたことによるエラーであることが分かります。
Action Mailerに関するドキュメントを見たりした上で設定の間違いを疑い修正を繰り返してみたものの、同様のエラーが繰り返されてしまったため、困っていました。
結論
結論として、タイトルにもある通り、『Render.comの無料プランのWebサーバでは、メール送信のためのSMTPポート(25
, 465
, 587
)のトラフィックを全てブロックする』という仕様が2025年9月26日以降適用されていたことが原因でした。
トラフィックを許可するようにするためには、インスタンスタイプを有料版にアップグレードする必要があります。
アップグレード方法
- まず該当のWebサービスを開いて、左のメニューから『Settings』を開きます。
Settingsの項目の中の『Instance Type』の右にUpgradeボタンがあるため、そこからアップグレードしてください。 有料ならなんでも大丈夫なようです。
別の方法
有料にしたくないという場合、外部のメール配信サービスでAPI経由であればメール配信を行うことが出来ると思います。 SendGridなど様々な種類があるため、無料プランが充実していて、評価が高めのものを選ぶと良いかと思われます。
以上です!