Skip to content

Gem Load Error is: cannot load such file -- net/smtp with Ruby master branch #91

@yahonda

Description

@yahonda

Gem Load Error is: cannot load such file -- net/smtp with Ruby master branch.

Steps to reproduce

  1. Create a test_mail.rb script
require 'bundler/inline'

gemfile do
  source 'https://rubygems.org'
  gem 'mail'
  gem 'net-smtp'
end

require 'mail'

mail = Mail.new do
  from    'sender@example.com'
  to      'recipient@example.com'
  subject 'Testing mail gem'
  body    'Hello, this is a test email!'
end

p "net-smtp version: #{Net::SMTP::VERSION}"
puts mail.to_s
  1. Install ruby master branch
$ ruby -v
ruby 3.5.0dev (2025-02-06T14:12:03Z master 9baa0f8c8c) +PRISM [x86_64-linux]
  1. Run the test_mail.rb script with Ruby master branch

Expected behavior

It should print the following test mail as it runs with Ruby 3.4.1.

$ ruby -v
ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x86_64-linux]
$ ruby test_mail.rb
"net-smtp version: 0.5.1"
Date: Fri, 07 Feb 2025 08:43:02 +0900
From: sender@example.com
To: recipient@example.com
Message-ID: <67a5490642693_36dbc2278-48d@myrhel9.local.mail>
Subject: Testing mail gem
Mime-Version: 1.0
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

Hello, this is a test email!
$

Actual behavior

It raises Gem Load Error is: cannot load such file -- net/smtp

$ ruby -v
ruby 3.5.0dev (2025-02-06T14:12:03Z master 9baa0f8c8c) +PRISM [x86_64-linux]
$ ruby test_mail.rb
Source locally installed gems is ignoring #<Bundler::StubSpecification name=date version=3.4.1 platform=ruby> because it is missing extensions
/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/runtime.rb:71:in 'block (2 levels) in Bundler::Runtime#require': There was an error while trying to load the gem 'mail'. (Bundler::GemRequireError)
Gem Load Error is: cannot load such file -- net/smtp
Backtrace for gem load error is:
/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundled_gems.rb:65:in 'Kernel.require'
/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundled_gems.rb:65:in 'block (2 levels) in Kernel#replace_require'
/home/yahonda/.rbenv/versions/trunk/lib/ruby/gems/3.5.0+0/gems/mail-2.8.1/lib/mail.rb:9:in '<module:Mail>'
/home/yahonda/.rbenv/versions/trunk/lib/ruby/gems/3.5.0+0/gems/mail-2.8.1/lib/mail.rb:3:in '<top (required)>'
<internal:/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/rubygems/core_ext/kernel_require.rb>:37:in 'Kernel#require'
<internal:/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/rubygems/core_ext/kernel_require.rb>:37:in 'Kernel#require'
/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundled_gems.rb:65:in 'block (2 levels) in Kernel.replace_require'
/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/runtime.rb:63:in 'block (2 levels) in Bundler::Runtime#require'
/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/runtime.rb:58:in 'Array#each'
/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/runtime.rb:58:in 'block in Bundler::Runtime#require'
/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/runtime.rb:52:in 'Array#each'
/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/runtime.rb:52:in 'Bundler::Runtime#require'
/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/inline.rb:89:in 'block in Object#gemfile'
/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/settings.rb:159:in 'Bundler::Settings#temporary'
/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/inline.rb:58:in 'Object#gemfile'
test_mail.rb:3:in '<main>'
Bundler Error Backtrace:

	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/runtime.rb:58:in 'Array#each'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/runtime.rb:58:in 'block in Bundler::Runtime#require'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/runtime.rb:52:in 'Array#each'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/runtime.rb:52:in 'Bundler::Runtime#require'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/inline.rb:89:in 'block in Object#gemfile'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/settings.rb:159:in 'Bundler::Settings#temporary'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/inline.rb:58:in 'Object#gemfile'
	from test_mail.rb:3:in '<main>'
/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundled_gems.rb:65:in 'Kernel.require': cannot load such file -- net/smtp (LoadError)
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundled_gems.rb:65:in 'block (2 levels) in Kernel#replace_require'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/gems/3.5.0+0/gems/mail-2.8.1/lib/mail.rb:9:in '<module:Mail>'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/gems/3.5.0+0/gems/mail-2.8.1/lib/mail.rb:3:in '<top (required)>'
	from <internal:/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/rubygems/core_ext/kernel_require.rb>:37:in 'Kernel#require'
	from <internal:/home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/rubygems/core_ext/kernel_require.rb>:37:in 'Kernel#require'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundled_gems.rb:65:in 'block (2 levels) in Kernel.replace_require'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/runtime.rb:63:in 'block (2 levels) in Bundler::Runtime#require'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/runtime.rb:58:in 'Array#each'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/runtime.rb:58:in 'block in Bundler::Runtime#require'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/runtime.rb:52:in 'Array#each'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/runtime.rb:52:in 'Bundler::Runtime#require'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/inline.rb:89:in 'block in Object#gemfile'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/settings.rb:159:in 'Bundler::Settings#temporary'
	from /home/yahonda/.rbenv/versions/trunk/lib/ruby/3.5.0+0/bundler/inline.rb:58:in 'Object#gemfile'
	from test_mail.rb:3:in '<main>'
$

Additional information

This issue was originally workarounded by using gem "net-smtp", github: "ruby/net-smtp", ref: "d496a829f9b99adb44ecc1768c4d005e5f7b779e", require: false via rails/rails@d84afbb to include #90

I expected we do not need this workaround by using net-smtp 0.5.1 but actually it still raises the exception.
https://github.com/ruby/net-smtp/releases/tag/v0.5.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions