One option is to switch the :relaxed
setting to true
:
BlueCloth.new('bob_jones_smith@foo.com', relaxed: true).to_html
The option documentation is available online but the option names and the way they map to the options in the underlying C library is not always obvious.
If you want to use the default options for text where you need in-word emphasis in some places but not others you can explicitly escape the underscores:
escaped_email = 'bob_jones_smith@foo.com'.gsub('_', '\_')
BlueCloth.new(escaped_email).to_html