Base64 Images seem to work for me
NotificationFactory::Mailer.deliver(
recipient: User.find_by(email: 'example-user-login'),
subject: 'image test',
body: "hello <img alt='Product Logo' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAABlBMVEX///+/v7+jQ3Y5AAAADklEQVQI12P4AIX8EAgALgAD/aNpbtEAAAAASUVORK5CYII' />",
content_type: 'text/html',
)
Maybe your email client is blocking it? Did you check the raw email? You could also try your code with a fixed image, maybe the endpoint delivers a different content-type or something is wrong with the image.